tag:blogger.com,1999:blog-48766358986802568802024-03-29T18:45:09.903+11:00The Daily ProgrammerA site about programming, daily challenges, networking, technology, blogging, crypto-currencies, block-chain tech, web development and the internet. The website serves all developers and hobbyists interested in latest technology news, articles about programming in languages such as C, C++, Java, Python, HTML/CSS. connor531http://www.blogger.com/profile/01501409102879697098noreply@blogger.comBlogger146125tag:blogger.com,1999:blog-4876635898680256880.post-17994995843700711872018-12-09T03:00:00.000+11:002018-12-13T14:40:23.868+11:00Networking: OSI Model Explained<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b><u>What is the OSI and what is it used for?</u></b></span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">The Open Systems Interconnection Reference Model was published by the ISO (International Standards Organisation) as well as the Telecommunications Standardization Sector of the International Telecommunication Union. Even though it is the TCP/IP reference model that is widely in use today, the OSI model is the one which is considered as the foundation of the communication networks. There are 7 layers in the OSI reference model- which we will explain in more detail below.</span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">The 7 layers are as follows, remember 1 is the lowest and 7 is the highest. </span><br />
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"> 7. Application Layer</span></div>
<div style="text-align: center;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"> 6. Presentation Layer</span></div>
<div style="text-align: center;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">5. Session Layer</span></div>
<div style="text-align: center;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"> 4. Transport Layer</span></div>
<div style="text-align: center;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"> 3. Network Layer</span></div>
<div style="text-align: center;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"> 2. Data Link Layer</span></div>
<div style="text-align: center;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"> 1. Physical Layer</span></div>
<div style="text-align: center;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b><u>How do I remember all those layers?</u></b></span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">The easiest way to remember the order of the layers from the lowest (Physical) to the highest (Application) is the saying "<b>P</b>eople <b>D</b>on't<b> N</b>eed <b>T</b>hose <b>S</b>tupid <b>P</b>ackets <b>A</b>nyway".</span><br />
<br /></div>
<ol>
</ol>
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Below is a diagram of how layers interact with each other:</span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1DI6EgyYaVuKENVTrV9OGzNUU7-FXWf0Ee9v3NpS5OAjED6griTunn8q0HqwkKyF2KUowb1IQCWu7dHNor8ORAe_-ngySxDqVr0lxd7mlnmbl8VMtbbzWb1Wi3Nk5SzKlCiUvXTgNKkU/s1600/Webp.net-resizeimage.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="586" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1DI6EgyYaVuKENVTrV9OGzNUU7-FXWf0Ee9v3NpS5OAjED6griTunn8q0HqwkKyF2KUowb1IQCWu7dHNor8ORAe_-ngySxDqVr0lxd7mlnmbl8VMtbbzWb1Wi3Nk5SzKlCiUvXTgNKkU/s1600/Webp.net-resizeimage.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: justify;">
<a href="http://pluto.ksi.edu/~cyh/cis370/ebook/images/F05xx02.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"></span></a></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"> A horizontal communication is denoted as virtual, because it takes place indirectly via a longer vertical communication. For example, the application layer receives a text message from user which is to be sent to the application layer of another host. So, for the two application layers to communicate horizontally, the first application layer has to wrap the message with headers and other information for the next layer in vertical communication, the presentation layer. The presentation layer again wraps the message with its own headers and sends it to the below layer. This process continues till the Physical Layer, which adds error detection and correction bits and sends it over to the physical layer of the receiving host via a medium like optical fibres, cables etc. Now, the physical layer unwraps the extra information from the first physical layer and sends it upwards. Next, the data-link layer removes the header information from its corresponding horizontal layer, the data-link layer of the sending host, and sends the further unwrapped message to network layer. This process continues till the final message is completely unwrapped for the application layer and can be viewed by the user of the receiving host. This wrapping and unwrapping of messages over each communication layer is important to ensure security, reliability, adherence to protocols etc.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<h3>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><u>Application Layer</u></span></h3>
</div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">The application layer is the layer which directly interfaces with user view of applications. It is the topmost layer in the reference model stack. Some of the common protocols in application layer include FTP - File Transfer Protocol - for transferring files over the network, SMTP - Simple Mail Transfer Protocol - for email services. </span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<h3>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><u>Presentation Layer</u></span></h3>
</div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">This layer manages and defines the structure and format of the data that is being transferred from the application layer. It performs translation tasks such as the different types of data used, their encoding, etc.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<h3>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><u>Session Layer</u></span></h3>
</div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">This layer is used to manage sessions of an application. A session is like a connection between applications on different hosts.</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<h3>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><u>Transport Layer</u></span></h3>
</div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">The transport layer ensures end-to-end connection between two hosts and guarantees error free and lossless data transfer. Some very popular protocols in the transport layer include UDP (User Data Protocol) which is connection-less, unreliable and fast, as well as TCP (Transmission Control Protocol) which is connection-oriented and reliable.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<h3>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><u>Network Layer</u></span></h3>
</div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">The network layer is responsible for routing and flow control tasks. Internet Protocol, a widely popular protocol for flow control defines the various aspects of network layer.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<h3>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><u>Data Link Layer</u> </span></h3>
</div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">This layer ensures that the data transfer is error free by providing various error detection and correction schemes. Usually the stream of bits and bytes is injected with some redundant error correction / detection bits.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<h3>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><u>Physical Layer</u></span></h3>
</div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">This is the lowest level layer in the network reference model. It is also known as the hardware layer. It is responsible for transmitting raw bits and bytes across physical media like optical fibres, cables etc. It also performs data encoding and bit synchronization functions.</span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
</div>
Unknownnoreply@blogger.com24tag:blogger.com,1999:blog-4876635898680256880.post-60382899762086587272018-02-26T10:30:00.000+11:002018-12-14T10:04:46.128+11:00How to Improve Mobile App Design: 9 Tips<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: justify;">
</div>
<div class="separator" style="clear: both; text-align: justify;">
</div>
<div class="separator" style="clear: both; text-align: justify;">
</div>
<div style="text-align: left;">
</div>
<div style="text-align: justify;">
The moment <a href="https://www.smartinsights.com/wp-content/uploads/2014/03/Mobile-stats-vs-desktop-users-global-550x405.png">mobile use outstripped desktop use</a> is more than three years in the past. Therefore, it is not a question of whether you should develop mobile apps or not, but how to improve your mobile app design to make it more user friendly.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiemeFCUsb3evtD730IVeb97CKkqznHmRJ3fKW6rrjPqDocH5B7kvOV_CH_4lk9WEnKJXEny6UEb5xt8XFrm4XbQj4HiLBo4Fs88PmrWiql75-mF0bycp2lrCqapiPHRWZfXxcRto9Li8U/s1600/How+to+Improve+Mobile+App+Design-+9+Tips.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="How to Improve Mobile App Design: 9 Tips" border="0" data-original-height="600" data-original-width="800" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiemeFCUsb3evtD730IVeb97CKkqznHmRJ3fKW6rrjPqDocH5B7kvOV_CH_4lk9WEnKJXEny6UEb5xt8XFrm4XbQj4HiLBo4Fs88PmrWiql75-mF0bycp2lrCqapiPHRWZfXxcRto9Li8U/s320/How+to+Improve+Mobile+App+Design-+9+Tips.jpg" title="How to Improve Mobile App Design: 9 Tips" width="320" /></a></div>
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
The problem with native mobile app design is the limitations of space. Designing for a 4-inch screen (or less) doesn’t give you a lot of leeway, so you have to plan your interface carefully to successfully integrate form with function. Here are 9 tips to help you get it right. </div>
<h4 style="text-align: justify;">
</h4>
<h4 style="text-align: justify;">
1. Apply the rules of interaction design</h4>
<div style="text-align: justify;">
A smaller screen doesn’t change how people interact with a site. To maximize interaction with your app, make sure your design follows the <a href="https://thenextweb.com/dd/2015/03/03/the-5-pillars-of-interaction-design/">rules of interaction design</a>:</div>
<ul style="text-align: left;">
<li style="text-align: justify;">Goal driven for the right user</li>
<li style="text-align: justify;">Usable</li>
<li style="text-align: justify;">Functional using signifiers i.e. blue underlined text signifies a clickable link</li>
<li style="text-align: justify;">Intuitive using familiar patterns</li>
<li style="text-align: justify;">Responsive with feedback</li>
</ul>
<h4 style="text-align: justify;">
</h4>
<h4 style="text-align: justify;">
2. Clean as you go</h4>
<div style="text-align: justify;">
Steve Jobs said, “Design is a funny word. Some people think design means how it looks. But of course, if you dig deeper, it's really how it works.” When designing for your mobile app, it can be tempting to add some flashy visuals. However, if they are not necessary for your app to work, you want to leave those out. You want to keep it as clean and simple as possible so that your user will easily find the elements that will make the app work. An excellent tip for UI design is to make it easy for people with fat fingers to tap or click and action button. </div>
<h4 style="text-align: justify;">
</h4>
<h4 style="text-align: justify;">
3. Define your target market</h4>
<div style="text-align: justify;">
It is impossible to design for all demographics, so develop a buyer persona for your app before you begin your design. This will help you with your initial design, and improve it efficiently with user testing for your target market. You should also establish user scenarios and experience maps for a robust UI. User scenarios project how your buyer persona is likely to act, while <a href="https://blog.marvelapp.com/how-to-build-an-experience-map/">experience maps</a> look at all possible combinations of conditions and emotions that a user will experience for each interaction. You will make many mistakes with your first app, but you can apply the lessons learned to future app development for the same market. </div>
<h4 style="text-align: justify;">
</h4>
<script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<br />
<ins class="adsbygoogle" data-ad-client="ca-pub-7112084403405259" data-ad-format="fluid" data-ad-layout="in-article" data-ad-slot="5210872077" style="display: block; text-align: center;"></ins><script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<br />
<h4 style="text-align: justify;">
4. Use in-app user analytics</h4>
<div style="text-align: justify;">
The best way to improve your mobile app design is to analyze how people actually use your app using in-app analytics software such as Google Analytics or App Annie. Analytic tools can tell you a lot about what is right and wrong with your app. <a href="https://yalantis.com/blog/7-trendy-tools-for-app-metrics-to-follow/">Here</a> are some suggestions for choosing the right in-app analytics software for you. </div>
<h4 style="text-align: justify;">
</h4>
<h4 style="text-align: justify;">
5. Keep it compatible</h4>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrXqjoa2mAQGLXZDy8Tk04kNfynvCMRXLhJEmoUgyU0R-x18RhcfL-jpE9aOYNTxz6UQ1z11kf41O5TDstBRo_JU_GwTQW-mDDAwKVRt7qBF3w34wfV2UOQTTWXkU4RVYTMqsZJhACaik/s1600/Smart+Watch+Apple.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Apple Smart Watch" border="0" data-original-height="640" data-original-width="960" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrXqjoa2mAQGLXZDy8Tk04kNfynvCMRXLhJEmoUgyU0R-x18RhcfL-jpE9aOYNTxz6UQ1z11kf41O5TDstBRo_JU_GwTQW-mDDAwKVRt7qBF3w34wfV2UOQTTWXkU4RVYTMqsZJhACaik/s1600/Smart+Watch+Apple.jpg" title="Apple Smart Watch" /></a></div>
<div style="text-align: justify;">
Your users will typically use more than one platform as a matter of course, so you have to make sure your app will work in different platforms. While the <a href="https://www.theverge.com/2017/2/16/14634656/android-ios-market-share-blackberry-2016">majority of mobile users</a> are on Android (80.7%) and iOS (17.7%), there are still quite a few users on Windows (1.092 million users), Blackberry (207,900), and other OS (530,400). Aside from the operating system, you need to make your app responsive for different devices, such as an Apple Watch, which has a way smaller screen than the typical smartphone. It’s a tall order, but if you can, you should. </div>
<h4 style="text-align: justify;">
</h4>
<h4 style="text-align: justify;">
6. Provide concise information</h4>
<div style="text-align: justify;">
Mobile app design assumes that users already know what they want when they download an app, so it is up to you to deliver the goods. Relevant information should be easily accessible when needed without compromising the design, so this means putting in concise copy. If you tend to be verbose when giving instructions or other vital information, have professional <a href="https://essays.scholaradvisor.com/">essay services</a> edit it for you.</div>
<h4 style="text-align: justify;">
</h4>
<h4 style="text-align: justify;">
7. Follow guidelines</h4>
<div style="text-align: justify;">
You can definitely experiment with the navigation and interactions on your mobile app, but keep in mind that you need to incorporate some standards. These are not well-established, so if you want to sell your app on <a href="https://developer.android.com/distribute/best-practices/launch/launch-checklist.html">Google Play</a> or <a href="https://developer.apple.com/app-store/guidelines/">App Store</a>, you need to find out what standards they require. </div>
<h4 style="text-align: justify;">
</h4>
<h4 style="text-align: justify;">
8. Keep it text-light</h4>
<div style="text-align: justify;">
Mobile devices are not the best platform for text-heavy content, so keep text to a minimum when designing your app. While less is more for mobile use, interactive visual elements instead of text can go a long way in improving your app’s function and keeping your users engaged. <a href="https://1stwebdesigner.com/mobile-apps-designs/">Check out</a> these apps for your inspiration. </div>
<h4 style="text-align: justify;">
</h4>
<h4 style="text-align: justify;">
9. Keep updating it to improve security</h4>
<div style="text-align: justify;">
Most apps will encounter security issues as they become popular. Breaches in user data can seriously affect user confidence, so you have to keep an eagle eye out for attempts at hacking and phishing. Here are some <a href="https://www.upwork.com/hiring/mobile/mobile-application-security/">excellent tips</a> for keeping your app and users safe from malicious persons.</div>
<div style="text-align: justify;">
<br /></div>
<h3 style="text-align: justify;">
</h3>
<h3 style="text-align: justify;">
Takeaway</h3>
<div style="text-align: justify;">
Responsive mobile app design is the key to an engaged user. If you want your app to become popular, you have to improve it for your users’ benefit as much as you can. The tips above are not an exhaustive list, but they cover the most important aspects of your mobile app. If nothing else, you should make sure you cover all these bases first.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<h3 style="text-align: justify;">
AUTHOR BIO</h3>
<div style="text-align: justify;">
People call Laura Buckler's writing 'clear, compelling and concise'. In addition to being a stand out author, Laura is known for her attention to detail and intriguing writing style. As a writer and editor with years of experience, Laura is now testing the marketing waters, too. Follow her on <a href="https://twitter.com/laura_buckler">twitter</a>.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
</div>
Unknownnoreply@blogger.com173tag:blogger.com,1999:blog-4876635898680256880.post-91901432300092143192017-12-25T03:33:00.001+11:002018-02-08T20:29:14.139+11:00Best Machine Learning Books for Beginners<br />
<br />
<br />
<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">So you have decided to learn machine learning? Good choice! Machine learning is currently one of the most in-demand skills in the technology sector. The supply and demand rule is in favor of new learners - there is more demand for machine learning experts than the current supply.</span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMmNJnM0o5Iv47Eei6RAcrjA89X0SbynsWjLy9TeE13QQlSa2Ayir158lS6v-clXi_uiyAT9YWgKnP0NnEkYsX3WOibIsVJtJrOT9Ys5ESg9NrAhG2_5hKrf35cjB9cpiDeXqkunVpLwc/s1600/Best+Machine+Learning+Books+for+Beginners.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Best Machine Learning Books for Beginners" border="0" data-original-height="600" data-original-width="800" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMmNJnM0o5Iv47Eei6RAcrjA89X0SbynsWjLy9TeE13QQlSa2Ayir158lS6v-clXi_uiyAT9YWgKnP0NnEkYsX3WOibIsVJtJrOT9Ys5ESg9NrAhG2_5hKrf35cjB9cpiDeXqkunVpLwc/s320/Best+Machine+Learning+Books+for+Beginners.jpg" title="Best Machine Learning Books for Beginners" width="320" /></a></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="text-align: justify;">
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><i>So how do you go from a machine learning enthusiast to expert level?</i></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">It's very easy to get started with learning ML for beginners. There are many courses on the internet - paid and free, self-paced and focused, concise and exhaustive - there's no shortage of learning resources.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">However, machine learning takes dedication on your part. You cannot simply learn ML from one tutorial or blog post. You need to dedicate a lot of time to the basics of ML concepts.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">There's a lot of mathematics in ML, although you don't need to know all the math to get started with ML. It's good to have some math background though - as you can understand the underlying concepts of ML much easier. If you are only concerned with learning how to use ML for applications - you may not need to know the math stuff. If, however, you are planning to go into ML research, you'll have to learn statistics, a bit of calculus, linear algebra, optimization etc.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Don't get scared though, there are many beginner friendly tutorials, books and courses out there to ease you into machine learning. Here we'll talk about the most recommended machine learning books for beginners. Some of the books will be more geared towards theory, while some use practical examples to help understand machine learning concepts for beginners.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<h4 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><u style="background-color: none;">Looking for cheap books?</u></span></h4>
<div style="text-align: justify;">
<span style="background-color: none; font-family: "georgia" , "times new roman" , serif; font-size: large;">You may find some of the books to be very expensive, don't worry though - we have provided links to Amazon, which now provides you the option to buy used books as well. Simply click on the links to the books provided in the list below, and under "<b>More Buying Choices</b>" you have the option to select from "<b>New</b>", "<b>Used</b>" and "<b>Rental</b>", with different price choices from different sellers. A cool and nifty trick, isn't it?</span></div>
<div style="text-align: justify;">
<br /></div>
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><a href="https://www.amazon.com/gp/product/0136042597/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0136042597&linkCode=as2&tag=thedailyprogr-20&linkId=934f9bc605105972326279166ebfd2b7" target="_blank">Artificial Intelligence: A Modern Approach (3rd Edition)</a><img alt="" border="0" height="1" src="//ir-na.amazon-adsystem.com/e/ir?t=thedailyprogr-20&l=am2&o=1&a=0136042597" style="border: none !important; margin: 0px !important;" width="1" /></span></h3>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&OneJS=1&Operation=GetAdHtml&MarketPlace=US&source=ac&ref=tf_til&ad_type=product_link&tracking_id=thedailyprogr-20&marketplace=amazon&region=US&placement=0136042597&asins=0136042597&linkId=9e88a4b66d22c3e0f85acf21bba5c198&show_border=true&link_opens_in_new_window=false&price_color=333333&title_color=0066c0&bg_color=ffffff" style="height: 240px; width: 120px;">
</iframe>
</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Even though it is not focused entirely in machine learning, it is a must-have book. Any AI or ML enthusiast's book-shelf is incomplete without this book. It's authors are <a href="http://www.norvig.com/" target="_blank">Peter Norvig</a> and Stuart Russell, who are among the top researchers in the field. Peter Norvig, as you may know him to be the Director of Research at Google, has even maintained a <a href="https://github.com/aimacode" target="_blank">repository on Github</a> for solutions to the problems and exercises in the book, coded in Java, javascript, python, C#, Lisp and Scala. The book is a thorough guide for the field of artificial intelligence, and covers machine learning in depth as well. It is not only very beginner-friendly, it is regularly updated and covers almost every topic in AI that all beginners should know. What makes this book standout is the online code repository for its solutions - no other book provides this feature, which is very handy for beginners trying out solutions to problems on their own. If at any point you get stuck, you can refer to the online codes and get a better understanding of how to translate pseudocodes of algorithms into working codes in some of the most popular languages.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><a href="https://www.amazon.com/gp/product/0071154671/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0071154671&linkCode=as2&tag=thedailyprogr-20&linkId=3db582ab29314cf141db617a1765cbbc" target="_blank">Machine Learning (McGraw-Hill International Editions Computer Science Series)</a><img alt="" border="0" height="1" src="//ir-na.amazon-adsystem.com/e/ir?t=thedailyprogr-20&l=am2&o=1&a=0071154671" style="border: none !important; margin: 0px !important;" width="1" /> (Theory)</span></h3>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&OneJS=1&Operation=GetAdHtml&MarketPlace=US&source=ac&ref=tf_til&ad_type=product_link&tracking_id=thedailyprogr-20&marketplace=amazon&region=US&placement=0071154671&asins=0071154671&linkId=404f143002399ffdee9328f69793f5cc&show_border=true&link_opens_in_new_window=false&price_color=333333&title_color=0066c0&bg_color=ffffff" style="height: 240px; width: 120px;">
</iframe><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">This book gives a nice overview of machine learning, and introduces the foundational concepts of ML. It is one of the classics, and you'll find it recommended almost everywhere. While not the most up-to-date book, it provides a deep understanding of common algorithms used in ML. It includes topics such as bayesian learning, RL, neural nets, analytical learning, decision trees etc. This book is slightly math-focused and is most suitable for those with a background in mathematics and computational science at a bachelor's level.</span></div>
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><a href="https://www.amazon.com/gp/product/0387848576/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0387848576&linkCode=as2&tag=thedailyprogr-20&linkId=d594c4ead995b195c385e2262acbb6fd" target="_blank">The Elements of Statistical Learning: Data Mining, Inference, and Prediction, Second Edition (Springer Series in Statistics)</a><img alt="" border="0" height="1" src="//ir-na.amazon-adsystem.com/e/ir?t=thedailyprogr-20&l=am2&o=1&a=0387848576" style="border: none !important; margin: 0px !important;" width="1" />(Theory)</span></h3>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&OneJS=1&Operation=GetAdHtml&MarketPlace=US&source=ac&ref=tf_til&ad_type=product_link&tracking_id=thedailyprogr-20&marketplace=amazon&region=US&placement=0387848576&asins=0387848576&linkId=6039501378ff98f454d42949d1de5d72&show_border=true&link_opens_in_new_window=false&price_color=333333&title_color=0066c0&bg_color=ffffff" style="height: 240px; width: 120px;">
</iframe><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">This book aims to be a complete guide for machine learning enthusiasts. The book teaches all the commonly used algorithms and concepts such as supervised learning, unsupervised learning etc. in detail. It also includes all the different ML techniques - regression and classification problems, decision trees, random forests, neural networks - basically everything you need to know to get started. Get this book if you are more interested in the theory behind ML techniques and would like to understand how to develop your own algorithms.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<h3 style="background-color: none; box-sizing: border-box; color: #111111; line-height: 1.2; margin: 0px; padding: 0px; text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><a href="https://www.amazon.com/gp/product/1491962291/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1491962291&linkCode=as2&tag=thedailyprogr-20&linkId=7087c37f15af8ea980987acb6377a612" target="_blank">Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems</a><img alt="" border="0" height="1" src="//ir-na.amazon-adsystem.com/e/ir?t=thedailyprogr-20&l=am2&o=1&a=1491962291" style="border: none !important; margin: 0px !important;" width="1" /></span></h3>
<div class="feature" data-feature-name="averageCustomerReviews" id="averageCustomerReviews_feature_div" style="box-sizing: border-box; display: inline-block; margin-bottom: 7px;">
<div class="a-spacing-none" data-asin="1491962291" data-ref="dpx_acr_pop_" id="averageCustomerReviews" style="box-sizing: border-box; display: inline-block; margin-bottom: 0px !important;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"></span><br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">
</span>
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">
</span>
<br />
<div style="text-align: justify;">
<iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&OneJS=1&Operation=GetAdHtml&MarketPlace=US&source=ac&ref=tf_til&ad_type=product_link&tracking_id=thedailyprogr-20&marketplace=amazon&region=US&placement=1491962291&asins=1491962291&linkId=2f06c070f0b1af5042cb38184a261832&show_border=true&link_opens_in_new_window=false&price_color=333333&title_color=0066c0&bg_color=ffffff" style="height: 240px; width: 120px;">
</iframe></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">
</span></div>
</div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Looking for a practical book that teaches how to apply machine learning concepts? Look no further, as this is the best book you could own that teaches you ML with actual examples so you can get a more hands-on training with ML. The book teaches you how to build machine learning projects and is a very good resource for ML enthusiasts and beginners who are just starting out and would love to have at least a project under their belt. It uses examples, and codes to help the reader understand how we can apply the different techniques to common applications. The content teaches you how to use (train) data for an ML project, and includes all important topics such as classification, decision trees, forests, neural nets, deep learning networks, etc. It uses scikit-learn and tensorflow, so you'll get an introduction to the most popular ML library and framework as well.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">There are many more books that we can recommend, but you'll probably be overwhelmed by now - so many choices, what to buy? We suggest taking your time to read through the Table of Contents of each book and deciding which ones have topics that you are more interested in. If you go the Amazon links provided in this post, you'll see a "Look Inside" text with arrow on the image of the book. When you click on it, you can read through the book's introduction, preface, and table of contents. This will help you to decide which books are most suited to your learning style.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Below are some more books we found interesting, do give them a look to see if you like them!</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><u>Practical Books for Machine Learning for Beginners</u></span></h3>
<div style="text-align: center;">
<div style="text-align: center;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
</div>
<div style="text-align: center;">
<div style="text-align: center;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
</div>
<div style="text-align: center;">
<div style="text-align: center;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&OneJS=1&Operation=GetAdHtml&MarketPlace=US&source=ac&ref=tf_til&ad_type=product_link&tracking_id=thedailyprogr-20&marketplace=amazon&region=US&placement=197402038X&asins=197402038X&linkId=f27e15e3c6bd80ab2bda626542cd4b73&show_border=true&link_opens_in_new_window=false&price_color=333333&title_color=0066c0&bg_color=ffffff" style="height: 240px; width: 120px;"></iframe>
<iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&OneJS=1&Operation=GetAdHtml&MarketPlace=US&source=ac&ref=tf_til&ad_type=product_link&tracking_id=thedailyprogr-20&marketplace=amazon&region=US&placement=B07335JNW1&asins=B07335JNW1&linkId=302dc9e237a2771058930104e8cf7b27&show_border=true&link_opens_in_new_window=false&price_color=333333&title_color=0066c0&bg_color=ffffff" style="height: 240px; width: 120px;"></iframe>
<iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&OneJS=1&Operation=GetAdHtml&MarketPlace=US&source=ac&ref=tf_til&ad_type=product_link&tracking_id=thedailyprogr-20&marketplace=amazon&region=US&placement=197563232X&asins=197563232X&linkId=b2ce57de48b6e0c5ff1081632bedf18b&show_border=true&link_opens_in_new_window=false&price_color=333333&title_color=0066c0&bg_color=ffffff" style="height: 240px; width: 120px;"></iframe>
<iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&OneJS=1&Operation=GetAdHtml&MarketPlace=US&source=ac&ref=tf_til&ad_type=product_link&tracking_id=thedailyprogr-20&marketplace=amazon&region=US&placement=1978373880&asins=1978373880&linkId=b91e6ccfa1faf1cf966ce9ef1119a56f&show_border=true&link_opens_in_new_window=false&price_color=333333&title_color=0066c0&bg_color=ffffff" style="height: 240px; width: 120px;"></iframe>
<iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&OneJS=1&Operation=GetAdHtml&MarketPlace=US&source=ac&ref=tf_til&ad_type=product_link&tracking_id=thedailyprogr-20&marketplace=amazon&region=US&placement=B01JBL8YVK&asins=B01JBL8YVK&linkId=ee11aa9c455428c479663ebe28c3ba28&show_border=true&link_opens_in_new_window=false&price_color=333333&title_color=0066c0&bg_color=ffffff" style="height: 240px; width: 120px;"></iframe>
</span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"></span><br />
<div style="text-align: center;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">
</span>
<br />
<div style="text-align: center;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">
</span>
<br />
<hr style="text-align: justify;" />
</div>
</div>
Post settings
Labels
artificial intelligence, books, machine learning
Published on
25/12/2017 03:33
Australian Eastern Daylight Time (New South Wales)
Links
Location
Search Description
top 5 best Machine learning books for beginners - there are many beginner friendly tutorials, books and courses out there to ease you into machine learning. Here we'll talk about the most recommended machine learning books for beginners. Some of the books will be more geared towards theory, while some use practical examples to help understand machine learning concepts for beginners.
OptionsUnknownnoreply@blogger.com117tag:blogger.com,1999:blog-4876635898680256880.post-16704607407666591062017-12-22T06:01:00.001+11:002018-12-14T10:15:01.808+11:00Beginners Guide to Understanding the Blockchain<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">What is the blockchain? You've seen the word several times on the internet, you <i>kinda</i> know that it's <i>somewhat</i> related to bitcoin. You've heard it used in conjunction with all the latest buzz words - AI, machine learning, IoT... But you probably still don't know what it exactly means.</span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCjdbMuZU-7rZyi7KBWP2wGcM_h-AqvE9ob0DqZyCfl93OnaPjIzHvUKCgYeAaAvEwIk94CO4NYggjtZxQKpPnt_TUvZi5wlpRS6mvJjGP6WTnTFGD-MeS5125xLxTjC1fDA0TSvxfe2E/s1600/Beginners+guide+to+understanding+the+blockchain.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Beginner's Guide to Understanding the Blockchain" border="0" data-original-height="600" data-original-width="800" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCjdbMuZU-7rZyi7KBWP2wGcM_h-AqvE9ob0DqZyCfl93OnaPjIzHvUKCgYeAaAvEwIk94CO4NYggjtZxQKpPnt_TUvZi5wlpRS6mvJjGP6WTnTFGD-MeS5125xLxTjC1fDA0TSvxfe2E/s320/Beginners+guide+to+understanding+the+blockchain.jpg" title="Beginner's Guide to Understanding the Blockchain" width="320" /></a></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"></span><br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><a amzn-ps-bm-asin="B071ZQ4MG1" class="amzn_ps_bm_tl" data-amzn-link-id="17384cd553b24838fadfd71553999c93" data-amzn-ps-bm-keyword="Blockchain" href="http://www.amazon.com/Blockchain-understanding-blockchain-cryptocurrencies-contracts-ebook/dp/B071ZQ4MG1/ref=as_li_bk_tl/?tag=tdp0f-20&linkId=17384cd553b24838fadfd71553999c93&linkCode=ktl" id="amznPsBmLink_8556514" rel="nofollow" target="_blank">Blockchain</a><img alt="" border="0" height="0" id="amznPsBmPixel_8556514" src="https://ir-na.amazon-adsystem.com/e/ir?source=bk&t=tdp0f-20&bm-id=default&l=ktl&linkId=17384cd553b24838fadfd71553999c93&_cb=1513882158833" style="border: none !important; height: 0px !important; margin: 0px !important; padding: 0px !important; width: 0px !important;" width="0" /> is a concept that was introduced by <u><a amzn-ps-bm-asin="0996061312" class="amzn_ps_bm_tl" data-amzn-link-id="71ea285c41a65bfa3a424f2cabbf2c0f" data-amzn-ps-bm-keyword="Satoshi Nakamoto" href="http://www.amazon.com/Book-Satoshi-Collected-Writings-Nakamoto/dp/0996061312/ref=as_li_bk_tl/?tag=tdp0f-20&linkId=71ea285c41a65bfa3a424f2cabbf2c0f&linkCode=ktl" id="amznPsBmLink_306373" rel="nofollow" target="_blank">Satoshi Nakamoto</a><img alt="" border="0" height="0" id="amznPsBmPixel_306373" src="https://ir-na.amazon-adsystem.com/e/ir?source=bk&t=tdp0f-20&bm-id=default&l=ktl&linkId=71ea285c41a65bfa3a424f2cabbf2c0f&_cb=1513882138663" style="border: none !important; height: 0px !important; margin: 0px !important; padding: 0px !important; width: 0px !important;" width="0" /></u> in the year <u>2008</u>. It is basically a secure database design, that holds information related to transactions. Confusing? Let's take the help of an example.</span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">
</span>
<br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">A blockchain is just like a <i>public ledger</i> - it keeps a record of all transactions occurring through the blockchain. <b>Bitcoin</b> for example, is a <i>cryptocurrency</i> - a new form of currency that is based on blockchain and is available only in digital form. If you send or receive bitcoins, all the information of the transaction, its timestamp, summary, amount transferred etc. are stored in the blocks of the blockchain. </span></div>
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"></span><br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">One feature of the blockchain is that <u>all transactions are anonymous and are recorded</u>. You cannot identify people directly using the information from the transactions. Having all the transactions publicly recorded and viewable increases the <b>transparency</b> of this mechanism. </span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">
</span>
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
</div>
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">How is blockchain structured? </span></h3>
<div style="text-align: justify;">
<img alt="Beginner's Guide to Understanding the Blockchain" src="https://upload.wikimedia.org/wikipedia/commons/3/3a/Blockchain_workflow.png" title="Beginner's Guide to Understanding the Blockchain" /></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">One important thing to understand about blockchain is that it is completely <b>decentralized</b>. What this means is that there is no one single entity, organisation or server handling the entire blockchain. It is users like you who volunteered to be a part of blockchain development and are responsible for maintaining the system. These people are called <i>miners</i>. We will talk about miners in a short while.</span></div>
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"></span><br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Essentially, blockchain is a chain of blocks. Now what is a block? In simple terms, a block is a distinct entity that consists of records of transactions - think of it as a page in your ledger or accounting books. In a blockchain you'll have several blocks connected to each other. Each block will be linked to the previous block just like a reverse linked list (you'll know the term if you're a programmer, otherwise think of it as a page in a book linked to the previous book with threads). This link is what enables the chain like structure of the blockchain. </span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">
</span>
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"></span><br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">We talked about miners, let's see what they actually do. <u>Miners are helping in building and maintaining the blockchain.</u> Since there is no one governing entity for the blockchain, it is up to users like you and me to decide to be the governing entity. If we decide to contribute to the blockhchain, we'll be known as miners.</span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">
</span>
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
</div>
<h4 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><i>How does a miner help?</i> </span></h4>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">A miner provides resources for maintaining the blockchain. These resources are in the form of their computer's <i>processing power</i>. These computers are called nodes, and they communicate with other such nodes in a manner known as peer-to-peer connection. These nodes are distributed across the globe, so even if one of the nodes goes down - for example, due to a power shutdown in its region or any other cause, the remaining nodes on the <b>P2P</b> (short for peer-to-peer) network which are running will continue to keep the blockchain alive. </span></div>
<div style="text-align: justify;">
<i><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></i>
</div>
<h4 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><i>How exactly do these nodes contribute to the blockchain?</i> </span></h4>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">All the nodes will keep a copy of the blockchain - all the blocks and their links - with themselves and will regularly sync with the other nodes to ensure that all the nodes have the same copy. </span></div>
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"></span><br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><u>Once a new transaction is added, each node verifies the transaction using an algorithm.</u> When the majority of the nodes verify the transaction, it is added in the blocks. </span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">
</span>
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Hence, the miners play a useful role in ensuring that the blockchain remains sustainable. <u>Verifying a transaction is key to the mining in blockchain.</u> Only when a transaction is verified by the miner, the miner is <b>rewarded in bitcoins</b>. Seems appealing, doesn't it? Of course, you need to provide people with some incentive otherwise no one will be interested in taking up these huge task of maintaining the blockchain.</span></div>
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"></span><br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Here's one more feature of a blockchain - you cannot modify or delete a transaction that has been entered into the blockchain. Once it is in the blockchain, it stays there forever. This is a means to ensure security and transparency, as well as protect from scams.</span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">
</span>
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"></span><br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Each of the blocks is secured by means of hashing - a technique that maps a key to an indiscernible value. The information stored in the blocks is converted to this value and stored in that form. You can find the value if you have the information, but you cannot trace back - that is, if you have some hashed values with you, there is no feasible algorithm to return the original information back from those values. This is what makes the blockchain more secure.</span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">
</span>
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"></span><br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><img alt="What is Blockchain Technology?" src="https://blockgeeks.com/wp-content/uploads/2016/09/infographics0517-01-1.png" title="Beginner's Guide to Understand the Blockchain" /></span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">
</span>
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"></span><br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">
</span>
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Even though most big companies and businesses do not acknowledge bitcoin as a legitimate currency, mostly because of the lack of trust in this type of new system, and reluctance of governing bodies to authorize or issue regulations, there are many small to medium businesses and startups who are keen understand and leverage these latest trends in technology and in order to attract the young and tech savvy, who have started accepting bitcoins as a means of payment. </span></div>
<br />
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"></span><br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">The concept of blockchain however, is gaining interest from big companies. Though they may not be interested in bitcoins, they are interested in developing applications using the decentralized system model of blockchain.</span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">
</span>
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"></span><br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">"<u><i>The bitcoin bubble and it's inevitable crash</i></u>" forebodes every other headline in news articles these days. You've heard the naysayers of bitcoin as well, who are just waiting gleefully for the bitcoin to be crashed. </span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">
</span>
<br />
<h4 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">But how exactly will it crash?</span></h4>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">What most of these news articles are referring to is the <a href="https://www.investopedia.com/terms/1/51-attack.asp" target="_blank">51% attack</a> that says that if there are more dishonest people in the blockchain, our secure decentralized wall will break down. </span></div>
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"></span><br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">We've seen how transactions get added to the blockchain - it depends on the agreement between majority (>50%) of the nodes. </span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">
</span>
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">If however, the majority is somehow compromised, in other terms - controlled by hackers, then they can interfere with how transactions are verified and break down the secure and reliable system of blockchains. </span></div>
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"></span><br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Due to the independent nature of blockchain, it is difficult for new users to get security of their assets in the blockchain and hence, most newcomers are wary of investing in bitcoin, despite its amazing performance.</span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">
</span>
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"></span><br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">So this covers most of the things you need to know about blockchain. Hope this article helps you in getting a general idea of the concept of blockchain and how bitcoins fit into the whole system.</span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">
</span>
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
</div>
<h4 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Still confused? </span></h4>
<div style="text-align: left;">
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Here's a <u><a href="https://yourstory.com/2017/07/ultimate-3500-word-guide-plain-english-understand-blockchain/" target="_blank">detailed example</a></u> of how the blockchain technology works using simple examples. </span></div>
</div>
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"></span><br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">One last piece of information you definitely must know - do you know the worth of 1 bitcoin in terms of United States Dollars? </span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">
</span>
<br />
<h4 style="text-align: justify;">
<u><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">It's <b>$15499.00</b> as of <i>22 December 2017</i>.</span></u></h4>
<h4 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Yup, 1 bitcoin is worth more than $15k. </span></h4>
<div style="text-align: justify;">
<br /></div>
</div>
Unknownnoreply@blogger.com76tag:blogger.com,1999:blog-4876635898680256880.post-18508793239972897582017-12-19T14:32:00.000+11:002018-02-08T20:31:34.251+11:006 Hints on How to Develop Successful Content Marketing Strategy<div dir="ltr" style="text-align: left;" trbidi="on">
<div align="justify" class="MsoNormal" style="text-align: justify;">
<span style="font-family: "arial" , sans-serif; text-align: justify;">A
good content marketing strategy is focused on producing and expanding significant,
meaningful, and useful content to draw the attention of a specific audience.
Eventually, this marketing strategy, along with convincing content, will drive financially
rewarding profits. If, on the other side, there is a lack of valuable, documented
content marketing strategy, that will hurt your content more than you could
think.</span><br />
<span style="font-family: "arial" , sans-serif; text-align: justify;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnxFkv0sMWcAOSL6dq4WbkPCkHmpWqn7W-bddJhNY8BVuUfrjiisiurBV7DT2D0Q34B-05xVbEgDsybJidPw8xmwrXA9WHin7bJAGoI2Ae2m1jnH8z5g-FzVyUnv59RBIXauvOz66NTdY/s1600/6+Hints+on+How+to+Develop+Successful+Content+Marketing+Strategy.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="6 Hints on How to Develop Successful Content Marketing Strategy" border="0" data-original-height="600" data-original-width="800" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnxFkv0sMWcAOSL6dq4WbkPCkHmpWqn7W-bddJhNY8BVuUfrjiisiurBV7DT2D0Q34B-05xVbEgDsybJidPw8xmwrXA9WHin7bJAGoI2Ae2m1jnH8z5g-FzVyUnv59RBIXauvOz66NTdY/s320/6+Hints+on+How+to+Develop+Successful+Content+Marketing+Strategy.jpg" title="6 Hints on How to Develop Successful Content Marketing Strategy" width="320" /></a></div>
<span style="font-family: "arial" , sans-serif; text-align: justify;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<span style="font-family: "arial" , sans-serif; text-align: justify;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "arial" , "sans-serif";">In
order to develop a successful marketing campaign, you need to know who your
audience is, what they are interested in, where they search for that content,
what goals you want to achieve, how much you’ve progressed, and how you plan on
reaching your audience. Here are some details on how to do all of the above!<o:p></o:p></span></div>
<div class="MsoListParagraph" style="mso-list: l2 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><b><span style="font-family: "arial" , "sans-serif"; mso-fareast-font-family: Arial;">1.<span style="font-family: "times new roman"; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;"> </span></span></b><!--[endif]--><b><span style="font-family: "arial" , "sans-serif";">Focus
on Your Audience<o:p></o:p></span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "arial" , "sans-serif";">The
first and most important step towards a successful marketing campaign is
targeting your audience. You must know them really well in order to sell them
what they need. Begin by making a list of your current customers’ preferences.
If, however, you don’t have customers yet, here is a set of questions that will
help you begin your research.<o:p></o:p></span></div>
<ul>
<li><span style="font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;"> </span><span style="font-family: "arial" , sans-serif; text-indent: -18pt;">What
makes them purchase products or services like the ones you offer?</span></li>
<li><span style="font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;"> </span><span style="font-family: "arial" , sans-serif; text-indent: -18pt;">What
are their expectations of the products/services?</span></li>
<li><span style="font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;"> </span><span style="font-family: "arial" , sans-serif; text-indent: -18pt;">What
do your buyers care most about when reading other customers’ opinions?</span></li>
<li><span style="font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;"> </span><span style="font-family: "arial" , sans-serif; text-indent: -18pt;">What
causes them to avoid buying products/services similar to yours?</span></li>
<li><span style="font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;"> </span><span style="font-family: "arial" , sans-serif; text-indent: -18pt;">Why
could they possibly believe that buying from you is not their best option?</span></li>
</ul>
<br />
<div class="MsoNormal" style="text-align: justify;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-aQHN-5QO66g/WjiG1Aww74I/AAAAAAAABBE/rWXYhpWl2L0zY91pP5VoFhA7PZuAMgW5gCLcBGAs/s1600/Content-Marketing-dps-lrg-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Content Marketing Strategy" border="0" data-original-height="500" data-original-width="832" src="https://1.bp.blogspot.com/-aQHN-5QO66g/WjiG1Aww74I/AAAAAAAABBE/rWXYhpWl2L0zY91pP5VoFhA7PZuAMgW5gCLcBGAs/s1600/Content-Marketing-dps-lrg-2.png" title="Content Marketing Strategy" /></a></div>
<span style="font-family: "arial" , "sans-serif";">Be
honest when you answer the above questions. If you find an answer to be very
unsatisfying, ask yourself why. Make sure you write down all these questions
and reflect on them later again.<o:p></o:p></span></div>
<div class="MsoListParagraph" style="mso-list: l2 level1 lfo1; text-align: justify; text-indent: -18.0pt;">
<!--[if !supportLists]--><b><span style="font-family: "arial" , "sans-serif"; mso-fareast-font-family: Arial;">2.<span style="font-family: "times new roman"; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;">
</span></span></b><!--[endif]--><b><span style="font-family: "arial" , "sans-serif";">Know Where Your Audience Searches for
Content<o:p></o:p></span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "arial" , "sans-serif";">Find
out where you audience hangs out online, and understand why that is the case.
What do they like about the platforms they use? Why are they interested in when
accessing a specific web page? Research the strategies those platforms and
websites use in order to </span><a href="https://www.forbes.com/sites/forbesbusinessdevelopmentcouncil/2017/09/11/five-ways-to-attract-loyal-customers-in-the-digital-age/#6fd742351cf3"><span style="font-family: "arial" , "sans-serif";">attract customers</span></a><span style="font-family: "arial" , "sans-serif";">. If you feel brave, shoot them an
e-mail and ask if they have any advice for you. Competition can be beneficial
within a market, especially if it means the entities upgrade their products for
the benefit of the customers.<o:p></o:p></span></div>
<div class="MsoListParagraph" style="mso-list: l2 level1 lfo1; text-align: justify; text-indent: -18.0pt;">
<!--[if !supportLists]--><b><span style="font-family: "arial" , "sans-serif"; mso-fareast-font-family: Arial;">3.<span style="font-family: "times new roman"; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;">
</span></span></b><!--[endif]--><b><span style="font-family: "arial" , "sans-serif";">Find Your Audience’s Preferences<o:p></o:p></span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "arial" , "sans-serif";">You
can pretty much tell what you audience’s preferences are by knowing where they
search for content. If their favorite platform is LinkedIn, they like
thoroughly written articles, smart videos, and slide decks. If they spend a lot
of time on Facebook, then content and video sharing are their favorites. If they like Awwwards, storytelling might fit
them the best.<o:p></o:p></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "arial" , "sans-serif";">Your
main goal here should be </span><a href="https://www.forbes.com/sites/robertadams/2017/06/11/content-marketing-five-steps-for-creating-insatiable-posts-that-rank/#27490fd743d1"><span style="font-family: "arial" , "sans-serif";">creating proper content</span></a><span style="font-family: "arial" , "sans-serif";"> for your audience. If you don’t know
their preferences, you might have to test every strategy and see which one
works the best. Unfortunately, that might take more time and money than
expected, so I’d say research is your best friend!<o:p></o:p></span></div>
<div class="MsoListParagraph" style="mso-list: l2 level1 lfo1; text-align: justify; text-indent: -18.0pt;">
<!--[if !supportLists]--><b><span style="font-family: "arial" , "sans-serif"; mso-fareast-font-family: Arial;">4.<span style="font-family: "times new roman"; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;">
</span></span></b><!--[endif]--><b><span style="font-family: "arial" , "sans-serif";">Set Gradual Goals<o:p></o:p></span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "arial" , "sans-serif";">The
first question you should ask yourself is “What is the purpose of my content?” Yes,
we all want to sell our products for profits, but there is something specific
about the content itself that made you choose it. So, what do you want your
content to achieve and why?<o:p></o:p></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "arial" , "sans-serif";">In
order to increase your audience and improve your content, you need to take
things step by step. So, set goals for each step of the way. Laila Johnson,
freelance writer at </span><a href="https://www.rushmyessay.co.uk/"><span style="font-family: "arial" , "sans-serif";">RushMyEssay UK</span></a><span style="font-family: "arial" , "sans-serif";">, shares her opinion. “Setting gradual
goals helps a lot – not only mentally, but also from an organizational point of
view. Set a target on how many customers you want to achieve by the end of step
1. Make sure you use all the valuable
online tools to make them participate in your webinars, respond to your
e-mails, or download your articles. Your initial offer has to be extremely
attractive.”<o:p></o:p></span></div>
<div class="MsoListParagraph" style="mso-list: l2 level1 lfo1; text-align: justify; text-indent: -18.0pt;">
<!--[if !supportLists]--><b><span style="font-family: "arial" , "sans-serif"; mso-fareast-font-family: Arial;">5.<span style="font-family: "times new roman"; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;">
</span></span></b><!--[endif]--><b><span style="font-family: "arial" , "sans-serif";">Pay Attention to Your Progress<o:p></o:p></span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "arial" , "sans-serif";">Realizing
how much you’ve progressed plays a big role in your marketing strategy. It
shows that you understand the good and the bad parts of your online journey.
Thus, you are going to use the good parts and expand them. Make sure you
evaluate your progress at the end of each week, and change whichever strategy
you might consider unproductive. Your marketing plan has to be constantly
reviewed in order to give out the best results!<o:p></o:p></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "arial" , "sans-serif";">You can evaluate your progress by looking at these specific details:<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo3; text-align: justify; text-indent: -18.0pt;">
<br />
<ul>
<li><span style="font-family: "symbol"; text-indent: -18pt;"><span style="font-family: "times new roman"; font-size: 7pt; font-stretch: normal; line-height: normal;"> </span></span><span style="font-family: "arial" , "sans-serif"; text-indent: -18pt;">Your
customers’ response to your products/services (use surveys!)</span></li>
<li><span style="font-family: "symbol"; text-indent: -18pt;"><span style="font-family: "times new roman"; font-size: 7pt; font-stretch: normal; line-height: normal;"> </span></span><span style="font-family: "arial" , "sans-serif"; text-indent: -18pt;">How
much you’ve expanded since you started</span></li>
<li><span style="font-family: "symbol"; text-indent: -18pt;"><span style="font-family: "times new roman"; font-size: 7pt; font-stretch: normal; line-height: normal;"> </span></span><span style="font-family: "arial" , "sans-serif"; text-indent: -18pt;">What
your partners say about your progress</span></li>
<li><span style="font-family: "symbol"; text-indent: -18pt;"><span style="font-family: "times new roman"; font-size: 7pt; font-stretch: normal; line-height: normal;"> </span></span><span style="font-family: "arial" , "sans-serif"; text-indent: -18pt;">What
your competitors say about your progress (and how challenged they feel)</span></li>
</ul>
<!--[if !supportLists]--></div>
<div class="MsoListParagraphCxSpMiddle" style="text-align: justify;">
<br /></div>
<div class="MsoListParagraphCxSpLast" style="mso-list: l2 level1 lfo1; text-align: justify; text-indent: -18.0pt;">
<!--[if !supportLists]--><b><span style="font-family: "arial" , "sans-serif"; mso-fareast-font-family: Arial;">6.<span style="font-family: "times new roman"; font-size: 7pt; font-stretch: normal; font-weight: normal; line-height: normal;">
</span></span></b><!--[endif]--><b><span style="font-family: "arial" , "sans-serif";">Reach Out to Your Audience<o:p></o:p></span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "arial" , "sans-serif";">As
I was pointing out before, knowing how to reach your audience is a crucial step
here. Here are some ideas:<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l3 level1 lfo4; text-align: justify; text-indent: -18.0pt;">
<br />
<ul>
<li><span style="font-family: "symbol"; text-indent: -18pt;"><span style="font-family: "times new roman"; font-size: 7pt; font-stretch: normal; line-height: normal;"> </span></span><span style="font-family: "arial" , "sans-serif"; text-indent: -18pt;">Blogging
– blog about your products and generate high-quality content.</span></li>
<li><span style="font-family: "symbol"; text-indent: -18pt;"><span style="font-family: "times new roman"; font-size: 7pt; font-stretch: normal; line-height: normal;"> </span></span><a href="https://www.huffingtonpost.com/entry/nine-reasons-your-brand-i_b_11086840.html" style="text-indent: -18pt;"><span style="font-family: "arial" , "sans-serif";">Social media</span></a><span style="font-family: "arial" , "sans-serif"; text-indent: -18pt;"> – share your content on Facebook,
Instagram, LinkedIn, etc. Use smart tactics to promote your products.</span></li>
<li><span style="font-family: "symbol"; text-indent: -18pt;"><span style="font-family: "times new roman"; font-size: 7pt; font-stretch: normal; line-height: normal;"> </span></span><span style="font-family: "arial" , "sans-serif"; text-indent: -18pt;">Press
– reach out to other bloggers or freelancers to write about your products and
promote them.</span></li>
<li><span style="font-family: "symbol"; text-indent: -18pt;"><span style="font-family: "times new roman"; font-size: 7pt; font-stretch: normal; line-height: normal;"> </span></span><span style="font-family: "arial" , "sans-serif"; text-indent: -18pt;">E-mail
– best way to reach out to your customers directly. Just make them sign up to
your e-mail list!</span></li>
</ul>
<!--[if !supportLists]--></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "arial" , "sans-serif";">Use
whichever method fits you the best! Choose wisely, and do not let yourself
influenced by other marketers. Each marketing strategy is or <i>should be</i> different than yours, so don’t
get anxious if nobody else uses your strategies.<o:p></o:p></span></div>
<div class="MsoNormal" style="text-align: justify;">
<b><span style="font-family: "arial" , "sans-serif";">Conclusion<o:p></o:p></span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "arial" , "sans-serif";">By
thinking simply, but smartly,you will achieve your targets for sure. Focus on
your audience, understand their preferences and favorite online places to hang
out, and plan accordingly. Set goals for each week, and track your progress
constantly. Good luck!<o:p></o:p></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<br />
<div class="MsoNormal" style="text-align: justify;">
<h3>
AUTHOR BIO</h3>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://4.bp.blogspot.com/-nMOybisXxv4/WjiHmHQDEKI/AAAAAAAABBM/I9VmCGeHbmYRgbhnihvx2RQmz8T2d_gegCLcBGAs/s1600/Brandon%2BStanley.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="985" data-original-width="788" height="200" src="https://4.bp.blogspot.com/-nMOybisXxv4/WjiHmHQDEKI/AAAAAAAABBM/I9VmCGeHbmYRgbhnihvx2RQmz8T2d_gegCLcBGAs/s200/Brandon%2BStanley.jpg" width="159" /></a></div>
<div>
<span style="font-family: "arial"; font-size: 14px; vertical-align: baseline;">Brandon Stanley is a professional independent journalist. He is interested in writing articles concerning marketing and advertisement. Apart from that, Brandon loves traveling and playing the piano. Follow him on </span><a href="http://s.bl-1.com/h/W17HXgl?url=https://www.facebook.com/brandon.stanley.90038" style="background-color: white; color: #598fde; font-family: Lato; font-size: 14px; text-align: start; word-break: break-word; word-wrap: break-word;" target="_blank"><span style="background-color: transparent; font-family: "arial"; vertical-align: baseline;">Facebook</span></a><span style="font-family: "arial"; font-size: 14px; vertical-align: baseline;"> and </span><span style="font-family: "arial"; font-size: 14px; vertical-align: baseline;"><a href="http://s.bl-1.com/h/W17Jc3n?url=https://twitter.com/brandon20stan" style="color: #598fde; word-break: break-word; word-wrap: break-word;" target="_blank">Twitter</a>.</span></div>
<br />
<br /></div>
</div>
<div id="amzn-assoc-ad-7c4df889-564c-4ce1-8f99-9bdbd6350260">
</div>
<script async="" src="//z-na.amazon-adsystem.com/widgets/onejs?MarketPlace=US&adInstanceId=7c4df889-564c-4ce1-8f99-9bdbd6350260"></script>Unknownnoreply@blogger.com277tag:blogger.com,1999:blog-4876635898680256880.post-50022693915517988142017-12-11T21:10:00.000+11:002018-12-14T10:30:50.107+11:00Google AlphaZero Beats The Best Chess-Playing Software Program<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<div align="justify" class="MsoNormal" style="text-align: justify;">
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large; text-align: justify;">I bet everyone's heard of the arrival of the news of world's next Chess champion - the "alien" AlphaZero. No, it isn't exactly an alien, it's a software - but it does not work like a typical software. It uses techniques similar to the functions of the human brain and with its computational power it performs exceptionally better than the human.</span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large; text-align: justify;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikhlzAiAvvhfH1MnKeZE5-D9qZ4UnikL3HLF4jJhTrTQaQjX_Yc1hS553MWqhmotTAL2TrE8uAp4la-5uJtpRLx-D7KGjKI9qFq6Bcn7nbh-YmSZ6e0VZJswIZdSWMo6sM5I9h6LaT0yw/s1600/Googles+AlphaZero+Beats+the+Best+Chess+Playing+Software+Program.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Google AlphaZero Beats The Best Chess-Playing Software Program" border="0" data-original-height="600" data-original-width="800" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikhlzAiAvvhfH1MnKeZE5-D9qZ4UnikL3HLF4jJhTrTQaQjX_Yc1hS553MWqhmotTAL2TrE8uAp4la-5uJtpRLx-D7KGjKI9qFq6Bcn7nbh-YmSZ6e0VZJswIZdSWMo6sM5I9h6LaT0yw/s320/Googles+AlphaZero+Beats+the+Best+Chess+Playing+Software+Program.jpg" title="Google AlphaZero Beats The Best Chess-Playing Software Program" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large; text-align: justify;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large; text-align: justify;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large; text-align: justify;">The inception of AlphaZero took place in DeepMind - the famous branch of Google known for delivering amazing research in advancement of AI. </span></div>
</div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<b><span style="font-family: "georgia" , "times new roman" , serif; font-size: large; line-height: 107%;">Google’s DeepMind <o:p></o:p></span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><a href="https://deepmind.com/"><span style="line-height: 107%;">DeepMind
Technologies Limited</span></a><span style="line-height: 107%;"> is a British artificial
intelligence research company which was founded by <b>Demis Hassabis</b>, <b>Shane Legg</b>,
and <b>Mustafa Suleyman</b> in 2010. The start-up was later acquired by Google in
2014. </span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large; line-height: 107%;">The company is involved in pioneering research in the field of AI, developing
programs which can learn to solve complex problems from observing their environment -a technique known as machine learning. <o:p></o:p></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><span style="line-height: 107%;">DeepMind
made a </span><a href="http://www.telegraph.co.uk/technology/2016/03/09/googles-deepmind-beats-go-champion-in-historic-moment-for-ai/"><span style="line-height: 107%;">breakthrough</span></a><span style="line-height: 107%;"> last year with its AlphaGo program which mastered the famous game Go. Go
is an ancient and complex game of strategy and intuition which involves two
players putting black and white markers on a 19-by-19 grid. The game is said to
have an impossible number of playing permutations. Many previously believed it
could not be played successfully by an AI program, however last year AlphaGo defeated
world champion Lee Sedol. <o:p></o:p></span></span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><span style="line-height: 107%;"><br /></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large; line-height: 107%;">AlphaGo was
effective because it had been programmed with millions of moves made by past
masters and was able to predict its own chances of winning, adjusting its
strategy accordingly. <u>The AlphaGo program used algorithms and practiced by
analyzing data from 100,000 professional human games and played against itself
some 30 million times. </u><o:p></o:p></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<b><span style="font-family: "georgia" , "times new roman" , serif; font-size: large; line-height: 107%;">AlphaZero<o:p></o:p></span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><span style="line-height: 107%;">AlphaZero
is a generalized (and improvised) version of AlphaGo and DeepMind. The creators of AlphaZero recently published an academic
</span><span style="line-height: 107%;"><a href="https://arxiv.org/pdf/1712.01815.pdf">paper</a> at arXiv</span><span class="MsoHyperlink"><span style="line-height: 107%;">, </span></span><span style="line-height: 107%;">which has
not yet been peer reviewed. The paper describes the advancements made by a game-playing
program which was able to master the games of Go, chess and Shogi (Japanese
chess) within 24 hours. According to the paper’s authors,<o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="font-family: "georgia" , "times new roman" , serif; font-size: large; line-height: 107%;">“Starting from random play and given no domain knowledge except
the game rules, AplhaZero achieved within 24 hours a superhuman level of play
in the games of chess and shogi as well as Go, and convincingly defeated a
world champion program in each case.” <o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><span style="line-height: 107%;">In a series
of <b>100</b> games played against reigning computer chess engine <b>Stockfish 8</b>, the <b>AlphaZero
system did not lose a single game, winning or drawing all of the 100 matches
played</b>. AlphaZero won 25 games while playing with the first mover advantage of
white and picked up another three games playing as black. The rest of the
contests were drawn with neither program recording win or loss. <u>Even more
impressive, AlphaZero achieved this feat after only four hours of
self-training. AlphaZero was also able to defeat the world’s best Shogi computer
playing program Elmo by learning for just two hours. AlphaZero was also able to beat its
predecessor AlphaGo by learning for 8 hours. </u></span></span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Due to the </span><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">arcane nature of AI, researchers are always wary of another AI winter. Results such as these provide positive affirmations that we're headed in the right direction in our research. </span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">The co-founder and CEO Hassabis presented further <a href="https://www.technologyreview.com/s/609736/alpha-zeros-alien-chess-shows-the-power-and-the-peculiarity-of-ai/">details</a> of the system at the recent Neural Information Processing Systems (NIPS) AI conference in California. According to Hassabis, <i>“It doesn’t play like a human and it doesn’t play like a program. It plays in a third, almost alien way.”</i><br /><br />Hassabis speculates that because AlphaZero teaches itself, it has the advantage of not assigning value to individual pieces and attempting to minimize losses in the same manner which human players tend to do when playing chess.</span></div>
<script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<br />
<ins class="adsbygoogle" data-ad-client="ca-pub-7112084403405259" data-ad-format="fluid" data-ad-layout="in-article" data-ad-slot="5210872077" style="display: block; text-align: center;"></ins><script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<br />
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large; line-height: 107%;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<b><span style="font-family: "georgia" , "times new roman" , serif; font-size: large; line-height: 107%;">Reinforcement Learning <o:p></o:p></span></b><br />
<b><span style="font-family: "georgia" , "times new roman" , serif; font-size: large; line-height: 107%;"><br /></span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><span style="line-height: 107%;">The first
computer program to defeat a human chess expert player was </span><a href="https://www.theguardian.com/theguardian/2011/may/12/deep-blue-beats-kasparov-1997"><span style="line-height: 107%;">IBM's Deep Blue supercomputer who beat Kasparov</span></a><span style="line-height: 107%;"> on the 12<sup>th</sup> of May 1997</span><span style="line-height: 107%;">. DeepMind is different from its competitors in its
machine-learning based approach. <o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large; line-height: 107%;">AlphaZero
was able to acquire 1,400 years of human chess knowledge in an amazingly short
amount of time. AlphaZero uses a reinforcement learning algorithm, a neural
net, and only the pieces on the board for input. <o:p></o:p></span></div>
<!-- Ezoic - In-Article Individual Ad Codes - native_mid -->
<br />
<div id="ezoic-pub-ad-placeholder-106">
</div>
<!-- End Ezoic - In-Article Individual Ad Codes - native_mid -->
<br />
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large; line-height: 107%;"><u>Reinforcement
learning refers to a type of machine learning algorithms in which our AI agent determines the best course of actions to achieve its goal with maximum performance.</u> The technique uses a rewards and punishment system similar to how kids are taught about the good and the bad. </span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large; line-height: 107%;">If the agent performs an action which takes it towards the goal, it is rewarded. If the action takes it further away from the goal, the agent is punished. </span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large; line-height: 107%;">Let's say in a simplistic environment a good action is +1 points and a bad action is -1 points. When the agent reaches the goal, we'll add up all the points it gathered at each action. If the agent tried two different ways to achieve its goal, one with a cumulative result of +12 and another with +15, which one do you think will the agent adopt? </span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large; line-height: 107%;">This is how AlphaZero learned all about good moves and bad moves without having any prior knowledge of chess except the rules. AlphaZero learned to master chess
by trial and error by <u>playing against itself and further improving itself with
each game</u>. </span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br />According to the authors of the <a href="https://arxiv.org/pdf/1712.01815.pdf">paper</a> <u>AlphaZero learned opening moves in chess and gradually began to discard some moves in favor of others as it improved.</u><br /><br /><i>“AlphaZero compensates for the lower number of evaluations by using its deep neural network to focus much more selectively on the most promising variations- arguably a more “human-like” approach to search.”</i><br /><br />In this manner it learned chess on its own</span><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">, akin to how humans learn. One more advantage you would have noticed is that it since it didn't require any prior game knowledge or special techniques except the concrete game rules, we can train it to learn any game other than chess. </span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large; line-height: 107%;">And yes, this is what the AlphaZero team did - they trained the agent for two other games - Go and shogi, and AlphaZero emerged victorious in both. </span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">AlphaZero is
a generalized AI agent which is able to learn from the least amount of
information available, and I hope most of you can visualize its capabilities. Present it with a problem, give it some basic rules and see what solution it suggests. This is one of the major applications of AI - solving complex problems in new ways which could lead
to solutions not previously considered.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large; line-height: 107%;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">There are
exciting implications for the AI techniques used in AlphaZero, majorly due to its ability to learn from
the least amount of information. As we discussed, this could be applied to a number of areas such as medical diagnosis, weather and disaster predictions, solutions for better management in organisations and government - the possibilities are endless.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><a href="http://www.telegraph.co.uk/science/2017/10/18/alphago-zero-google-deepmind-supercomputer-learns-3000-years/"><span style="line-height: 107%;">According</span></a><span style="line-height: 107%;"> to Hassabis the program is so powerful because it is <i><u>“no longer
constrained by the limits of human knowledge.”</u></i> An example Hassabis believes
that if applied it could be used for defeating Alzheimer’s disease, coming up
with a cure in a matter of weeks which could take humans hundreds of years to
find. Hassabis states that <i><u>“Ultimately we
want to harness algorithmic breakthroughs like this to help solve all sorts of
pressing real world problems.”</u></i><o:p></o:p></span></span></div>
<div class="MsoNormal" style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large; line-height: 107%;">AI programs
may be able to drive forward human understanding of what is possible and
positively impact the lives of humans. It is
fascinating to see how far the research has come in AI developments and to
speculate how much further still we can still go. </span></div>
</div>
Unknownnoreply@blogger.com19tag:blogger.com,1999:blog-4876635898680256880.post-65529855040669230772017-12-04T07:02:00.004+11:002018-02-08T20:36:36.065+11:00A Software Engineers Career Path<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
<div class="separator" style="clear: both; text-align: center;">
</div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b style="font-family: georgia, "times new roman", serif; font-size: x-large; text-align: justify;">Software engineering</b><span style="font-family: "georgia" , "times new roman" , serif; font-size: large; text-align: justify;"> is a very fulfilling career choice, and consistently features among the highest paying jobs in the market. A job in the IT industry is so popular that there are people who switch from entirely different career paths to start from scratch as a developer, just because it caught their </span><i style="font-family: georgia, "times new roman", serif; font-size: x-large; text-align: justify;">interest </i><span style="font-family: "georgia" , "times new roman" , serif; font-size: large; text-align: justify;">and happens to have a </span><i style="font-family: georgia, "times new roman", serif; font-size: x-large; text-align: justify;">nice average salary</i><span style="font-family: "georgia" , "times new roman" , serif; font-size: large; text-align: justify;">. Whether you are a student contemplating about your majors, or an experienced employee thinking to jump the ship in your career, you are not making a wrong choice.</span></span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnD6LyxrJaY3Q0nFRg06mYKi5EA1M-0RkoGZictCw1FsNRK8N64i_rhyYQwWb3oEDkGWiyKEbIny4jDTgHtEUrCFy4DHuIr_Wvx0Ap1yIlcXgpFlLbOsddfMtIKBomNzR1j64rLvZWs00/s1600/11+reasons+Why+Every+Software+Developer+Should+Own+a+Blog.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="A Software Engineer's Career Path" border="0" data-original-height="600" data-original-width="800" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnD6LyxrJaY3Q0nFRg06mYKi5EA1M-0RkoGZictCw1FsNRK8N64i_rhyYQwWb3oEDkGWiyKEbIny4jDTgHtEUrCFy4DHuIr_Wvx0Ap1yIlcXgpFlLbOsddfMtIKBomNzR1j64rLvZWs00/s320/11+reasons+Why+Every+Software+Developer+Should+Own+a+Blog.jpg" title="A Software Engineer's Career Path" width="320" /></a></div>
<br />
<br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br />I'll refer to software engineers using different terminologies - developers, programmers, engineers, etc. which are essentially the same thing, but might offend some nitpicky folks. They are not always the same, but I'll discuss all the subtle differences between <i>engineers </i>and <i>developers </i>in another article. Briefly, a software engineer is someone who has completed a <b>Bachelors </b>or <b>Masters </b>in Technology and/or knows not only programming in a language but how the whole software ecosystem is engineered - from the loading of OS to adding the latest javascript framework on top of tens of others. Since most of the times it isn't possible for one engineer to completely know all this stuff, there are specializations within software engineering roles as well. We have application engineers, embedded systems engineers and so on. This creates confusion as developers do the same thing, but are looked at differently.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">The word <b>engineer</b> comes off as a bit too heavy (<i>coveted</i>?) a term to bestow upon regular programmers by those who seek prestige in their degrees. Don't worry if you don't have an engineering degree, most companies do not differentiate between a developer and an engineer, given that you have the skills and/or the experience. If you look at job boards, there as many positions for engineers as there are for developers, with no difference in their roles and responsibilities. You'll even find occasional <i>development engineers</i> there!</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">How to Grow Your Software Engineering Career?</span></h3>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Your software engineering career, contrary to what you might believe, requires the growth of not only you, but <i>others </i>as well. These others essentially include your team.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Think about it. If you are part of a team that has high impact on your company's business, and has led to great successes, how will it compare with when you are part of a team that brought your company down? Though these two options are on the extreme ends, generally when you are interviewed, <b>people are more interested in the business value you provided and how well you worked in a team.</b></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><i>Team, team, team!</i> Yes, it is important to learn how to work in a team, even though you may not like it. Reason? Your appraisals highly depend on the performance evaluation by your boss and peers. If you don't have a positive image as a team worker, you will be very hurt when it's time for the bonus checks to roll in.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Not all teams are bad, though. Especially in software engineering, if you are not comfortable working with people, you have the flexibility to define what kind of culture you want to work in and what kind of work you prefer. There are plenty of jobs in the market, pick one which best fits you. <b>While interviewing, ask about the company culture, what team you will be assigned to, what interesting ideas is that team working on.</b> Research your team before you join in.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">A good suggestion would be to choose a team that solves bigger challenges - something that you have not worked on previously that excites you, so that there is enough scope for your learning. This way, you not only build your knowledge and skills, you also stay happy at your job!</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">On the topic of happiness at your job, <b>it is very important to learn how to strike a balance between your work and personal life</b>. While some people throw themselves into their jobs which is not healthy, others become too laid back when they get a job. Don't be one of them. <u>While it is not desirable to spend more than 40 hours a week on your day job, it is important that you utilize those 40 hours effectively.</u> <b>Don't be complacent, if you want to grow your career, you need to take concerted efforts to map your own career path so you can achieve them quickly and efficiently. </b>After all, it is important that you have a satisfaction in your career, and it is best to be responsible for your own choices than play the blame game with destiny.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><i><br /></i></span></div>
<div>
<div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><i>Want to know what is the single most important key to rapid career growth?</i> <b>Networking</b>. Whether you want to stay at one organisation or switch every two years, you need to create a network of people who know you, trust your abilities and believe in you. </span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">For upward mobility within a single organisation, it is important that the leaders know you personally. Demonstrate your leadership abilities by taking ownership of the work you do, becoming the go-to person for a particular piece of the software architecture or technology stack. Show your abilities whenever you get a chance. </span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">For mobility between companies, you need people who refer you, and those who offer good recommendations for you. The stronger their influence, the more weight their referrals and recommendations will have on your potential interviewers.</span></div>
</div>
<div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://images.unsplash.com/photo-1498758536662-35b82cd15e29?auto=format&fit=crop&w=334&q=80&ixid=dW5zcGxhc2guY29tOzs7Ozs%3D" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="A Software Engineer's Career Path" border="0" data-original-height="500" data-original-width="334" src="https://images.unsplash.com/photo-1498758536662-35b82cd15e29?auto=format&fit=crop&w=334&q=80&ixid=dW5zcGxhc2guY29tOzs7Ozs%3D" title="A Software Engineer's Career Path" /></a></td></tr>
<tr><td class="tr-caption"><span style="font-family: "georgia" , "times new roman" , serif; font-size: small;">Photo by <a href="https://unsplash.com/photos/pzA7QWNCIYg?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Štefan Štefančík</a> on <a href="https://unsplash.com/?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a></span></td></tr>
</tbody></table>
<h4 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br />What Does a Software Engineering Career Look Like in The Big Four Companies?</span></h4>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">For those who don't know, the <b>Big N</b> companies are mainly software giants such as <i>Google</i>, <i>Amazon</i>, <i>Facebook</i>, <i>Apple</i>. They are known for attracting top talent from across the world, largely due to their current dominance in the salary markets. Even if you feel you won't be doing any groundbreaking work in these companies, the salary alone will make you excited to work there. And not everyone working in Google is fixing bugs in ad servers, there are teams who are actually creating amazing things. <a href="http://www.thedailyprogrammer.com/2017/11/what-are-capsule-networks-and-how-do.html" target="_blank"><b>Google recently created a new way for image recognition which performs better than CNNs</b>.</a> As I said before, research the team you'll be working with before joining a company.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">So how exactly does a software engineer grow in these companies? Let's start with experience level 0 - you are a fresh graduate, and you have no experience, aside from your summer internships. You'll probably start as <i>Associate Developer/Engineer</i>, or <i>Software Engineer/Developer -1 (SE-1)</i> or simply Software Engineer. Your work will be relatively easy, and you'll have someone supervising you - your manager, buddy or senior engineer. You will not have much independent work to do, unless you are in small-medium sized company. You can be more relaxed, and utilize your free time to develop your skills and think about the next five years.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">After around 2 years, you'll probably be promoted to <i>Software/Development Engineer - 2</i> or simply <i>Software Engineer</i>. Don't worry about the different titles, they all have the same weight directly directly interpreted from the number of years of experience. You now have to learn accountability for your work. You'll be expected to at least understand the architecture of all the humongous code, and know the various layers of the tech stack. You should be comfortable with databases, client side and server side technologies your organisation is using, how various modules are communicating with each other. You are no longer looked as an inexperienced college grad, so what you say and what you code has some weight now. If you're certain about getting into management roles, although it is still too early to decide, try mentoring some of your juniors! It has multiple benefits. <i>It shows you are serious about the growth of your team, and you are capable of taking on leadership roles.</i></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">The next step is usually a senior role, and is not easy to come by. It may take anywhere between 3 to 10 years to land a senior position. What should you do to speed this up? Some people have found success in switching between multiple companies in a short span of time. <b>Switch for a higher position or a much higher salary, this way you can skip ahead to more senior development roles.</b></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">When you are already a senior developer, you know how to code well. You can write applications that do not fail, complete with test cases and documentation. People depend on you and seek your expertise regularly. Now what? You can only grow your skills so much. What's after senior? A senior senior post? Yup, there is such a post, which takes even more years to achieve. You can expect more than 5 years at the minimum to get promoted to those "senior senior" titles. They again have different names - staff engineer, senior staff engineer, and so on. But it's not just a title now. While no one doubted your skills at the previous level, and even though they'll probably still be the same, you'll be more respected now. You have considerable experience at the previous position where you were already a good programmer. <b>Now people expect you to not only code well, but to code well while being <i>blindfolded</i>.</b></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Eventually you'll hit a wall if you think that simply coding your way to the top is how it is done. But in organisations, there are already enough positions for people who code. To rise above that, you need to be different at each step. You need to demonstrate that you have skills that justify your promotion over other programmers.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Leaderships skills are the most sought after from experienced engineers. In a software company, <b>a manager who knows about technology is always better and more valuable than a manager who only knows about management.</b> Even in architect positions, which are more associated with technical roles, you'll need to lead engineers. The higher up the ladder you go, the lesser you'll need to code.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Coming back to our discussion on staff engineer positions, a staff position will be more scrutinized by your managers and leaders, because it is what you do now that will define which of the two famous diverging roads you'll take - technical excellence route, or the road to executive leadership.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">If you choose the technical route, you are opening yourself up to architect roles or principal engineer positions. You'll go on to become a principal architect, or a distinguished engineer, or even further up to becoming a Fellow.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">However, if you are more interested in leadership roles, and see yourself as a director, president or CEO of the company, the management track is right for you. When you have reached those positions in your software engineering career, you'll probably don't need this article to guide you any further :P </span></div>
<div style="text-align: justify;">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://images.unsplash.com/photo-1471180625745-944903837c22?auto=format&fit=crop&w=800&q=80&ixid=dW5zcGxhc2guY29tOzs7Ozs%3D" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="A Software Engineer's Career Path" border="0" data-original-height="800" data-original-width="800" src="https://images.unsplash.com/photo-1471180625745-944903837c22?auto=format&fit=crop&w=800&q=80&ixid=dW5zcGxhc2guY29tOzs7Ozs%3D" title="A Software Engineer's Career Path" /></a></td></tr>
<tr><td class="tr-caption"><span style="font-family: "georgia" , "times new roman" , serif; font-size: small;">Photo by <a href="https://unsplash.com/photos/oacHEtIlXsA?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Rob Mulally</a> on <a href="https://unsplash.com/?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a></span></td></tr>
</tbody></table>
</div>
<h4 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">What About Career Growth In Startups?</span></h4>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">So moving on, enough talk about big corporate giants, let's discuss startups. When compared to corporate giants, the word startups has a fresh, new and exciting feel to it. </span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Known for rapid growth, the startup industry is also a huge magnet for young talent. </span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Startups promise plenty of learning in short amount of time. <u>Working at a startup is like being part of an ongoing hackathon.</u> </span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">You are time-bound, and develop a lot of skills in short time. Your work has direct impact. You develop not only your technical abilities but your interpersonal and communication skills as well. </span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">You learn from your mistakes and receive a lot of real world experience. You have more ownership towards the work you do, and have more responsibilities. </span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><u>Career growth in startups tend to be erratic.</u> Since most startups have short life spans, your career chart may rise drastically and hit a plateau when the startup is acquired or loses steam. </span></div>
</div>
</div>
<div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<h4 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">What Are My Other Options?</span></h4>
</div>
<div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Maybe you dislike coding. Maybe you want to try something else for a while, or maybe you just like wearing many hats. There are a variety of different things you can do - it's not all writing code. There's so much more to software development that when you explore all the roles matching your skills, you'll never again worry about being unemployed. </span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">If you are a good writer, you can help with writing documentation, styling guides, technical papers and white papers for organisations. </span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">For those of you interested in quality assurance in software, and are not averse to writing test cases, software testing a whole new field waiting for you. </span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Interested in research? Academia may be your ideal choice of life. Or if you would rather have more money, you can apply for research positions in software companies as well. Google, Facebook, Microsoft (R&D) etc. are examples of companies which have exclusive research and development departments. You'll mostly find PhDs and erstwhile professors working towards fulfilling research in these companies. </span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<h4 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Research... Sounds Interesting. What does a Software Engineer's Career in Academia Look Like?</span></h4>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Life in academia is very different to a corporate life. While those in corporate think a professor's job is quite laid back and relaxed, those already in academia will warn you of the mounts of responsibilities shouldered on you, and the pressure of publishing constantly. </span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Though you should know that switching between these two sides is fairly common- many professors accept high technical or research positions in software companies, while may software engineers transition to academia after getting some corporate experience.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Opinions aside, one fact is that <u>you'll have to devote a lot of time for your academic career. </u>You must have a PhD, which in itself takes a minimum of five to size years, and then you start as an associate, and slowly move onto the tenure track. Oh the coveted tenure! Permanent job as a professor meaning you'll probably never be unemployed. Doesn't that sound great? </span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">If you love research, you may find this to be the most satisfying jobs in the world. <i>While the pay is not as great compared to the "Big N" companies, getting a lab to yourself, while nurturing young and bright students is guaranteed to appease the researcher in you.</i></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Some of you may be thinking that none of the above options rest easy with you. You want the money, but you want complete control of your time as well. You love new ideas and innovation, but the academia is too slow and uptight for you. You know where this discussion is headed. </span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">I'm talking about another possibility which we haven't discussed so far - becoming a<b> techpreneur</b>. You know the tech, and your outlook towards your career is more suited to entrepreneurship. One major advantage a techpreneur has over an entrepreneur is that <u>they know and understand their product deeply</u>. They are aware of common issues in developing products built on software, and they know how to effectively communicate with their developers. </span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<hr />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">There is no dearth of doors of opportunities open to you. You can be a <i>management guru</i>, a <i>hotshot programmer </i>or an <i>avid researcher</i>. The point is, <b>you need to identify which doors lead you to a fulfilling career</b>. Identify not only your technical skills but your aspirations in life as well. Often our aspirations are molded by our personalities. Do you love to inspire people with your knowledge, or do you create wonders when left alone with a computer? Ask yourself these questions - how do you want to retire? What is the one thing you want to accomplish from your career? How do you prefer to balance your career and personal life? <u>Try to identify your innate abilities and use them to your best advantage, it will be easier for you compared to others to succeed early in your career.</u> I hope this article has been helpful to you. Wishing you all the best for your journey ahead!</span></div>
</div>
</div>
<div id="amzn-assoc-ad-7c4df889-564c-4ce1-8f99-9bdbd6350260">
</div>
<script async="" src="//z-na.amazon-adsystem.com/widgets/onejs?MarketPlace=US&adInstanceId=7c4df889-564c-4ce1-8f99-9bdbd6350260"></script>Unknownnoreply@blogger.com4tag:blogger.com,1999:blog-4876635898680256880.post-82556315475999676392017-11-27T15:20:00.000+11:002018-02-08T20:32:21.243+11:00What Are Capsule Networks And How Do They Work?<div dir="ltr" style="text-align: left;" trbidi="on">
<h4 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;">What Is A Capsule Network?</span></h4>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;">A capsule network is a new type of neural network that is designed to overcome the shortcomings of Convolutional Neural Networks (CNNs). Capsule networks were conceptualized by <span style="font-size: 18px;"> </span><span style="font-size: small;"><a href="http://www.cs.toronto.edu/~hinton/" style="color: #3d65a3; transition: 0.2s ease;">Geoffrey Hinton</a>,</span></span><span style="font-family: "georgia" , "times new roman" , serif;"> in this paper - <a href="https://arxiv.org/abs/1710.09829">https://arxiv.org/abs/1710.09829</a>. Since then the world of AI research has been taken in a storm, avid researchers and scientists are meticulously scrutinizing every detail of the paper. While some proclaim that capsule networks bode the demise of our beloved CNNs, several researchers have pointed out areas of application where these networks might not perform so well.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;"><span style="font-family: "pt" serif;">The main application identified to be impacted is computer vision, as it were the limitations of CNNs that </span>begot the whole idea of capsule networks. Traditional neural networks have their limitations in identifying images with lesser data or identifying the contextual relativeness between components within images. As such, images with same components with different placements or orientation will be labelled similarly in CNNs, causing reduced accuracy. </span></div>
<div style="text-align: justify;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPjBRKPt_65VTESMsyAxodsLqwcmloNaKyhq0-39P4r2qvObcLY3Y7RHndOp162BGLegJ7Rx11M0aBQh9Nh5zgTUe6HLEaeY9k4q8hLgk9F3goyldFui0w6QOJB49zV8CPvmG5sIHlBc8/s1600/GPRS+-+General+Packet+Radio+Service+Short+Notes.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="What Are Capsule Networks And How Do They Work?" border="0" data-original-height="600" data-original-width="800" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPjBRKPt_65VTESMsyAxodsLqwcmloNaKyhq0-39P4r2qvObcLY3Y7RHndOp162BGLegJ7Rx11M0aBQh9Nh5zgTUe6HLEaeY9k4q8hLgk9F3goyldFui0w6QOJB49zV8CPvmG5sIHlBc8/s320/GPRS+-+General+Packet+Radio+Service+Short+Notes.jpg" title="What Are Capsule Networks And How Do They Work?" width="320" /></a></div>
<span style="font-family: "georgia" , "times new roman" , serif;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif;"><br /></span></div>
<h4 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;">How Do Capsule Networks Work?</span></h4>
<div style="text-align: justify;">
<span style="font-family: "pt" serif;"><span style="font-family: "georgia" , "times new roman" , serif;">Using a top-down approach, try imagining an image as a collection of various components. A capsule network is made of a network of capsules - small groups of neurons each pertaining to a particular component. The activity of neurons in a group determine the properties of the component of the image. Each capsule is responsible for identifying a single component, and together all capsules will determine what a traditional CNN does, that is label an image correctly. Unlike traditional networks, capsule networks value localization, the orientation and precise location of each component within an image is an important data point in capsule networks.</span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://i.ytimg.com/vi/pPN8d0E3900/maxresdefault.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Implementation of Capsule Networks" border="0" data-original-height="450" data-original-width="800" src="https://i.ytimg.com/vi/pPN8d0E3900/maxresdefault.jpg" title="Implementation of Capsule Networks" /></a></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;">Each layer in a multilayer capsule neural network consists of these capsules. Using the same top-down approach, taking a parse tree for representation, the nodes of the parse tree represent individual capsules, and the root of the parse tree corresponds to the complete image. Each capsule or node in the parse tree will have a parent capsule as well. The leaves of the parse tree are equivalent to individual independent entities within the image. Each capsule identifies properties of a particular entity by means of the activities of the neurons in that capsule. These properties may range from position, size, orientation to colours and texture. One of the interesting properties according to the author is the existential property, which describes whether the particular entity exists within an image or not (in terms of probability). </span></div>
<br />
<!-- Ezoic - Capsule Networks Mid Ad - mid_content -->
<br />
<div id="ezoic-pub-ad-placeholder-102">
<script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<br />
<ins class="adsbygoogle" data-ad-client="ca-pub-7112084403405259" data-ad-format="fluid" data-ad-layout="in-article" data-ad-slot="5210872077" style="display: block; text-align: center;"></ins><script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
<!-- End Ezoic - Capsule Networks Mid Ad - mid_content -->
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;"><br /></span></div>
<span style="font-family: "georgia" , "times new roman" , serif;"></span><br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;">Let's deep dive a bit into the implementation of capsule networks. We have already described how a capsule network might look like, when visually represented as a parse tree. Now consider the output of the capsule as a vector. A vector has two properties attached to it that can be used to describe it completely- its length and its orientation. For a capsule vector, the length of the vector will be used to describe the existence of the entity and this length never exceeds 1, achievable by reducing dimensionality; while the orientation of the vector will help describe the properties of the entity. Now that we have the length and orientation of the vector, we can easily identify the parents of the vector in the parse tree. In the paper, Hinton uses a dynamic routing mechanism along with a routing-by-agreement approach to map the capsules with their parents. </span></div>
<span style="font-family: "georgia" , "times new roman" , serif;">
</span>
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;"><br /></span></div>
<span style="font-family: "georgia" , "times new roman" , serif;"></span><br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;">Capsule networks have been tested on MNIST data in the paper and have shown much better results in terms of accuracy than traditional networks. This doesn't mean that CNNs can now be chucked out the window. There is still work to be done to improve the capsule network to perform at par or better than CNNs for major applications. There are several limitations of capsule networks as well. Since capsule networks use localization and have emphasis on all entities of the image, many a times the background noises can interfere with labelling of focus images. Apart from the limitations, capsule networks themselves use CNNs for their learning mechanism. In the network, all the layers except the last one are convolutional. At the moment, capsule networks are still in their stage of infancy and it is unfair to compare them to robust networks such as CNNs. In time with more research in the right direction, these capsule networks may be improved upon enough to accommodate its present limitations and address some of the existing challenges as well.</span></div>
<span style="font-family: "georgia" , "times new roman" , serif;">
</span>
<br />
<div style="text-align: justify;">
<span style="font-family: "pt" serif;"><span style="font-family: "georgia" , "times new roman" , serif;"><br /></span></span></div>
<div style="text-align: justify;">
<span style="font-family: "pt" serif;"><span style="font-family: "georgia" , "times new roman" , serif;">In summary, capsule networks are a network of groups of neurons - each representing an independently identifiable entity of an image. Capsule networks were created as a solution to the limitations of current convolutional neural networks. These capsule networks have shown promising results on the popular MNIST data, but more active research is needed to test the limits of capsules and fine-tune them for broader applications before we declare them as the ultimate replacement of traditional neural networks. </span></span></div>
<div style="text-align: justify;">
<span style="font-family: "pt" serif;"><span style="font-family: "georgia" , "times new roman" , serif;"><br /></span></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;"><span style="font-family: "pt" serif;">Source: <a href="https://arxiv.org/abs/1710.09829" target="_blank"><i>Dynamic Routing Between Capsules</i></a>, </span><a href="https://arxiv.org/find/cs/1/au:+Sabour_S/0/1/0/all/0/1" style="background-color: white; text-decoration-line: none;">Sara Sabour</a><span style="background-color: white;">, </span><a href="https://arxiv.org/find/cs/1/au:+Frosst_N/0/1/0/all/0/1" style="background-color: white; text-decoration-line: none;">Nicholas Frosst</a><span style="background-color: white;">, </span><a href="https://arxiv.org/find/cs/1/au:+Hinton_G/0/1/0/all/0/1" style="background-color: white; text-decoration-line: none;">Geoffrey E Hinton</a></span></div>
</div>
<div id="amzn-assoc-ad-7c4df889-564c-4ce1-8f99-9bdbd6350260">
</div>
<script async="" src="//z-na.amazon-adsystem.com/widgets/onejs?MarketPlace=US&adInstanceId=7c4df889-564c-4ce1-8f99-9bdbd6350260"></script>Unknownnoreply@blogger.com10tag:blogger.com,1999:blog-4876635898680256880.post-25664129790548295702017-11-18T02:25:00.000+11:002018-02-08T20:36:47.959+11:0010 Things You Didnt Know About Java<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;">Many of you might be working with Java since its beginning. And, for many of you might just have started working with Java. In this post, we will discuss some of the facts about java which is useful for both fresher as well as experienced.</span><br />
<span style="font-family: "georgia" , "times new roman" , serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7AxgYV5JDUDKjwRJtpvc-qalawBhU3gsxdgiQblKy6bbCyOn7d-N6hKAEAx1FT29pIMltioni8D2xJzlRkukvEBVEs6R13WYmYTQhmzIs8ble_hyBFU4WAWopoOj9Lf2muXIZ6CafHnw/s1600/10+Things+You+Didnt+Know+About+Java.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="10 Things You Didn’t Know About Java" border="0" data-original-height="600" data-original-width="800" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7AxgYV5JDUDKjwRJtpvc-qalawBhU3gsxdgiQblKy6bbCyOn7d-N6hKAEAx1FT29pIMltioni8D2xJzlRkukvEBVEs6R13WYmYTQhmzIs8ble_hyBFU4WAWopoOj9Lf2muXIZ6CafHnw/s320/10+Things+You+Didnt+Know+About+Java.jpg" title="10 Things You Didn’t Know About Java" width="320" /></a></div>
<span style="font-family: "georgia" , "times new roman" , serif;"><br /></span></div>
<h4 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;">
➢ JAVA IS EVERYWHERE</span></h4>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;">Java is one of the most dominant programming languages out there. Millions of developers and a huge number of devices worldwide are using Java programming language; from laptops to data centers, gaming consoles to scientific supercomputers, cell phones to Internet. The reason is its simplicity and readability. Almost all native Android apps are built in Java and 90 percent of Fortune 500 companies use Java as a server-side language for backend development. </span><br />
<span style="font-family: "georgia" , "times new roman" , serif;"><br /></span></div>
<h4 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;">
➢ INITIALLY JAVA WAS CALLED OAK</span></h4>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;">James Gosling was a developer for Sun Microsystems that was working to build a new programming language for their set-top box project in the 1990s. He originally created Oak, a language he named after the oak tree standing outside his office, which later evolved and was renamed Java.</span><br />
<span style="font-family: "georgia" , "times new roman" , serif;"><br /></span></div>
<h4 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;">
➢ MINECRAFT WAS ORIGINALLY WRITTEN IN JAVA</span></h4>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;">Minecraft, the explosively popular 3D sandbox video game, is written completely using Java code. The game’s creator, Notch, chose to write Minecraft in Java because it was the programming language he was most comfortable writing. Now owned by Microsoft, there is now a version of Minecraft built using C++.</span><br />
<span style="font-family: "georgia" , "times new roman" , serif;"><br /></span></div>
<h4 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;">
➢ IT’S A GREAT CODING LANGUAGE TO LEARN.</span></h4>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;">It’s one of the most popular choices as a first coding language to learn. Although it can be tough due to its complicated syntax, Java is often chosen as a first language because it teaches you more than just coding: it teaches you to think like a programmer. Students of Java will also learn foundational coding concepts that will be helpful as they move on to other languages. You can learn java by joining any <a href="http://www.cetpainfotech.com/technology/java-training">Java Course</a>.</span><br />
<span style="font-family: "georgia" , "times new roman" , serif;"><br /></span></div>
<h4 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;">
➢ DYNAMIC JAVA</span></h4>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;">There is something called as Java Instrumentation and Java Reflections. Instrumentation allows you to change the already compiled classes. This is useful if you want to change the code at run time. There are open source libraries (like AspectJ, ASM, Javassist, cglibetc) that allow Java instrumentation. Using reflection you can access even private variables of a class. Similarly, Class.forName()loads a class at run time. This is very useful method which Java provides.</span><br />
<span style="font-family: "georgia" , "times new roman" , serif;"><br /></span></div>
<h4 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;">
➢ JAVA MEMORY</span></h4>
<ul style="text-align: left;">
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif;">Heap: All instance variables, objects, arrays. </span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif;">Stack: All local variables, methods only. </span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif;">Heap: When Java program starts, it gets some memory from OS. Default size is 128 MB. It can be set by –Xms and –Xmx (for example -Xmx1G). </span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif;">Out of memory: when JVM start processing, initially it gets some memory (and heap) gets allocated. As processing goes on, more and more memory gets occupied. When a situation comes that there is no more space left then out of memory error might be thrown. </span></li>
</ul>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;"><br /></span></div>
<h4 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;">
➢ 4 PLATFORMS OF JAVA </span></h4>
<ul style="text-align: left;">
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif;"><b>Java Standard Edition</b>: contains all core libraries and functionalities </span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif;"><b>Java Enterprise Edition</b>: contains frameworks and libraries to build applications that are used mostly in enterprises </span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif;"><b>Java Micro Edition</b>: contains frameworks and libraries to build applications that runs on micro devices like mobiles, tablets </span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif;"><b>Java FX</b>: contains graphic libraries to build rich client applications that operate consistently across diverse platforms </span></li>
</ul>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;"><br /></span></div>
<h4 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;">
➢ LESS USED BUT SHOULD KNOW KEYWORDS</span></h4>
<ul style="text-align: left;">
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif;"><b>Native methods</b>: In this method is implemented in platform dependent way, often in C. </span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif;"><b>strictfp methods</b>: class or method can be strictfp. It means floating point operations are strict. </span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif;"><b>Transient</b>: means skip this while serialization. </span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif;"><b>Volatile</b>: it tells JVM that the thread accessing this variable must always sync its local private copy with master copy. </span></li>
</ul>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;"><br /></span></div>
<h4 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;">
➢ JAVA IS USED IN MANY PLACES</span></h4>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;">Java is used in more places than you might think. Google Web Toolkit compiles Java to optimized JavaScript for all main browsers, making Java a first-class language for browser-side development. Java is the main language of development for Android, and new products (allow translation or compilation of Java for IOS. Java is a safe choice no matter what you are developing for.</span><br />
<span style="font-family: "georgia" , "times new roman" , serif;"><br /></span></div>
<h4 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;">
➢ Wrongly overloaded hashCode() of your business object can make your Collections (HashMap) fail. </span></h4>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;">This can happen if you override hashCode as below -</span></div>
<ul style="text-align: left;"><ul>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif;">Return a transient type variable as hashCode.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif;">Return time as hashCode.</span></li>
</ul>
</ul>
</div>
<br />
<hr />
<h4 style="line-height: 150%; text-align: justify;">
<span style="background: white; font-size: 12pt; line-height: 150%;"><span style="font-family: "georgia" , "times new roman" , serif;"><br /></span></span><span style="background: white; font-size: 12pt; line-height: 150%;"><span style="font-family: "georgia" , "times new roman" , serif;">AUTHOR BIO</span></span></h4>
<div class="MsoNormal" style="line-height: 150%; text-align: justify;">
<span style="background: white; font-size: 12pt; line-height: 150%;"><span style="font-family: "georgia" , "times new roman" , serif;">Rahul Tripathi has been
writing custom content for over 3 years. He provides writing, coaching
and editing services. MCA graduated from University of Delhi with bachelor’s
degree in English Literature. Currently, Rahul is focusing on writing content
about Python. His Guest Post, 7 Best Python IDE’s contains some of the most
popular IDE’s of Python. A Python IDE is the first thing you need to get to
start working with <strong><span style="font-weight: normal; mso-bidi-font-weight: bold;">Python.</span></strong>A writer by day and reader by night, he also
enjoys preparing and editing resumes for individuals.</span></span><span style="font-family: "times new roman" , serif; font-size: 12pt; line-height: 150%;"><o:p></o:p></span></div>
</div>
<div id="amzn-assoc-ad-7c4df889-564c-4ce1-8f99-9bdbd6350260">
</div>
<script async="" src="//z-na.amazon-adsystem.com/widgets/onejs?MarketPlace=US&adInstanceId=7c4df889-564c-4ce1-8f99-9bdbd6350260"></script>Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-4876635898680256880.post-85342010176859862242017-10-14T05:20:00.000+11:002018-12-14T10:32:32.276+11:0011 reasons Why Every Software Developer Should Own a Blog<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
<div class="separator" style="clear: both; text-align: center;">
</div>
</div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Almost everyone today has a persona of themselves on at least one social account. If you are a software developer, you are already aware of the hundreds of avenues where you can showcase your programming talents and skills. There's linkedin for displaying your career profile to every recruiter out there, there's reddit and quora to share your knowledge of software and programming, stackoverflow for collecting some of those dev creds and topcoder/hackathons/conferences to prove your talent as a software developer. Why then, do you need a blog? In this article I'll share the pros of having a programming blog which will immediately motivate you to start one now.</span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnD6LyxrJaY3Q0nFRg06mYKi5EA1M-0RkoGZictCw1FsNRK8N64i_rhyYQwWb3oEDkGWiyKEbIny4jDTgHtEUrCFy4DHuIr_Wvx0Ap1yIlcXgpFlLbOsddfMtIKBomNzR1j64rLvZWs00/s1600/11+reasons+Why+Every+Software+Developer+Should+Own+a+Blog.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="11 reasons Why Every Software Developer Should Own a Blog" border="0" data-original-height="600" data-original-width="800" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnD6LyxrJaY3Q0nFRg06mYKi5EA1M-0RkoGZictCw1FsNRK8N64i_rhyYQwWb3oEDkGWiyKEbIny4jDTgHtEUrCFy4DHuIr_Wvx0Ap1yIlcXgpFlLbOsddfMtIKBomNzR1j64rLvZWs00/s320/11+reasons+Why+Every+Software+Developer+Should+Own+a+Blog.jpg" title="11 reasons Why Every Software Developer Should Own a Blog" width="320" /></a></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<br />
<ol style="text-align: left;">
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Having a personal blog is yet another way to build your personal brand online. You may already have accounts on various social media where devs hang out, but you are limited by their platform and restricted to their audience. If you own a blog instead, you completely own and design how your personal brand should look like. </span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">The more you practise blogging, the more you improve your writing skills. Writing skills are, in fact, a very valuable skill in a software developer's career. How many times have you given up in frustration trying to understand a piece of someone else's code because of poor commenting or lack of documentation? Writing a blog post regularly will definitely improve your communication skills, and you'll slowly develop a writing style of your own. </span></li>
<script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle" data-ad-client="ca-pub-7112084403405259" data-ad-format="fluid" data-ad-layout="in-article" data-ad-slot="5210872077" style="display: block; text-align: center;"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Teaching someone else helps you to identify gaps in your own knowledge and can prove to be a great learning experience for you as well. When you teach a particular language or framework in a blog post to a global online audience, you are under more pressure to be as accurate as possible, and as a result, you seek out answers to questions you would have otherwise skipped. This is how writing a programming blog can help you cement your knowledge completely and fill in all the gaps in your skills.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">It takes you a step forward to becoming a well-rounded developer. As we just discussed, blogging not only helps you to improve your software development and programming skills, it also helps you to be better at communication. After just a new months of blogging you'll start noticing positive changes in your attitude towards your career - your tone becomes more professional when you speak, especially when you write.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Your personal blog can go a great way into your career development. By having your blog in your resume, your potential employers and interviewers can quickly find out more about you and your work, which creates a strong impression on them. By having a programming blog you have already proven your mettle as a software developer and are already ahead of the crowd. The interviewer knows more about you and what he can expect from you, which makes it easier for both of you by speeding up the entire interviewing process.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Blogging is a great way to network with other developers and software engineering recruiters. <a href="http://www.thedailyprogrammer.com/2015/07/improve-quality-of-site.html" target="_blank">The higher the quality and quantity of your blog</a>, the more visibility it gets and eventually piques the interest of influencers in your expertise or niche. As your blog gets more traction, you will start getting more backlinks to your website from other authority websites, people will start commenting on your posts, asking for more help or just admiring your expertise.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Blogging can be fun too! Think of it as a cool side project for trying out new skills and networking with fellow developers from around the world. Simply dedicate half an hour to your blog, treating it as your career journal, voicing your opinions on the latest tech news, or trying out a new framework over the weekend.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">You learn another valuable skill by blogging - how to market yourself. The one sureshot way of growing your blog is by marketing it to the right audience. As you start <a href="http://www.thedailyprogrammer.com/2016/05/10-amazing-ways-on-how-to-increase-page.html" target="_blank">gaining more visitors</a>, you'll be intrigued to get more attention to your blog. In this process you'll learn all about SEO and different types of marketing which will help to grow not only your blog, but your persona as well. </span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Your blog can be an outlet for your contribution to the domain of knowledge freely available on the internet. You never know which post of yours helped a frustrated software developer grappling with deadlines, or a newbie just starting out overwhelmed by the industry. You get good karma by helping out fellow developers and teaching your skills. </span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">If your blog is well known in the software community or whichever niche you are targeting, you might even get opportunities to speak at conferences and summits. After all, everyone loves a little bit of fame and getting some online recognition doesn't hurt! </span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Lastly, your blog can be a gateway to a business opportunity. You can leverage your audience to market your services if you are a freelancer, or sell products such as a software you built or books and online tutorial courses you created. Do not create a blog just for the purpose of revenue generation, but try to provide value to your readers first. </span></li>
</ol>
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Finally, my advice would be to just get started with your blog today - jot down 10 topics you would like to share this month, purchase a domain name and hosting space, or just fire up those <a href="https://pages.github.com/" target="_blank">github pages</a>. Blogging is really easy - and after all, you are a software dev! Your personal blog or website can also be a place to showcase all your online portfolios together - your github stars, twitter followers, stackoverflow reputation, reddit karma (or maybe not), linkedin resume, topcoder badges... Be creative, come up with your own cool ideas on what you want the world to know about you. Once you have done this, share your blogs here in the comments section for others to see as well! </span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">If you liked this article, please share it on your favourite social networks and remember to subscribe for more updates! </span></div>
<div style="text-align: justify;">
<br /></div>
</div>Unknownnoreply@blogger.com6tag:blogger.com,1999:blog-4876635898680256880.post-84221803491037273782017-08-22T23:17:00.000+10:002018-12-14T10:33:28.858+11:0010 Easy-to-Use Free Online Tools for Building Websites<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-IN">Website builders simplify the web designing process considerably.
You no longer have to deal with complicated coding or spend a fortune on
professional web developers to create a website for you. The interactive and
easy to use website builders cover every aspect of web designing and e-commerce
helping users expand their business and boost their earning opportunities. Ten
such website building tools are mentioned below: <o:p></o:p></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b><span lang="EN-IN" style="font-size: 14pt;">Wix<o:p></o:p></span></b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKAQwA1jKEWrD-K8fMy3qvFAYXR0HppMmW6HBJ9D7vhro4WpxbFjHgIi_p60-NORnsTzmpJxrpAykJQAQUnxMW7CofNLmbIfvB4JbV1ZTu_GhaBpebH9cIllXru6JyYiuXZ4ZFYSx9W7E/s1600/10+Easy-to-Use+Free+Online+Tools+for+Building+Websites.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="10 Easy-to-Use Free Online Tools for Building Websites" border="0" data-original-height="600" data-original-width="800" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKAQwA1jKEWrD-K8fMy3qvFAYXR0HppMmW6HBJ9D7vhro4WpxbFjHgIi_p60-NORnsTzmpJxrpAykJQAQUnxMW7CofNLmbIfvB4JbV1ZTu_GhaBpebH9cIllXru6JyYiuXZ4ZFYSx9W7E/s320/10+Easy-to-Use+Free+Online+Tools+for+Building+Websites.jpg" title="10 Easy-to-Use Free Online Tools for Building Websites" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: justify;">
</div>
<div class="MsoNormal" style="text-align: justify;">
<b><span lang="EN-IN" style="font-size: 14pt;"><br /></span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<!--[if gte vml 1]><o:wrapblock><v:shapetype id="_x0000_t75"
coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe"
filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="_x0000_s1026" type="#_x0000_t75" style='position:absolute;
margin-left:0;margin-top:0;width:451.25pt;height:291.45pt;z-index:251653120;
mso-wrap-distance-left:0;mso-wrap-distance-right:0;mso-position-horizontal:center;
mso-position-horizontal-relative:text;mso-position-vertical:absolute;
mso-position-vertical-relative:text' filled="t">
<v:fill color2="black"/>
<v:imagedata src="file:///C:\Users\acer\AppData\Local\Temp\msohtmlclip1\01\clip_image001.jpg"
o:title=""/>
<w:wrap type="topAndBottom"/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--><!--[if gte vml 1]></o:wrapblock><![endif]--><br clear="ALL" /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-IN">Want to build a beautiful and interactive website? Wix is the
perfect option for you! With over 103 million subscribers and almost 3 million
paying customers, the platform is sure a huge brand in the market. Wix is a
popular website builder that features a proprietary WYSIWYG framework that uses
ADI or artificial design intelligence to develop websites and stores. The
platform is known for its industry-specific tools that cater to businesses from
all sectors including fashion, photography, hotel management, and e-commerce.
ADI is a recent addition to the platform where the entire website is built
automatically by Wix using its own AI program. SEO enhancement tools, CMS
solutions, e-marketing solutions, and an intuitive interface are some of the
other features offered here. <o:p></o:p></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-IN"> </span><b><span lang="EN-IN" style="font-size: 14pt;">Weebly</span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<b><span lang="EN-IN" style="font-size: 14pt;"><br /></span></b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://3.bp.blogspot.com/-3wkkKhMxuEY/WZwtcTT5PTI/AAAAAAAAA7w/jJf23eTD_5cFAfzq3xB2FC722cTwPuwEACLcBGAs/s1600/weebly.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="539" data-original-width="1000" height="344" src="https://3.bp.blogspot.com/-3wkkKhMxuEY/WZwtcTT5PTI/AAAAAAAAA7w/jJf23eTD_5cFAfzq3xB2FC722cTwPuwEACLcBGAs/s640/weebly.jpg" width="640" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<!--[if gte vml 1]><o:wrapblock><v:shape id="_x0000_s1027"
type="#_x0000_t75" style='position:absolute;margin-left:0;margin-top:0;
width:451.25pt;height:243.2pt;z-index:251654144;mso-wrap-distance-left:0;
mso-wrap-distance-right:0;mso-position-horizontal:center;
mso-position-horizontal-relative:text;mso-position-vertical:absolute;
mso-position-vertical-relative:text' filled="t">
<v:fill color2="black"/>
<v:imagedata src="file:///C:\Users\acer\AppData\Local\Temp\msohtmlclip1\01\clip_image003.jpg"
o:title=""/>
<w:wrap type="topAndBottom"/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--><!--[if gte vml 1]></o:wrapblock><![endif]--><br clear="ALL" /></div>
<script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle" data-ad-client="ca-pub-7112084403405259" data-ad-format="fluid" data-ad-layout="in-article" data-ad-slot="5210872077" style="display: block; text-align: center;"></ins><script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-IN">Weebly is one of the easiest drag and drop website builders out
there. It allows users to develop web pages without writing a single line of
code. The platform supports over 40 million websites till date and is
especially popular among amateurs and first-time users. However, that doesn’t
mean the website builder lacks robust features and advanced editing tools.
Weebly has a collection of high-tech SEO solutions, CMS tools, and professional
services that enhance the performance of your website immediately. The platform
offers free web hosting and cloud backup services to its clients. The WYSIWYG
editor is simple, clutter-free and very responsive where you can individually
customize pages directly from the sidebar. <o:p></o:p></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-IN"> </span><b><span lang="EN-IN" style="font-size: 14pt;">Squarespace</span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWoA9JMllwvPx6p30PDxHgaSKVM9a3pKmjEurx34lqNtMzYn-yfsMfAAgR0KCUUsIzBRWTvBZw9s5bq9ftK-x-IoPlXLc3zmVCVYMFFgltArQGLjhW03jERt2HLgXkxTku1jiwqA2UqlU/s1600/squarespace.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="646" data-original-width="1000" height="412" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWoA9JMllwvPx6p30PDxHgaSKVM9a3pKmjEurx34lqNtMzYn-yfsMfAAgR0KCUUsIzBRWTvBZw9s5bq9ftK-x-IoPlXLc3zmVCVYMFFgltArQGLjhW03jERt2HLgXkxTku1jiwqA2UqlU/s640/squarespace.jpg" width="640" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<!--[if gte vml 1]><o:wrapblock><v:shape id="_x0000_s1028"
type="#_x0000_t75" style='position:absolute;margin-left:0;margin-top:0;
width:451.25pt;height:291.45pt;z-index:251655168;mso-wrap-distance-left:0;
mso-wrap-distance-right:0;mso-position-horizontal:center;
mso-position-horizontal-relative:text;mso-position-vertical:absolute;
mso-position-vertical-relative:text' filled="t">
<v:fill color2="black"/>
<v:imagedata src="file:///C:\Users\acer\AppData\Local\Temp\msohtmlclip1\01\clip_image005.jpg"
o:title=""/>
<w:wrap type="topAndBottom"/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--><!--[if gte vml 1]></o:wrapblock><![endif]--><br clear="ALL" /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-IN">Squarespace is an unconventional open source website builder that
is well known for its innovative upgrades and flexible tools. The dashboard is
clutter-free and easy to access. Most of the editing tools are available from
the sidebar; you can add elements directly on the interface by simply dragging
and dropping them. You can even customize the meta tags and HTML coding in
real-time using the live in-house editor. Squarespace offers themes for all
kinds of web pages, which are compatible with all kinds of mobile devices. The
platform even generates a mobile-friendly version of the website automatically
once you publish your content on the server. <o:p></o:p></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b><span lang="EN-IN" style="font-size: 14pt;">Site 123<o:p></o:p></span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://3.bp.blogspot.com/-PCOzCSlgGZw/WZwtsU1aOPI/AAAAAAAAA74/6HWnAmRQS_cNKoG5hqa5xSJroJOKhRUYgCLcBGAs/s1600/site123.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="555" data-original-width="1000" height="354" src="https://3.bp.blogspot.com/-PCOzCSlgGZw/WZwtsU1aOPI/AAAAAAAAA74/6HWnAmRQS_cNKoG5hqa5xSJroJOKhRUYgCLcBGAs/s640/site123.jpg" width="640" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<!--[if gte vml 1]><o:wrapblock><v:shape id="_x0000_s1029"
type="#_x0000_t75" style='position:absolute;margin-left:0;margin-top:0;
width:451.25pt;height:250.4pt;z-index:251656192;mso-wrap-distance-left:0;
mso-wrap-distance-right:0;mso-position-horizontal:center;
mso-position-horizontal-relative:text;mso-position-vertical:absolute;
mso-position-vertical-relative:text' filled="t">
<v:fill color2="black"/>
<v:imagedata src="file:///C:\Users\acer\AppData\Local\Temp\msohtmlclip1\01\clip_image007.jpg"
o:title=""/>
<w:wrap type="topAndBottom"/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--><!--[if gte vml 1]></o:wrapblock><![endif]--><br clear="ALL" /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-IN">Site
123 is another easy drag and drop website builder that allows users to create
functional and attractive websites in three simple steps. All you have to do is
register, choose a theme, customize it and publish. You need no coding skills
or technical expertise to work on Site 123; everything can be customized using
the drag and drop interface. You are directed to the in-house editor once you
click on the “Start Here” button. You get over 100 premium quality themes that
are compatible with all Android, Mac, and IOS devices absolutely free of cost.
With the free plan, you get 500MB storage space and 1GB bandwidth. The Pro plan
(paid) is available for just $8 a month.
<o:p></o:p></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b><span lang="EN-IN" style="font-size: 14.0pt; mso-bidi-font-family: "Times New Roman";">Shopify <o:p></o:p></span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://3.bp.blogspot.com/-IHESANUEhsk/WZwt0T1myNI/AAAAAAAAA78/oAjp2ACn7zwIfxoAhauXy1S-8J2_6JAUwCLcBGAs/s1600/shopify.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="648" data-original-width="1000" height="414" src="https://3.bp.blogspot.com/-IHESANUEhsk/WZwt0T1myNI/AAAAAAAAA78/oAjp2ACn7zwIfxoAhauXy1S-8J2_6JAUwCLcBGAs/s640/shopify.jpg" width="640" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<!--[if gte vml 1]><o:wrapblock><v:shape id="_x0000_s1030"
type="#_x0000_t75" style='position:absolute;margin-left:0;margin-top:0;
width:451.25pt;height:292.35pt;z-index:251657216;mso-wrap-distance-left:0;
mso-wrap-distance-right:0;mso-position-horizontal:center;
mso-position-horizontal-relative:text;mso-position-vertical:absolute;
mso-position-vertical-relative:text' filled="t">
<v:fill color2="black"/>
<v:imagedata src="file:///C:\Users\acer\AppData\Local\Temp\msohtmlclip1\01\clip_image009.jpg"
o:title=""/>
<w:wrap type="topAndBottom"/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--><!--[if gte vml 1]></o:wrapblock><![endif]--><br clear="ALL" />
<b><span lang="EN-IN" style="font-size: 14.0pt;"><o:p></o:p></span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-IN">Shopify
is one of the biggest multipurpose store development platforms. It covers every
aspect of web development, right from the designing to the post-publication
services. The website builder connects the vendors and customers, providing
them a place where they can conduct business smartly and more effectively.
Shopify is particularly great for start-ups although the premium plans are a
bit expensive. The interface is very flexible and allows all the basic
functions such as inserting text, adding images, videos, and graphics, embed
payment gateways and attach catalogs to your store all in a matter of minutes. <o:p></o:p></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b><span lang="EN-IN" style="font-size: 14.0pt; mso-bidi-font-family: "Times New Roman";">WordPress<o:p></o:p></span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://3.bp.blogspot.com/-T7eFipmyYlk/WZwt8nMKRVI/AAAAAAAAA8A/E4u1_1Bthy0Vct0M_tUyQftyKx7Jq6BpACLcBGAs/s1600/wordpresscom.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="570" data-original-width="1000" height="364" src="https://3.bp.blogspot.com/-T7eFipmyYlk/WZwt8nMKRVI/AAAAAAAAA8A/E4u1_1Bthy0Vct0M_tUyQftyKx7Jq6BpACLcBGAs/s640/wordpresscom.jpg" width="640" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<!--[if gte vml 1]><o:wrapblock><v:shape id="_x0000_s1031"
type="#_x0000_t75" style='position:absolute;margin-left:0;margin-top:0;
width:451.25pt;height:257.15pt;z-index:251658240;mso-wrap-distance-left:0;
mso-wrap-distance-right:0;mso-position-horizontal:center;
mso-position-horizontal-relative:text;mso-position-vertical:absolute;
mso-position-vertical-relative:text' filled="t">
<v:fill color2="black"/>
<v:imagedata src="file:///C:\Users\acer\AppData\Local\Temp\msohtmlclip1\01\clip_image011.jpg"
o:title=""/>
<w:wrap type="topAndBottom"/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--><!--[if gte vml 1]></o:wrapblock><![endif]--><br clear="ALL" /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-IN">WordPress
is very popular among budding bloggers, businessmen, designers and web
developers who want to build beautiful and professional websites for expanding
their enterprise. The platform is powering over a million websites worldwide
and currently hosting over half of them. The powerful and user-friendly
interface is very easy to manage; the dashboard is loaded with the most
advanced customization tools while the technical support is reliable and quick
to respond. There are thousands of free WordPress themes spread across
categories such as Music, Design, Photography, Art, Professional, Online
Portfolio and Food. WordPress comes with a lot of plugins and extensions such
as WooCommerce and Yoast SEO to boost your page ranking and web presence. <o:p></o:p></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b><span lang="EN-IN" style="font-size: 14.0pt; mso-bidi-font-family: "Times New Roman";">Jimdo <o:p></o:p></span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-B8aiIwsdcc8/WZwuD9B77sI/AAAAAAAAA8E/CXAogJTQPC4LhZqhh9s4R3CErgeYfG40wCLcBGAs/s1600/jimdo.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="644" data-original-width="1000" height="412" src="https://1.bp.blogspot.com/-B8aiIwsdcc8/WZwuD9B77sI/AAAAAAAAA8E/CXAogJTQPC4LhZqhh9s4R3CErgeYfG40wCLcBGAs/s640/jimdo.jpg" width="640" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<!--[if gte vml 1]><o:wrapblock><v:shape id="_x0000_s1032"
type="#_x0000_t75" style='position:absolute;margin-left:0;margin-top:0;
width:451.25pt;height:290.55pt;z-index:251659264;mso-wrap-distance-left:0;
mso-wrap-distance-right:0;mso-position-horizontal:center;
mso-position-horizontal-relative:text;mso-position-vertical:absolute;
mso-position-vertical-relative:text' filled="t">
<v:fill color2="black"/>
<v:imagedata src="file:///C:\Users\acer\AppData\Local\Temp\msohtmlclip1\01\clip_image013.jpg"
o:title=""/>
<w:wrap type="topAndBottom"/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--><!--[if gte vml 1]></o:wrapblock><![endif]--><br clear="ALL" /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-IN">Jimdo
is a </span><span lang="EN-IN"><a href="http://www.webbuildersguide.com/free-website-builders/">free website
builder</a></span><span lang="EN-IN">
that has over 20 million subscribers till date. The platform offers free web
hosting, domain registration, and cloud backup services. The premium plans
offer users perks like unlimited storage, wide bandwidth range, free automatic
backups and multiple languages support. The in-house editor is very easy to
customize and manage; most of its tools are accessible from the sidebar. Here
you can add images, insert content, embed widgets all with a simple click.
Users can even tweak the HTML code and CSS style sheets if they have the
required technical skill. <o:p></o:p></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b><span lang="EN-IN" style="font-size: 14.0pt; mso-bidi-font-family: "Times New Roman";">Web Node <o:p></o:p></span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-gbo6LH-JlHE/WZwuQU73xFI/AAAAAAAAA8I/CRxnMWpKpXg2rog-EqyITbXNnD3IjD71wCLcBGAs/s1600/webnode.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="607" data-original-width="1000" height="388" src="https://1.bp.blogspot.com/-gbo6LH-JlHE/WZwuQU73xFI/AAAAAAAAA8I/CRxnMWpKpXg2rog-EqyITbXNnD3IjD71wCLcBGAs/s640/webnode.jpg" width="640" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<!--[if gte vml 1]><o:wrapblock><v:shape id="_x0000_s1033"
type="#_x0000_t75" style='position:absolute;margin-left:0;margin-top:0;
width:451.25pt;height:273.85pt;z-index:251660288;mso-wrap-distance-left:0;
mso-wrap-distance-right:0;mso-position-horizontal:center;
mso-position-horizontal-relative:text;mso-position-vertical:absolute;
mso-position-vertical-relative:text' filled="t">
<v:fill color2="black"/>
<v:imagedata src="file:///C:\Users\acer\AppData\Local\Temp\msohtmlclip1\01\clip_image015.jpg"
o:title=""/>
<w:wrap type="topAndBottom"/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--><!--[if gte vml 1]></o:wrapblock><![endif]--><br clear="ALL" /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-IN">Web
Node is a website builder that was sidelined by its competitors as a simple and
basic website builder. However, the recent updates in 2015 have brought it back
in business. With over 20 million registered users and more than a million
websites, the platform can be customized in 20 languages. Earlier editing a
theme or tweaking the elements was a tough task as it was difficult to locate
the problem. Now, with the section-based transitioning, users can immediately
locate the problem and solve it accordingly. You even get over 17 pre-set
templates can be edited both manually and via the interface. <o:p></o:p></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-IN"> </span><b><span lang="EN-IN" style="font-size: 14.0pt; mso-bidi-font-family: "Times New Roman";">Volusion</span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://3.bp.blogspot.com/-MW1k6V7Nxqk/WZwuY3mYJUI/AAAAAAAAA8M/6CpJ5k5RdPMmf8Pz6lgb4xpUWiDmJZ4rACLcBGAs/s1600/volusion.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="579" data-original-width="1000" height="370" src="https://3.bp.blogspot.com/-MW1k6V7Nxqk/WZwuY3mYJUI/AAAAAAAAA8M/6CpJ5k5RdPMmf8Pz6lgb4xpUWiDmJZ4rACLcBGAs/s640/volusion.jpg" width="640" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<!--[if gte vml 1]><o:wrapblock><v:shape id="_x0000_s1034"
type="#_x0000_t75" style='position:absolute;margin-left:0;margin-top:0;
width:451.25pt;height:261.25pt;z-index:251661312;mso-wrap-distance-left:0;
mso-wrap-distance-right:0;mso-position-horizontal:center;
mso-position-horizontal-relative:text;mso-position-vertical:absolute;
mso-position-vertical-relative:text' filled="t">
<v:fill color2="black"/>
<v:imagedata src="file:///C:\Users\acer\AppData\Local\Temp\msohtmlclip1\01\clip_image017.jpg"
o:title=""/>
<w:wrap type="topAndBottom"/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--><!--[if gte vml 1]></o:wrapblock><![endif]--><br clear="ALL" /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-IN">Volusion
is an old website builder that was launched way back in 1999 and supports over
40 thousand websites worldwide. The interface though a bit complicated than
other website building platforms is armed with powerful editing tools and
advanced features. The dashboard comes with video tutorials, help blogs and a
live technical team that is responsive and always available. A unique thing
about the website builder is the availability of three separate editors for
customizing text, WYSIWYG content and navigating through the website. Volusion
features around 80 free themes and 280 paid layouts that are compatible with
all devices. <o:p></o:p></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b><span lang="EN-IN" style="font-size: 14.0pt; mso-bidi-font-family: "Times New Roman";">BigCommerce <o:p></o:p></span></b></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-zJAHNBAUzjk/WZwuiUh5-UI/AAAAAAAAA8Q/kSHt2hNd0qkjqVtL7quUbI1Rk-hhcvh6gCLcBGAs/s1600/bigcommerce.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="649" data-original-width="1000" height="414" src="https://1.bp.blogspot.com/-zJAHNBAUzjk/WZwuiUh5-UI/AAAAAAAAA8Q/kSHt2hNd0qkjqVtL7quUbI1Rk-hhcvh6gCLcBGAs/s640/bigcommerce.jpg" width="640" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<!--[if gte vml 1]><o:wrapblock><v:shape id="_x0000_s1035"
type="#_x0000_t75" style='position:absolute;margin-left:0;margin-top:0;
width:451.25pt;height:292.8pt;z-index:251662336;mso-wrap-distance-left:0;
mso-wrap-distance-right:0;mso-position-horizontal:center;
mso-position-horizontal-relative:text;mso-position-vertical:absolute;
mso-position-vertical-relative:text' filled="t">
<v:fill color2="black"/>
<v:imagedata src="file:///C:\Users\acer\AppData\Local\Temp\msohtmlclip1\01\clip_image019.jpg"
o:title=""/>
<w:wrap type="topAndBottom"/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--><!--[if gte vml 1]></o:wrapblock><![endif]--><br clear="ALL" /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-IN">Bigcommerce
is a website builder that was launched in the year 2008 and has managed to
support over 10 thousand websites till date. The platform caters to large-scale
enterprises and established concerns that need powerful e-commerce features and
long-term solutions. The open source web development tool was built on the SaaS
framework and assists you in building e-stores, web pages, and blogs. The
interface allows you to add banners, insert catalogs, integrate payment
gateways and create performance reports for better productivity. It comes with
90+ themes that are compatible across all devices and can be customized in
minutes.<o:p></o:p></span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<span lang="EN-IN">With more and more customers switching over to the World Wide Web
for their everyday needs, it is only natural for sellers and entrepreneurs to
set up e-stores and monetize on it. Creating a website might be just your
ticket to success in the industry.</span><span lang="EN-IN"> <o:p></o:p></span></div>
<br />
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
</div>Unknownnoreply@blogger.com23tag:blogger.com,1999:blog-4876635898680256880.post-15456704862157457022017-08-22T23:04:00.001+10:002018-12-14T10:34:02.559+11:007 key UX designer tips for designing an awesome landing page<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal" style="text-align: justify; text-justify: inter-ideograph;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Designing
an awesome landing page is very important for marketers and online business
people because landing page is a web page that stand as the ingress point for a
website or a certain part of a website. A landing page is any web page that a
visitor can reach or land on. A perfectly designed landing page can enhance the
conversion rate of almost any marketing campaign. In general, landing pages are
separate pages that are planned for a particular marketing campaign. Landing
pages are mostly utilized for lead generation and therefore, the acts that a
visitor undertakes in a landing page are what decide promoters’ conversion
rate.</span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuY7Kxza5ABKWusMr7Bp9hyphenhyphen7zM8JfiRBXAYN3SvVMvb0du9lMyk_DHA-hV0kcNFOWT5uAccsOlJER6idjW5Nlw-lcPD6EFSqoIT59E5phVBGA8FuXxmdb4XWLL0TMgHSCnC0BiQxaFj3w/s1600/7+key+UX+designer+tips+for+designing+an+awesome+landing+page.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="7 key UX designer tips for designing an awesome landing page" border="0" data-original-height="600" data-original-width="800" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuY7Kxza5ABKWusMr7Bp9hyphenhyphen7zM8JfiRBXAYN3SvVMvb0du9lMyk_DHA-hV0kcNFOWT5uAccsOlJER6idjW5Nlw-lcPD6EFSqoIT59E5phVBGA8FuXxmdb4XWLL0TMgHSCnC0BiQxaFj3w/s320/7+key+UX+designer+tips+for+designing+an+awesome+landing+page.jpg" title="7 key UX designer tips for designing an awesome landing page" width="320" /></a></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div class="MsoNormal" style="text-align: justify; text-justify: inter-ideograph;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">The common
target of a landing page is to convert site visitors into sales or leads.
Landing pages are regularly connected to social media and search engine
marketing campaigns with the aim of improving the efficiency of the promotions.
The intention of a landing page is:</span><br />
<br />
<ul>
<li><span style="text-indent: -18pt;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">To obtain leads that allow you to reach to more
people in the future</span></span></li>
<li><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">To lead targeted clients to your different
products so that they can make a decision whether to buy or not.</span></li>
</ul>
</div>
<div class="MsoNormal" style="text-align: justify; text-justify: inter-ideograph;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">It
is crucial for people to create an awesome landing page to attract their targeted
clients’ attention. One of the effective ways to design a great landing page is
using UX design. </span></div>
<div class="MsoNormal" style="text-align: justify; text-justify: inter-ideograph;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">UX
design stands for User experience design. UX design is the procedure of
designing a landing page in way that are handy, user-friendly, and agreeable to
interact with. UX design makes sure:</span><br />
<br />
<ul>
<li><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">To improve the experience that people have whilst
they connect with your product</span></li>
<li><span style="text-indent: -18pt;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">And that clients can find value in your service.</span></span></li>
</ul>
</div>
<div class="MsoNormal" style="text-align: justify; text-justify: inter-ideograph;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Here
are 7 key UX designer tips for designing an awesome landing page:</span></div>
<div class="MsoListParagraph" style="mso-list: l1 level1 lfo1; text-align: justify; text-indent: -18.0pt; text-justify: inter-ideograph;">
<!--[if !supportLists]--><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>1.<span style="font-stretch: normal; font-weight: normal; line-height: normal;">
</span></b><!--[endif]--><b>Scroll
over Navigation<o:p></o:p></b></span></div>
<div class="MsoNormal" style="text-align: justify; text-justify: inter-ideograph;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">You
should always choose scroll over navigation. The main reason is that people love
to scroll over navigation. Navigation has become out of trend these days. It is
found that pages with scroll bar caught the attention of above 90% of page
views and it is really remarkable. You have to put into practice things that
people like. People are keen on scrolling. So, choose scroll over navigation. </span></div>
<div class="MsoListParagraph" style="mso-list: l1 level1 lfo1; text-align: justify; text-indent: -18.0pt; text-justify: inter-ideograph;">
<!--[if !supportLists]--><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>2.<span style="font-stretch: normal; font-weight: normal; line-height: normal;">
</span></b><!--[endif]--><b>CTA
Buttons<o:p></o:p></b></span></div>
<div class="MsoNormal" style="text-align: justify; text-justify: inter-ideograph;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Keep
in mind that Call-to-action buttons are important and it is how you in reality get
the conversion. You should make the button noticeable. Designing a great CTA
button with good color contrast in a landing page will be effective as it can
aid you to earn more conversions. A great CTA button is vital because it follows
visitors as they scroll the pages.</span></div>
<div class="MsoListParagraph" style="mso-list: l1 level1 lfo1; text-align: justify; text-indent: -18.0pt; text-justify: inter-ideograph;">
<!--[if !supportLists]--><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>3.<span style="font-stretch: normal; font-weight: normal; line-height: normal;">
</span></b><!--[endif]--><b>Persuader
Videos<o:p></o:p></b></span></div>
<div class="MsoNormal" style="text-align: justify; text-justify: inter-ideograph;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Persuader
videos are important for a landing page to obtain its main objectives. Persuader
videos make use of humans to give details how your product works, and also to
explain how your product or service has benefited clients. It will aid people
to establish a powerful bond with your visitors. Having a real person speak
about your product can result in higher conversion rates.</span></div>
<div class="MsoListParagraph" style="mso-list: l1 level1 lfo1; tab-stops: 309.0pt; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>4.<span style="font-stretch: normal; font-weight: normal; line-height: normal;">
</span></b><!--[endif]--><b>Visual
Cues<o:p></o:p></b></span></div>
<div class="MsoNormal" style="tab-stops: 309.0pt; text-align: justify; text-justify: inter-ideograph;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Anchor Tag Visual Cues is another important factor as it improves
user experience. Visual cues are generally used in order to steer visitors in a
certain way on a landing page. Visual cues can persuade visitors to scroll down
the page. You need to set anchor tags at the end of page sections. The main aim
of setting anchor tag is that it helps you to give links on your landing page
to aid visitors to leap from place to another easily. Anchor tag can enhance
clients experience on your landing page. </span></div>
<div class="MsoListParagraph" style="mso-list: l1 level1 lfo1; tab-stops: 309.0pt; text-align: justify; text-indent: -18.0pt; text-justify: inter-ideograph;">
<!--[if !supportLists]--><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>5.<span style="font-stretch: normal; font-weight: normal; line-height: normal;">
</span></b><!--[endif]--><b>Keep
It Minimal<o:p></o:p></b></span></div>
<div class="MsoNormal" style="tab-stops: 309.0pt; text-align: justify; text-justify: inter-ideograph;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">You should keep your landing page design to minimal. A
landing page’s design should be clear. You should not present any confusion
among visitors. An attractive, minimal and simple design will guide you to get
more handy results than making a complex page. Keep it minimal and ensure that
it serves its core purpose.</span></div>
<div class="MsoListParagraph" style="mso-list: l1 level1 lfo1; tab-stops: 309.0pt; text-align: justify; text-indent: -18.0pt; text-justify: inter-ideograph;">
<!--[if !supportLists]--><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>6.<span style="font-stretch: normal; font-weight: normal; line-height: normal;">
</span></b><!--[endif]--><b>Bring
Into Play Simple Language<o:p></o:p></b></span></div>
<div class="MsoNormal" style="tab-stops: 309.0pt; text-align: justify; text-justify: inter-ideograph;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">You cannot ignore the importance of content when creating a
landing page and it is a powerful tool to enhance conversion rates. Don’t use slang, or intricate language. A
landing page’s content should assure to meet users values, needs, their
importance, their persona, and their time.</span></div>
<div class="MsoListParagraph" style="mso-list: l1 level1 lfo1; tab-stops: 309.0pt; text-align: justify; text-indent: -18.0pt; text-justify: inter-ideograph;">
<!--[if !supportLists]--><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>7.<span style="font-stretch: normal; font-weight: normal; line-height: normal;">
</span></b><!--[endif]--><b>Avoid
Distractions<o:p></o:p></b></span></div>
<div class="MsoNormal" style="tab-stops: 309.0pt; text-align: justify; text-justify: inter-ideograph;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">A landing page should not distract visitors and they should
get for what they reached in your landing page. Create landing pages with one
aim in mind, that is, to convert. Landing pages are generally focused on certain
targeted audience and therefore, it should have the ability to seize their
attention, maintain them engaged and finally, turn them into actual clients. </span></div>
<div class="MsoNormal" style="tab-stops: 309.0pt; text-align: justify; text-justify: inter-ideograph;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div class="MsoNormal" style="tab-stops: 309.0pt; text-align: justify; text-justify: inter-ideograph;">
<b><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Author Bio<o:p></o:p></span></b></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<br />
<div class="MsoNormal" style="tab-stops: 309.0pt; text-align: justify; text-justify: inter-ideograph;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">I am Susan Taylor. I am working as a freelance writer for
the past many years. I am an expert in writing promotional articles and
academic papers. Presently, I work for a professional <a href="https://www.traditionessaysonline.com/"><b>custom essay service</b></a> online and it lets me to handle different
subjects, topics, and papers on a daily basis. I also find ample time to write
articles for blogs. </span></div>
</div>Unknownnoreply@blogger.com15tag:blogger.com,1999:blog-4876635898680256880.post-40908849257454959692016-12-25T22:27:00.003+11:002018-12-14T10:34:32.839+11:00GPRS Short Notes 2<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><a href="http://cyberlingo.blogspot.com/2016/12/gprs-general-packet-radio-service.html" target="_blank">GPRS Short Notes Part 1</a></span></h3>
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></h3>
<div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">GPRS Network Operations </span></h3>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">The GPRS Network Operations consists of the attachment and detachment procedure. The GPRS attach is for the mobile station to register itself with SGSN. It establishes a logical link between mobile station and SGSN. The network checks if the mobile station is authorised, then it copies the user profile from the Home Location Register (HLR) to SGSN, assigns a temporary mobile station identity (P-TMSI). The mobile station asks for the address to exchange packets with the external packet data network (PDN). It gets PDP (Packet Data Protocol) address. A PDP context is created for each session, which is stored in the mobile station, SGSN,and GGSN. A user can have several simultaneous contexts. The allocation of PDP address can be either static (permanent address) or dynamic (given upon activation of context). The GPRS detach is the procedure of disconnection from the network. It is initiated by mobile station or network. All resources are released in the detach process.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Mobility Management</span></h3>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">SGSN communicates with each other to update mobile station's location. The mobile station profiles stored in Visitor Location Register (VLR) are accessible to SGSN via local mobile switching center. When a mobile station moves out, resources and logical link with the specific SGSN are released.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Routing</span></h3>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">The intra-PLMN networks are connected with the Inter-PLMN backbone. A roaming agreement is necessary between the PLMN networks. A GRPS mobile station sends a data packet, the associated SGSN encapsulates it, examines the PDP context, and then routes them through the intra-PLMN GPRS backbone to the appropriate GGSN. The GGSN then decapsulates the packet, sends them to the network, like IP, where routing mechanisms are used to transfer packets to the access router of the destination network, which then delivers packets to host. </span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Communicating with the IP networks</span></h3>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">GPRS can connect to the IP network. It supports IPv4 and IPv6. From the external IP network's view, GPRS looks like the IP subnetwork, GGSN looks like router. Each user gets IP address from the address space of GPRS operator, maintained by DHCP (Dynamic Host Configuration Protocol) server. Address resolution between IP address and GSM address is performed by GGSN using appropriate PDP context. DNS (Domain Name Server) is managed by GPRS operator to resolve host names. Firewall is used to protect from unauthorised access between external IP network and private GPRS network. </span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Data Services in GPRS</span></h3>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">There are two modes of GPRS network. These are- </span></div>
<div style="text-align: justify;">
</div>
<ol>
<li><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>Application Mode</b>: access to applications on phone. example, WAP browser embedded in phone to access websites. The operating execution environments include Symbian and J2ME. The applications are developed in C, C++ and Java.</span></li>
<li><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>Tunneling Mode</b>: for mobile computing where user uses the GPRS interface to access the network. The device acts as modem for laptops, PDAs etc. to access wireless data network, by connecting to mobile phones. The device is like black box, different from mobile phone.</span></li>
</ol>
<h3>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">GPRS Handsets</span></h3>
<div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">There are three classes of a GPRS terminal:</span></div>
<div>
<ol>
<li><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>Class A</b>: It supports GPRS data and GSM services like SMS simultaneously. It includes simultaneous attach, activation, monitor and traffic. It can make or receive calls, SMS etc. on two services simultaneously. When using circuit switched service, virtual switched network (GPRS) will be placed on busy. </span></li>
<li><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>Class B</b>: It can monitor GSM and GPRS simultaneously, but support only one at a time. It can support simultaneous attach, activation, monitor but not simultaneous traffic. It can make or receive calls, SMS etc. on two services simultaneously. When using circuit switched service, virtual switched network (GPRS) will be placed on busy.</span></li>
<li><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>Class C</b>: It supports only non-simultaneous attach. The user selects which service to connect to. It can make/receive calls from only manually selected network service. A service that is not selected is not reachable. SMS support is optional.</span></li>
</ol>
<h3>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Bearers in GPRS</span></h3>
</div>
<div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">GPRS offers end-to-end packet switched data transfer. There are two kinds of data transport services, PTM (Point to Multipoint) which is available in future releases, and PTP (Point to Point), which is available now, and offers transfer of data packets between two users. </span></div>
<div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<h3>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Services Supported by GPRS</span></h3>
<div>
<ul>
<li><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>SMS</b>: Short Message Service. Originally designed for GSM. GPRS supports SMS as a bearer.</span></li>
<li><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>WAP</b>: Wireless Application Protocol. It is the data bearer service over HTTP protocol. WAP uses WML (Wireless Markup Language) and a WAP gateway.</span></li>
<li><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>MMS</b>: Multimedia Messaging Service. It supports multimedia messages. It uses WAP and SMS as its lower layer transport to transport video, audio, clips etc.</span></li>
</ul>
<h3>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></h3>
<h3>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></h3>
<h3>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></h3>
<h3>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></h3>
<h3>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Applications for GPRS</span></h3>
</div>
<h4>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Generic Apps</span></h4>
<div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Information Services, internet access, email, web browsing. Generic mass marketing apps: sports, news, weather, flight, reminders, horoscope, traffic information etc. Due to higher bandwidth, mobile internet browsing is more suited to GPRS. Mobile commerce, banking app.</span></div>
<h4>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">GPRS Specific Apps</span></h4>
<div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>Chat</b>: GPRS offers ubiquitous chat by integrating internet chat and wireless chat using SMS and WAP. </span></div>
<div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>Multimedia Service</b>: Phone and Camera apps, sharing apps for multimedia- monitor locations, parking lot information for crime etc., sending images of accident by journalists etc., remote medical help, virtual private network. Banks use VSAT (very small aperture terminal) to connect ATM to bank server.</span></div>
<div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>Personal Information Management</b>: Persona diary, calendar etc. </span></div>
<div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>Job Sheet Dispatch</b>: design and communicate job sheets from office based staff to mobile file staff. Example, vehicle positioning apps, like Uber, to dispatch nearest available personnel to serve the customer.</span></div>
<div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>Unified Messaging</b>: single mailbox for email, fax, SMS, MMS, voice email etc. </span></div>
<div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>Vehicle Positioning</b>: Integrates GPS for car rental tariffs, stolen vehicle tracking.</span></div>
<div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>Location Based Services and Telemetrics</b>: hotel and restaurant finders, news and weather etc.</span></div>
<div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<h3>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Limitations of GPRS</span></h3>
<div>
<ol>
<li><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Limited Cell Capacity for all users - because of limited radio resources, as voice and call use same network resources.</span></li>
<li><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Speed lower in reality - the theoretical maximum of 172 KBps is not achievable as all time slots cannot be used by single user.</span></li>
<li><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">No Support of GPRS Mobile Terminated Connection for Mobile Server - GPRS terminal can only act as client, not server.</span></li>
</ol>
</div>
<div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div>
</div>
<br />
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><a href="http://cyberlingo.blogspot.com/2016/12/gprs-general-packet-radio-service.html" target="_blank">GPRS Short Notes Part 1</a></span></h3>
<div>
<br /></div>
</div>
</div>Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-4876635898680256880.post-67329441937258525102016-12-25T21:11:00.000+11:002018-12-14T10:34:51.767+11:00GPRS : General Packet Radio Service Short Notes<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
<h3>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><a href="http://cyberlingo.blogspot.com/2016/12/gprs-short-notes-2.html" target="_blank">GPRS Short Notes Part 2 </a></span></h3>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">GPRS stands for General Packet Radio Service. </span></div>
<br />
<ul style="text-align: left;">
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">It can offer speeds of 14.4KBps to 171.2 KBps. </span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">It allows short bursty traffic such as emails and web browsing as well as large volumes of data. </span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">It is less costly as compared to circuit switched data and SMS. </span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">It is referred to as <b>always connected</b> because of fast connection setup mechanism to offer perception of being fast. </span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">It is called <b>2.5G</b> because of high speed transmission over GSM and TDMA.</span></li>
</ul>
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Quality of Service Parameters in GPRS</span></h3>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">The quality of service in GPRS is based on service precedence, reliability, delay, throughput. </span></div>
<br />
<ol style="text-align: left;">
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>Service Precedence</b>: Priority of service in relation to another service, like high, medium, low.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>Reliability</b>: indicates transmission characteristics required by application, such as probability for loss, duplication, missequencing and corruption (undetected errors) of packets.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>Delay</b>: maximum values for main delay and 95 percentile delay. Delay is defined as end-to-end transfer time between two mobile stations or between mobile stations and signaling interface to external data packet network. </span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>Throughput</b>: specifies maximum or peak bit rate and mean bit rate.</span></li>
</ol>
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">GPRS Network Architecture</span></h3>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">GPRS uses GSM like architecture for voice. The GSNs, or GPRS Support Nodes are the network nodes in a GPRS network. They are responsible for delivery and routing packets between mobile stations and external packet data networks (PDNs).</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">There are two types of GSNs -</span></div>
<br />
<ol style="text-align: left;">
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>Serving GSN (SGSN)</b>: There tasks include packet switching, routing, transfer, mobility management, authentication and charging functions. It processes and records new mobile subscriber's location. It sends queries to HLR (Home Location Register) for profile data of GPRS subscribers. It maintains location register to store location information and user profiles of all GPRS users registered with SGSN. </span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>Gateway GSN (GGSN)</b>: This is an interface between the GPRS backbone network and external packet data networks. It maintains routing information for tunnelling PDUs (Protocol Data Units) and uses PDPs (Packet Data Protocol) to convert GPRS packets for data networks like Internet. It also performs authentication and charging functions of data transfer.</span></li>
</ol>
<br />
<div style="text-align: justify;">
<br /></div>
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">GPRS Network Enhacements</span></h3>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">The GPRS is different from GSM as it has SGSN and GGSN along with upgraded GSM elements:</span></div>
<div style="text-align: justify;">
</div>
<ul>
<li><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Base Station Subsystem: needs enhancements to recognise and send packet data. BTS (Base Transceiver Station) upgrade for transportation of user data to SGSN and supporting packet data transportation between BTS and Mobile Station.</span></li>
<li><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Home Location Register: To register GPRS user profiles and respond to queries frm SGSN.</span></li>
<li><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Mobile Station: It is different from mobile station of GSM.</span></li>
<li><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">SMS Nodes: To support SMS transmissions via SGSN.</span></li>
</ul>
<div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Channel Coding</span></div>
<div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Channel coding is done to protect transmitted data packets against errors. The technique used is similar to GSM's. <b>Reliable Coding Scheme</b> is used, wherein many redundant bits are added for burst errors. This scheme is used under bad channel conditions, which gives a data rate of 9.05 KBps per time slot. In good channel conditions, however, no scheme is used, and the data rate is 21.4KBps per time slot.</span></div>
<div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<h3>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Transmission Plane Protocol Architecture</span></h3>
<div>
<ol>
<li><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>Signaling Plane</b>: it comprises of protocols for control and support of transmission plane. It includes GPRS attach and detach, PDP context activation, control of routing paths, allocation of network resources. Enhanced MAP (Mobile Application Part) is employed between SGSN and HLR, and between SGSN and EIR (Equipment Identity Register). It is a mobile network specific extension of signaling system SS#7 used in GSM. It transports signaling information related to location updates, routing information, user profiles and handovers. Exchange of MAP messages is accomplished over TCAP (Transmission Capabilities Application Part) and SCCP (Signaling Connection Control Part). </span></li>
<li><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>GPRS Backbone</b>: It includes the transmission plane between SGSN and GGSN. The GTP (GPRS Tunneling Protocol) is used to encapsulate data packets and signaling information, and tunneling then through GPRS backbone by adding GPRS specific routing information.</span></li>
<li><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>BSS-SGSN Interface</b>: It is divided into several layers. The SNDCP (Sub-Network Dependent Convergence Protocol) is used to transfer data packets between SGSN and Mobile Station, multiplexing of several connections of network layer onto one virtual logical connection of underlying LLC layer, segmentation, compression and decompression of data. Logical Link Control (LLC) is a data link layer protocol for GPRS, assures reliable transfer of user data across a wireless network. BSSGP (Base Station Subsystem GPRS Protocol) delivers routing and QoS related information between BSS and SGSN. Network Service manages convergence sublayer that operates between BSSGP and Frame Relay Core by mapping service requests to services. </span></li>
<li><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>Air Interface</b>: Physical layer and Data Link Layer.</span></li>
<li><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>Data Link Layer</b>: It has three sublayers. Logical Link Control (LLC) provides reliable logical link between mobile station and its SGSN. It provides sequence control, in-order delivery, flow control, detection of transmission errors, retransmission, encryption for data confidentiality and variable lengths. The Radio Link Control (RLC) is used to establish reliable link between mobile station and Base Station Subsystem. It is responsible for segmentation and reassembly of LLC frames into RLC data blocks and ARQ of uncorrectable data. Medium Access Control (MAC) controls the access attempt of mobile station on radio channel shared by multiple mobile stations. It has algorithms for contention resolution, multiuser multiplexing on packet data traffic channel (PDTCH), scheduling and prioritizing based on negotiated QoS.</span></li>
<li><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>Physical Layer</b>: It has two sublayers. The Physical Link Layer (PLL) provides services for data transfer over physical channel between mobile station and network. It provides data unit framing, data coding, detection and correction of physical medium transmission errors. It uses services of the radio frequency layer. The Physical RF Layer (RFL) performs modulation of physical waveforms based on sequences of bits received from PLL. It demodulates received waveform into sequence of bits for PLL to intercept. </span></li>
<li><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>Multiple Access Radio Resource Management</b>: GPRS uses a combination of FDMA and TDMA. It has two frequency bands each 45 MHz apart, with uplink between 890-915 MHz, and downlink between 935-960 MHz. Each band of 25 MHz width is divided into 124 single carrier channels of 200 KHz width further divided into 8 time slots. The logical channels are for signaling, broadcast of general system information, synchronisation, channel assignment, paging or payload transport. There are two types of channels - traffic channels and signaling channels. Traffic channels are only allocated when data packets are sent or received, and are released after transmission. </span></li>
</ol>
</div>
<div>
<br />
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><a href="http://cyberlingo.blogspot.com/2016/12/gprs-short-notes-2.html" target="_blank">GPRS Short Notes Part 2 </a></span></h3>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
</div>
</div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4876635898680256880.post-70409624947011647242016-12-12T00:08:00.000+11:002018-12-14T10:35:06.096+11:00FTP Client - FileZilla Tutorial<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"></span><br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Step 1. Download an ftp client: eg. FileZilla</span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">
</span>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">
<div style="text-align: justify;">
Download link: <a href="https://filezilla-project.org/">https://filezilla-project.org/</a></div>
<div style="text-align: justify;">
<br /></div>
<span id="docs-internal-guid-2e4656fa-edec-55e7-f391-85d398d33755"><div style="text-align: justify;">
<img height="275" src="https://lh4.googleusercontent.com/QJQq47x7ZNh0tCpl32zrP0Lalj_mLKjs6gILVVM56UN-ej5n44QzErscfwy3LPdFr0GGJYdYkijNZ28N3GsAdV6FBRWQ7nIcujO_5l6OqcQk7Hgn9lQ8QBI_OeO6LTdu9zveTF0m" style="border: none; color: #666666; transform: rotate(0rad); white-space: pre-wrap;" width="624" /></div>
</span><div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Step 2. Install according to instructions in the setup wizard. Once finished, launch filezilla.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Step 3. Fill in the following details in the form bar (third bar from top):</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Host: ftp://hostname.com</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Username: your-username</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Password: *****</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<img src="file:///C:/Users/Ayushi/AppData/Local/Temp/msohtmlclip1/01/clip_image003.gif" /></div>
<div style="text-align: justify;">
<br /></div>
<div style="margin-left: 1em; margin-right: 1em; text-align: justify;">
<a href="https://3.bp.blogspot.com/-E60vVDFnXps/WE1NyrewisI/AAAAAAAAA1Y/3AeoE7Vzw0c1RcYBxZA0j8PU4lBnYbQTgCLcB/s1600/screencapture-docs-google-document-d-1VEsBgJboHc_vHCEj4tfkLlXOfL1f58K9RiAO8itihkU-edit-1481461040362.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://3.bp.blogspot.com/-E60vVDFnXps/WE1NyrewisI/AAAAAAAAA1Y/3AeoE7Vzw0c1RcYBxZA0j8PU4lBnYbQTgCLcB/s1600/screencapture-docs-google-document-d-1VEsBgJboHc_vHCEj4tfkLlXOfL1f58K9RiAO8itihkU-edit-1481461040362.png" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Click on quickconnect or hit enter.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
4. The middle of the screen is split in two columns: </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
The left one is your local computer: in the local site type the path where you want to work, or click the down arrow to browse a folder on your site.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
The right side is the live server: Any change you make here will immediately be reflected on the actual site, so be careful.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
5. To transfer files, drag them across the 2 columns: </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
To transfer from the server to your computer, drag the files you want to transfer from right column to left column. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
To transfer from computer to server, drag the files from left column to right column.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Note: Before you make any changes, the first thing is to create a backup. Simply drag all the files from right column to left column (your computer) and create a temporary backup folder. Do this everytime you login, because there might be changes made by other users. Why this step is important: If you accidentally modify a different file or upload directly on the live server or something goes wrong in between, the site may go down (worst case scenario). This is when your backup folder saves the day.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
How to upload files in FileZilla</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
In the right column select the folder containing your file. Double click on the file.</div>
<div style="text-align: justify;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-wgOotnHFKDY/WE1QefL6VtI/AAAAAAAAA1o/udBnZ_z1xIECeqgE27VAmtyoBub-egV4ACLcB/s1600/screencapture-docs-google-document-d-1VEsBgJboHc_vHCEj4tfkLlXOfL1f58K9RiAO8itihkU-edit-1481461513087.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://1.bp.blogspot.com/-wgOotnHFKDY/WE1QefL6VtI/AAAAAAAAA1o/udBnZ_z1xIECeqgE27VAmtyoBub-egV4ACLcB/s1600/screencapture-docs-google-document-d-1VEsBgJboHc_vHCEj4tfkLlXOfL1f58K9RiAO8itihkU-edit-1481461513087.png" /></a></div>
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Drag your file into this folder as shown in the image above. Your file is uploaded successfully.</div>
<div style="text-align: justify;">
<br /></div>
</span><br />
<div style="text-align: justify;">
<br />
<br />
<br /></div>
</div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4876635898680256880.post-63117304847554597992016-12-11T04:21:00.001+11:002018-12-14T10:35:30.284+11:00Introduction to Database Management Systems<div dir="ltr" style="text-align: left;" trbidi="on">
<h2 style="text-align: center;">
<span style="font-family: "georgia" , "times new roman" , serif;">Introduction to Database Systems</span></h2>
<div style="text-align: center;">
<span style="font-family: "georgia" , "times new roman" , serif;"><a href="https://drive.google.com/file/d/0B482Wk0uSfKVNHhBeDBLdUM0Rk0/view?usp=sharing" target="_blank"><span style="font-size: large;">View / Download PDF</span></a></span></div>
<span style="font-family: "georgia" , "times new roman" , serif;"></span><br />
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif;">
What is data?</span></h3>
<span style="font-family: "georgia" , "times new roman" , serif;">
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
A synonym for information. A data about you, for instance, would be your name, age, height, weight, occupation, address, contact number, and plenty of other things. All this is information, or data about you. This book’s data include no. of pages, author, publisher, book id, price, etc. </div>
<div style="text-align: justify;">
<br /></div>
<h3 style="text-align: justify;">
What is a database?</h3>
<div style="text-align: justify;">
A database is collection of interrelated data organized in such a way so that it is easy to access, retrieve, manage and understand data. Say, for example, a list of students - you will have a list of the names, along with their roll nos. You may also have a table somewhere about the marks of each student on your list. There will be separate files for mark lists for different subjects, and courses. These mark lists may be queried to find the aggregate marks, and overall percentages, which may be stored in some result files. All this collective information, derived from raw data, is called a database.</div>
<div style="text-align: justify;">
<br /></div>
<h3 style="text-align: justify;">
So, what are database systems?</h3>
<div style="text-align: justify;">
Database Systems are general-purpose software or applications that help manage a database. They are a collection of programs, each one of which is responsible for individual tasks such as updating the database, deleting some contents from the database, adding data to the database, etc. Manually organizing data is a very cumbersome process. It is time-taking, expensive, and very tedious. Imagine having to calculate results of thousands of students, belonging to several different classes, tens of subjects in each one of them. You need software to make your life easier. </div>
<div style="text-align: justify;">
<br /></div>
<h3 style="text-align: justify;">
Characteristics of a Database System</h3>
<div style="text-align: justify;">
Following are some characteristics of a database system. Some points have been further elaborated in the next sections in the comparison of modern database systems and traditional file systems. Traditional file systems are simply a collection of files that form the database and specific application programs that are relevant to that database. In the following sections we cover the basic characteristics of a modern day database system and then compare the traditional file systems with their new age counterparts. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<ol>
<li><b>Comparable to real world</b>: Database is stored in a way comparable to real world entities. There are various ways to represent real world scenarios and the complex relationships using data models which we will read in the coming up sections, for example object-oriented data model, the relational data model. </li>
<li><b>Extensibility</b>: It is possible to extend the database to accommodate changes in requirements, making the project more scalable. </li>
<li><b>Prevent redundancy</b>: Redundancy, or repetition of the same data in different storage locations is eliminated. This also brings to the fore the concept of centralized data, wherein all data is stored in one central location, so that there is one universal copy for all. This also eliminates the error produced when any change occurs in the data, since only one copy is updated, and all programs access the same single updated copy of data.</li>
<li><b>Sharable data</b>: It is convenient to share data between different users as well as applications for better performance. This property is extremely useful in multi-user systems where sharing of data is an integral component. </li>
<li><b>Security</b>: Protective measures should be taken to prevent any unauthorized or accidental access to or modification of database. This could involve use of security keys and authentication codes, unique to individual systems.</li>
<li><b>Consistency</b>: For the database to be reliable, data is maintained to be consistent. Any changes in the stored data are reflected throughout all applications using the information.</li>
<li><b>Data insulation</b>: The program and data are two different components of a database system. They are not dependent on each other, and any change in one does not affect the other. This is also termed as data-program independence.</li>
<li><b>Multiple views</b>: Different users are provided with different views as per their requirements and access privileges. A view is a subset of the complete database, providing only the information relevant to the viewer.</li>
<li><b>Metadata</b>: Metadata is data about data. All information about the database, including storage information, structure of the database, description of all types of constraints used.</li>
<li><b>Integrity</b>: Integrity is maintained in a database by enforcing several integrity constraints, which ensure that the database always contains accurate data. </li>
<li><b>Fault tolerance and recovery</b>: In case of any failure, whether a hardware fault or a software crash, the database should not be damaged. The system should ensure automatic recovery of all data.</li>
<li><b>Ease of data retrieval</b>: Data is more easily accessible, and with the help of modern query languages, it is easier to retrieve particular data from huge databases. This eliminates the need for writing new application programs from scratch for every new query.</li>
<li><b>Concurrency</b>: Multiple users can access same data without crashing the system. This feature extends to multiple transactions taking place simultaneously. Concurrency control systems provide a way to effectively carry out multiple transactions, though there are still measures to control the level of concurrency.</li>
<li><b>ACID properties</b>: These are a set of 4 properties – Atomicity, Consistency, Isolation and Durability. These properties are studied in detail later in this chapter.</li>
<li><b>Structured and unstructured data</b>: it is possible to store all types of data – structured, unstructured, and semi-structured data. Data in different formats, with different file sizes and properties can be easily accommodated in our database. As we will read in subsequent chapters, database systems are very much essential in analyzing Big Data.</li>
</ol>
</div>
<h3 style="text-align: justify;">
Traditional file systems</h3>
<div style="text-align: justify;">
Before the advent of modern general purpose database systems, traditional file systems were used to store, manipulate, retrieve and delete data. These file systems comprised of two major components: the data stored as a collection of files, and several application programs that accessed and manipulated the files. These systems were very complicated because of a variety of reasons. Data was not centralized, meaning there could be two or more copies of same data, resulting in redundancy. Redundancy would lead to difficulty in maintaining consistency throughout the system. Often, application programs were targeted to achieve some of the major queries, such as adding new tuples, removing some data, manipulating existing data, etc. However, for each new query, either a new application had to be written, or some entirely different programs were to be clubbed together in a complex manner to achieve the desired result. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
As technology improved, more and more advances were made in the existing database systems. Progress was made towards more efficient systems, more application programs were added to generalize individual systems, among other changes. This resulted in different types of database systems, as follows:</div>
<div style="text-align: justify;">
<ol>
<li><b>Single file or flat file database system</b>: This is the traditional file based data storage system, consisting of collection of files and related application programs. </li>
<li><b>Hierarchical system</b>: Data is stored in a hierarchical format, with parent entities at the top, linked to its child entities. As the name suggests, hierarchical system enforces a tree like structure, with the only links possible between parent and its children. There is no link between siblings, which may or may not be a disadvantage, based on the user requirements. The implementation is pretty straightforward, and hence it is highly recommended for storing and managing structured data. An example approach is using XML (eXtensible Markup Language).</li>
<li><b>Networked system</b>: A network system allows for more interconnections between data, that is when many-to-many relationships exist between records, network systems should be used. It is more efficient and useful for large scale projects, such as maintaining company records, where records may not necessarily be stored in a hierarchy. Network based DBMS are useful for managing structured data. High level languages such as Pascal, Cobol, C++ are used to implement network – based database systems.</li>
<li><b>Relational database system</b>: This type of system is one of the most popular systems in use today. It emphasizes the importance of relations between records and entities. This paves way for more flexibility and more extensibility. Data is stored in tabular form, and relationships are clearly defined between each entity or table. Such DBMS are also called as RDBMS. Several popular RDBMS are Oracle, MS Access, SQL.</li>
<li><b>Object-oriented approach</b>: This is also one of the very popular systems, and the most modern one. Classes and objects are used to describe real world entities. It has a high significance in today’s world, where unstructured and semi – structured data have become mainstream. Object-oriented DBMS are comprised of objects and their behavior. Objects are implemented with the help of a variety of data structures, and this ability to store information of all types and in all formats is what makes this approach attractive. Behavior of objects is implemented with the help of sub – programs called methods, or subroutines, functions etc. One major disadvantage is the cost, as these systems can be expensive and are suitable for large scale projects. These can be implemented using high level languages such as Java, C++.</li>
</ol>
</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Some examples of general purpose database systems are MySQL, MS Access, SQL. It is possible for programmers to build their own database system for specific requirements. </div>
<div style="text-align: justify;">
<br /></div>
<h3 style="text-align: justify;">
Why is a database system required at all?</h3>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Traditionally, information was stored in a number of files, which were saved on disks. File systems are still feasible for storing a certain amount of information, however, you need a database system if you need to constantly updating large amounts of data, or you want to eliminate redundancy. Following are some major advantages of database systems over traditional file systems (Note, when referring to database systems, one refers to the modern database systems such as Oracle, unless stated otherwise). Some of the points may be a repetition of the characteristics, but are given here for comparison. </div>
<div style="text-align: justify;">
<ol>
<li>Centralized data for all purposes. This also helps in removing redundancy from your database. Redundancy means storing the same data repeatedly in several files, thereby increasing storage costs. For example, with a database system You do not need to maintain 20 student lists – one for each subject, instead you can have one central list for all subjects, accessible to and modifiable by all subject teachers.</li>
<li>Consistency. Having redundant data may also lead to inconsistency. If you have several copies of same data, any change you make in one may not be reflected in the other. In traditional files systems, database is handled by its own collection application programs, and all programs need to be changed. There exists probability of database being inconsistent due to affecting multiple programs. However, in modern database systems, change in data does not affect the system. This is also termed as program-data independence. Your data becomes highly inaccurate and is no longer reliable. Take a situation where a student changes his address or drops out. Data now needs to be updated in several different files, some of which may be linked together. With a single central database, one only need to change the data at one place, it will automatically be reflected in others.</li>
<li>It is easier to store structured and unstructured information together using modern files systems. It is way more difficult to store vast amounts of unrelated data consisting of files in different formats together. This type of data is also today popularly called as Big Data. Your Facebook data, for example, consists of a variety of data forms: images (in all formats), docs, textual content, videos, map location, etc. All this data is interconnected with accounts of other people, pages, and numerous other entities. Imagine having to maintain several different application programs for each and every activity, different kinds of posts, and all kinds of interconnections between people.</li>
<li>Database integrity, meaning maintaining the validity and accuracy of data. Database must satisfy all the integrity constraints, otherwise it becomes unreliable for use. Constraints can be thought of as rules that should be followed by one or more data components. For example, the amount to be withdrawn from a bank should never exceed the amount present in bank account. In file systems, such constraints are enforced with the help of application programs. We have already discussed how any change to the database involves changing all involved application programs. Here again, if we need to introduce a new constraint, such as, no person can open an account with less than $1000, or if we wish to relax an existing constraint, for example, extending certain loans to students, we will have to change all related application programs. This is a very costly business, with several overheads and issues. However, with most database system softwares, it is easy to add new constraints, modify existing ones, and even deleting some constraints, without having to worry about its impact on your database. Integrity constraints are a useful way of ensuring that the database remains intact in case of any modification to it. It is a way of guaranteeing that the database will not be affected when any changes are made to the system. </li>
<li>Security. Not everyone should be allowed access to all information in your database. A customer has access to only his bank account, and nothing else. An employee cannot perform any unauthorized modifications to user’s account data, even though he knows how data is stored on servers. The application developer need only know the program specifics, nothing else. Therefore, enforcing security in our database system is an essential step to secure the database. Almost every database management system implements certain security features to protect user data. Database security means protecting data from unauthorized or accidental access or modification of data. Various authorization and permission granting techniques are applied to enforce security, either by using passphrases to authorize access to certain parts of the database, or giving read-only, read-write etc permissions to users.</li>
<li>Concurrency control. What would happen if several users were to access and modify the same file at the same time? The system would probably crash, or application programs may have been written to prevent multiple users from accessing same data at the same time. To improve efficiency of the system and reduce time costs, database systems have in-built features to provide concurrency control, that is, control of data in case of concurrent transactions. Transactions are any query on the database, accessing and/or modifying parts of the database. Suppose two users simultaneously try to write data to a file. The last write saved will be the one actually written to the file after both the transactions (write commands) have been completed. This change in data may not be accurate/representative of the actual intentions of both the users, as the actual output depends on the order of execution of both the transactions. In such cases, database systems use various protocols to decide a safe sequence or order of transactions.</li>
<li>Fault tolerance. Database systems have high fault tolerance. By fault tolerance, we mean that the integrity of the database is maintained in case of any software or hardware failure. To ensure that the database is unharmed, any change to it at the time of failure should not be partial. Any transaction should either be completely executed, or not executed at all. Partial transactions render the database inaccurate and unsafe. This property of enforcing that all transactions are either completely executed or not executed at all is called atomicity.</li>
<li>Ease of data retrieval. File systems are based on storing data in form of files and developing specific application programs to handle queries related to the database. This makes it almost impossible to introduce a new query. For this, a new application program would have to be written that accesses all the necessary files and supports that one particular query. Modern day database systems use special query languages which can search the organized database for any type of queries. There are limitations, however, it is more easier than writing a new application program for each new query.</li>
</ol>
</div>
<h3 style="text-align: justify;">
Database Users</h3>
<div style="text-align: justify;">
Database users include all persons accessing, or having access to the database. The users vary in their access privileges, their responsibilities and role. Following is a list of different roles of people accessing the database, along with their responsibilities:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<ol>
<li><b>Database Administrator</b>: The Administrator, or the admin is the person responsible for authorizing access and share controls to other users, managing resources and handling security related activities. He administers all activities related to the database. All metadata and storage definitions are managed by the admin. His primary goal is to ensure a smooth experience for the system’s end-users.</li>
<li><b>Application programmers</b>: As we have already seen, a major component of database systems are application programs that help manage data, manipulate, access, retrieve data. These application programs are developed by application programmers. There major responsibility is to develop efficient, time – saving, cost – effective programs that satisfy all requirements of the end – user. They use tools and software to develop interfaces for users. </li>
<li><b>Database designer</b>: Their main role is to design the structure of the database, more importantly how data is going to be stored, defining integrity and other types of constraints, designing views for multiple users.</li>
<li><b>System Analyst/Software engineer</b>: Their primary responsibility is to document user and customer requirements in SRS docs, develop software specifications for the product .</li>
<li><b>Naïve users</b>: These are occasional users of the DBMS, they typically use the interfaces and application programs that have already been developed. For example, a customer who wishes to check his bank account balance.</li>
<li><b>Sophisticated users</b>: They use query processing languages to carry out their own transactions or queries on the database. They may use several data mining tools for this purpose. Examples include data analysts.</li>
<li><b>Specialized users</b>: These users write their own software to interact with the DBMS for their complex requirements. Examples include scientists, engineers.</li>
<li><b>Standalone users</b>: These users maintain their own personal database with the help of existing as well as ready-to-use database systems. They are the designers, administrators and the users as well. Examples include a small business owner who makes use of Excel sheets to monitor expenses etc.</li>
</ol>
</div>
<h3 style="text-align: justify;">
Three-tier architecture of DBMS</h3>
<div style="text-align: justify;">
Database systems have involved from one-tier architecture to two and three-tier architecture. An n-tier architecture divides the databases system into n modules, where each module has its own functionality and is visible to its own set of users. A one-tier architecture consists of mainly the database and does not supply any functionality to the user. This kind of architecture is useful for database designers and programmers. The two-tier architecture comprised of client-end and server-end. At the client-end were users of the database applications, who interacted directly with the system at the server-end. A two-tier architecture is typically used by programmers. Examples include ODBC, JDBC where users wrote application programs that made direct calls to the database. In three-tier architecture, this direct connection between users and the system has been removed. There is an intermediate interface between them, and the client-side is now effectively only a front-end view for the users. The three-tier architecture is the most popular and widely used in the present industry. The three tiers are:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<ol>
<li><b>The data tier or internal level</b>: This is where our database resides. At this level, description of how data is stored, the query languages associated, managing relations between data is given. Also, various constraints are defined here along with the metadata. This level is accessible to database designers as well as administrators. </li>
<li><b>Application tier or conceptual/logical level</b>: This is an interface between users and raw database. Data abstraction is the key to this tier – users are not aware of any details of the database further than this level, which provides them a minimal abstract view of the entire database. It acts as an insulation between users and database. Users can access database only through applications defined at this level. This level is for application programmers and sophisticated users. </li>
<li><b>User/Presentation tier or external/view level</b>: This is the level visible to database end users. There are multiple views of this same level, each view pertains to its precise set of users. These multiple views are generated by application programs that decide what information is to be presented and what abstracted for each user. This tier is typically for naïve end users, who do not require access to the entire database, but are only concerned with querying, manipulating retrieving data for which they have access privileges.</li>
</ol>
<div>
<br /></div>
<div style="text-align: center;">
<span style="font-size: large;"><a href="https://drive.google.com/file/d/0B482Wk0uSfKVNHhBeDBLdUM0Rk0/view?usp=sharing" style="text-align: start;" target="_blank">View / Download PDF</a><br /></span><br />
<div style="text-align: left;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: left;">
<span style="font-size: large;"><br /></span></div>
<div style="text-align: left;">
<span style="font-size: large;"><br /></span></div>
</div>
</div>
</span></div>Unknownnoreply@blogger.com6tag:blogger.com,1999:blog-4876635898680256880.post-57332929119994217032016-11-10T05:19:00.000+11:002017-06-08T15:47:28.582+10:00C Program for Calculating Factorial using Recursion <div dir="ltr" style="text-align: left;" trbidi="on">
<h2 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">What is recursion?</span></h2>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Recursion is a very important concept in programming. The simplest definition of recursion is something that repeats itself. In programming terms, a recursive function or recursive algorithm is one which calls itself. In this post we will see how we can print the factorial of a given number using a recursive function. </span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><span style="font-family: "georgia" , "times new roman" , serif;">Below is the code for recursive factorial following which is an explanation for how the recursive factorial program works. </span></span></div>
<div style="text-align: justify;">
<br /></div>
<span style="font-size: large;"><br /></span>
<br />
<div style="background: rgb(248, 248, 248); border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;">
<pre style="line-height: 16.25px;"><span style="font-size: large;"><span style="color: #bc7a00;">#include<stdio.h></span>
<span style="color: #b00040;">int</span> <span style="color: blue;">factorial</span> ( <span style="color: #b00040;">int</span> num )
{
<span style="color: green; font-weight: bold;">if</span>( num <span style="color: #666666;">==</span> <span style="color: #666666;">1</span> <span style="color: #666666;">||</span> num <span style="color: #666666;">==</span> <span style="color: #666666;">0</span> )
<span style="color: green; font-weight: bold;">return</span> <span style="color: #666666;">1</span> ;
<span style="color: green; font-weight: bold;">return</span> ( factorial ( num <span style="color: #666666;">-</span> <span style="color: #666666;">1</span> ) <span style="color: #666666;">*</span> num ) ;
}
<span style="color: #b00040;">int</span> <span style="color: blue;">main</span> ()
{
<span style="color: #b00040;">int</span> num , ans ;
printf ( <span style="color: #ba2121;">" Enter a Number: "</span> ) ;
scanf ( <span style="color: #ba2121;">"%d"</span> , <span style="color: #666666;">&</span>num ) ;
<span style="color: green; font-weight: bold;">if</span> ( num <span style="color: #666666;"><</span> <span style="color: #666666;">0</span> )
printf ( <span style="color: #ba2121;">"</span><span style="color: #bb6622; font-weight: bold;">\n</span><span style="color: #ba2121;">Invalid input"</span> ) ;
<span style="color: green; font-weight: bold;">else</span>
{
ans <span style="color: #666666;">=</span> factorial ( num ) ;
printf ( <span style="color: #ba2121;">"the factorial is:%d"</span> , ans ) ;
}
<span style="color: green; font-weight: bold;">return</span> <span style="color: #666666;">0</span> ;
}</span></pre>
</div>
<div style="text-align: justify;">
<span style="font-size: large;"><span style="font-family: "georgia" , "times new roman" , serif;"><br /></span></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><span style="font-family: "georgia" , "times new roman" , serif;">The function </span><span style="color: blue; text-align: left;">factorial() </span><span style="text-align: left;"></span></span><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">is the recursive function as it calls itself from inside its own definition. The first line of the function including the if condition with the return statement is to provide a base or an end point to the recursion. Without a base condition in any recursive algorithm, the algorithm will run endlessly, calling itself every time, with no instruction to stop or pause. The base case is the stopping condition. In the factorial program for example, it stops the recursive chain when the parameter passed to the function becomes equal to 0 or 1. </span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Now that we have cleared up what a base condition is in recursive functions, let's move on to the next line, which captures the essence of recursion: </span><span style="font-size: large; text-align: left;"> </span></div>
<div style="text-align: justify;">
<span style="color: green; font-size: large; font-weight: bold; text-align: left;"><br /></span></div>
<div style="text-align: justify;">
<span style="color: green; font-size: large; font-weight: bold; text-align: left;"> return</span><span style="font-size: large; text-align: left;"> ( factorial ( num </span><span style="color: #666666; font-size: large; text-align: left;">-</span><span style="font-size: large; text-align: left;"> </span><span style="color: #666666; font-size: large; text-align: left;">1</span><span style="font-size: large; text-align: left;"> ) </span><span style="color: #666666; font-size: large; text-align: left;">*</span><span style="font-size: large; text-align: left;"> num ) ; </span></div>
<div style="text-align: justify;">
<span style="font-size: large; text-align: left;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large; text-align: left;">This statement implies that whatever result is returned by calling factorial with num-1 as parameter will be returned to the calling function. If this seems confusing to you, we will follow up with an example. </span></div>
<div style="text-align: justify;">
<span style="font-size: large; text-align: left;"><br /></span></div>
<h3 style="text-align: justify;">
<span style="font-size: large; text-align: left;">Example</span></h3>
<div style="text-align: justify;">
<span style="font-size: large; text-align: left;">Let's say we want to calculate the factorial of 3. In the main program we call the factorial function with the parameter as 3 and store the result in ans variable. Now our factorial function first checks if the number is 0 or 1. It is not, so we return the value of factorial (3-1) * 3. To return this value, we will first need to calculate factorial (3-1), that is, factorial (2) is being called. Similarly, factorial (2) will call factorial (1). Now when factorial (1) is called, it satisfies the base condition that num is equal to 1. So it returns 1 (second line of function). The previous function, factorial (2) was waiting for factorial (1) so that it could return the result (factorial (1) * 2) to factorial (3). factorial (2) therefore returns (1*2) = 2 to factorial (3). factorial (3) was in turn waiting for this value (2) to return the result of factorial (2) * 3, which is now (2*3) =6. 6 is returned to the first call, that is in the main. </span></div>
<div style="text-align: justify;">
<span style="font-size: large; text-align: left;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: large; text-align: left;"><b><i>Hint</i></b>: If you are stuck with how a factorial works, read this: </span></div>
<div style="text-align: justify;">
<span style="font-size: large; text-align: left;">a factorial of a number is the product of all natural numbers upto that number. So a factorial of 3 = 3 * 2 * 1, a factorial of 4 = 4 * 3 * 2 * 1 and so on. Naturally, a factorial of n can be written as n * factorial of n-1, as the product of </span><span style="font-size: large; text-align: left;">all natural numbers upto that number is equal to the product of itself and </span><span style="font-size: large; text-align: left;">all natural numbers upto that number's predecessor. So to calculate the factorial of 5, all we need is the factorial of 4, multiply that with 5, and to know the factorial of 4, all we need is the factorial of 3, and multiply that with 4, and keep on repeating this procedure till we need to know the factorial of 1, which we know to be 1.</span><br />
<span style="font-size: large; text-align: left;"><br /></span>
<span style="font-size: large; text-align: left;"><br /></span>
<span style="font-size: large; text-align: left;"><br /></span></div>
<div style="text-align: justify;">
<br /></div>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4876635898680256880.post-91913383699232279212016-10-25T02:16:00.000+11:002017-06-08T15:47:57.830+10:00Javascript for Beginners: A complete Curriculum for JavaScript<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">In the world of web development, you cannot escape Javascript. Every other month there is a new framework, and you find yourself falling behind still stuck with the fundamentals. This post lists awesome resources from the web covering each topic in Javascript that you should know to get a better grasp at the language. The resources are listed in the order in which they should be read for the most comprehensive understanding of Javascript. </span></div>
<div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
</div>
<div>
<h2 style="text-align: justify;">
<span style="font-size: x-large;"><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript" style="font-family: georgia, "times new roman", serif;" target="_blank">Introduction to Javascript: Programming Fundamentals</a><span style="font-family: "georgia" , "times new roman" , serif; font-size: medium;"> </span></span><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"> </span></h2>
</div>
<div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">This very brief introduction by Mozilla gives you an insight into fundamental programming elements like data types, objects, control structure, functions, arrays, </span><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><a href="https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions" target="_blank">regular expressions</a>, etc.</span></div>
</div>
<div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<h2 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: x-large;">Asynchronous Programming</span></h2>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Asynchronous programming in javascript is a confusing yet important concept. Below are several guides to help you understand asynchronous programming and how javascript evolved to this point:</span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><a href="http://exploringjs.com/es6/ch_async.html" target="_blank">Exploring JS - Asynchronous Programming</a>: </span><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">This gives a history of how javascript evolved into asynchronous programming, why it is needed, and what are the different ways in which we can achieve asynchronous programs.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><a href="http://www.2ality.com/2012/06/continuation-passing-style.html" target="_blank">Continuation Passing Style</a>: </span><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">A very confusing concept in asynchronous programming, it is discussed in details here with examples.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><a href="http://callbackhell.com/" target="_blank">Callback Hell</a>: Y</span><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">ou'll come to know about it when you read continuation passing style. A tricky thing, as the name suggests. Do not skip this, but of course, make sure you understand the previous concepts well.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<br />
<h2>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Some terms you must be familiar with before going ahead:</span></h2>
<br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><a href="https://www.w3.org/TR/WD-DOM/introduction.html" target="_blank">DOM</a>. Another useful MDN <a href="https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Introduction" target="_blank">link</a> about DOM.</span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><a href="http://www.seguetech.com/ajax-technology/" target="_blank">Ajax</a></span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><a href="https://developer.mozilla.org/en-US/Apps/Fundamentals/Modern_web_app_architecture/MVC_architecture" target="_blank">MVC</a></span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><a href="https://www.sitepoint.com/developers-rest-api/" target="_blank">Rest APIs</a></span><br />
<br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<br />
<h2>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: x-large;">Basics of Modern Web Architecture</span></h2>
<div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">There is a really good tutorial on modern web architecture and how to build a modern web app on the Mozilla Developer Network <a href="https://developer.mozilla.org/en-US/Apps/Fundamentals/Modern_web_app_architecture" target="_blank">here</a>. It serves as a complete guide for newbies to the modern web architecture, but requires some basic understanding of HTML, CSS and Javascript.</span></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<br />
<h2>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: x-large;">Javascript Frameworks</span></h2>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">You probably heard about Javascript because of some new hyped framework. React, angular, node, ember, backbone, and a 1000 others. Each framework solves a different problem, is used for different functionalities, can be used together with other frameworks. It is best to understand what type of frameworks exist in Javascript and distinguishing one framework from the other.</span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><i>Note</i>: You will often come across the term SPA when reading about latest frameworks. An SPA is a Single Page Application, meaning the entire application can mostly be operated from a single page at the client side. This is a pretty vague description, so read more about what an SPA is from here: <a href="http://singlepageappbook.com/goal.html" target="_blank">SPAs</a> and learn more about their <a href="http://adamsilver.io/articles/the-disadvantages-of-single-page-applications/" target="_blank">disadvantages</a>. Here's a Stackoverflow <a href="http://stackoverflow.com/questions/21862054/single-page-application-advantages-and-disadvantages?rq=1" target="_blank">discussion</a> on SPAs if you're interested. </span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Below are some links comparing of some popular javascript frameworks: </span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><a href="http://noeticforce.com/best-Javascript-frameworks-for-single-page-modern-web-applications" target="_blank">10 best javascript frameworks for modern SPAs</a></span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><a href="https://www.developereconomics.com/feature-comparison-of-4-popular-js-mv-frameworks" target="_blank">Comparison of javascript mv frameworks</a></span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><a href="https://www.sitepoint.com/top-javascript-frameworks-libraries-tools-use/" target="_blank">Sitepoint: Top javascript frameworks reviewed</a></span><br />
<br />
<br />
<br />
<hr />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Now that you are almost done with the learning part, it's time to put your ideas to implementation starting now. The most effective way of learning anything is by doing, making mistakes, and learning from them. Just like in any language, where reading gives you vocabulary, but you have to practice speaking to be able to use the language to its fullest, in any programming language, you have to write some code to learn the ins and outs of the language. Not convinced? Here's a technical report for you: <a href="http://cogprints.org/637/1/LearnbyDoing_Schank.html" target="_blank">Learn by Doing</a>.</span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">As for what you should implement, think of any real world problem you can solve using code. Look at existing web apps, and see if there is any particular web app you like, but wanted to be implemented in a certain way. If you want to start small, you can start with a web app for building a todo list application. A todo list is essentially the new "Hello World" program. You can then move onto more heavier projects. If you don't want to build a new app from scratch or can't think of an idea, look for open source projects that are beginner friendly and need your help. All the best for your endeavours!</span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">If you think this post could be further improved, or if you have an interesting article you would like to be added in this post, please feel welcomed to mention them in the comments section. </span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
</div>
</div>
Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-4876635898680256880.post-61778007075809833502016-09-26T20:04:00.001+10:002017-06-08T15:49:48.762+10:00Network Programming: I/O Multiplexing<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">I/O multiplexing is the capability to tell the kernel that we want to be notified if one or more I/O conditions are ready, like input is ready to be read, or descriptor is capable of taking more output.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Scenarios is which I/O multiplexing is used -</span></div>
<br />
<ol style="text-align: left;">
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">When client is handling multiple descriptors (like standard input and network socket).</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">When client handles multiple sockets at the same time, example - Web client.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">When TCP server handles both listening and its connected sockets.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">When server handles both TCP and UDP.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">When server handles multiple services and perhaps multiple protocols.</span></li>
</ol>
<h2 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">I/O Models</span></h2>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">There are 5 I/O models -</span></div>
<div>
<ol style="text-align: left;">
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Blocking I/O</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Non-blocking I/O</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">I/O multiplexing</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Signal driven I/O</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Asynchronous I/O</span></li>
</ol>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">There are two phases for any input operation -</span></div>
</div>
<div>
<ol style="text-align: left;">
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Waiting for data to be ready</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Copying data from kernel to process</span></li>
</ol>
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Blocking I/O Model</span></h3>
</div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">By default, all sockets are blocking.</span></div>
<div class="separator" style="clear: both; text-align: justify;">
<a href="https://1.bp.blogspot.com/-bIV8rUDZT-Q/V-gQ951C__I/AAAAAAAAA0M/Tw3ALaY5Atg1Cxt44nik5uLFFCno5qhbQCLcB/s1600/blocking%2Bi-o.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><img alt="Blocking I/O Model" border="0" height="274" src="https://1.bp.blogspot.com/-bIV8rUDZT-Q/V-gQ951C__I/AAAAAAAAA0M/Tw3ALaY5Atg1Cxt44nik5uLFFCno5qhbQCLcB/s640/blocking%2Bi-o.png" title="Blocking I/O Model" width="640" /></span></a></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">We use UDP in this diagram because it's easier, as we only have to deal with sending and receiving datagrams.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">There is a switch from running in the application to running in the kernel, and returning back to application. </span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Most common error occurring is when system call is interrupted by a signal.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Non-blocking I/O Model</span></h3>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">When we set a socket to nonblocking, we tell the kernel that if an I/O request from me will put the process to sleep, return an error instead of blocking the process (putting the process to sleep). </span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">This method is called polling. It is often a waste of CPU time, but sometimes used on system dedicated to one function.</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://4.bp.blogspot.com/-nuxhkC7P3Lw/V-juQA6zC8I/AAAAAAAAA0g/x7mRFzHbu9UldJAY4rrSqT2XscZ7eP_lQCLcB/s1600/non%2Bblocking%2Bio.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Non-blocking I/O Model" border="0" height="262" src="https://4.bp.blogspot.com/-nuxhkC7P3Lw/V-juQA6zC8I/AAAAAAAAA0g/x7mRFzHbu9UldJAY4rrSqT2XscZ7eP_lQCLcB/s640/non%2Bblocking%2Bio.png" title="Non-blocking I/O Model" width="640" /></a></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<br />
<h3>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">I/O Multiplexing Model</span></h3>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>Disadvantage </b>- <i>select</i> requires two system calls instead of one.</span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>Advantage </b>- We can wait for more than one descriptor to be ready.</span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Another alternative is using multithreading. Instead of using <i>select </i>to block on multiple file descriptors, the program uses multiple threads (one per file descriptor), and each thread is then free to call blocking system calls like <i>recvfrom</i>.</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-zF2bGI0kpcM/V-jwJzjlcOI/AAAAAAAAA0s/QzJBphPFc_EkUMX1fKXyzY2S3Z47bjZ-wCLcB/s1600/iomultiplexing.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="I/O Multiplexing Model" border="0" height="258" src="https://1.bp.blogspot.com/-zF2bGI0kpcM/V-jwJzjlcOI/AAAAAAAAA0s/QzJBphPFc_EkUMX1fKXyzY2S3Z47bjZ-wCLcB/s640/iomultiplexing.png" title="I/O Multiplexing Model" width="640" /></a></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<br />
<h3>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Signal Driven I/O Model</span></h3>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Signals can tell the kernel to notify user process with SIGIO signal when descriptor is ready.</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://4.bp.blogspot.com/-F1GwRT8Ro8I/V-jxPr53vUI/AAAAAAAAA0w/Qi119fQ05zoKPoF3xcg9xWdQGfcMsRlPwCLcB/s1600/signaldriven.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Signal Driven I/O Model" border="0" height="258" src="https://4.bp.blogspot.com/-F1GwRT8Ro8I/V-jxPr53vUI/AAAAAAAAA0w/Qi119fQ05zoKPoF3xcg9xWdQGfcMsRlPwCLcB/s640/signaldriven.png" title="Signal Driven I/O Model" width="640" /></a></div>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">First enable the socket for signal driven I/O and install signal handler using <i>sigaction</i> system call. Return from this system call is immediate and our process continues, it is not blocked. When datagram is ready to be read, SIGIO signal is generated for our process. We can either read the datagram from the signal handler by calling <i>recvfrom</i> and then notify the main loop that data is ready to be processed, or we can notify the main loop and let it read the datagram.</span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>Advantage </b>- process is not blocked while waiting for data to arrive, can continue executing.</span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<br />
<h3>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Asynchronous I/O Model</span></h3>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">It works by telling the kernel to start operation and notify the process when it's complete, unlike signal driven I/O where kernel notifies when process is initiated.</span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
</div>
Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-4876635898680256880.post-22798628689539546302016-09-26T02:14:00.000+10:002017-06-08T15:51:09.214+10:00Different Cases of Connection Termination<div dir="ltr" style="text-align: left;" trbidi="on">
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Connection Abort Before <i>accept</i> Returns</span></h3>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">What happens in different implementations -</span></div>
<br />
<ul style="text-align: left;">
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Berkeley-derived implementations handle aborted connection completely within kernel, server process never sees it.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">SVR4 implementations return an error of EPROTO (protocol error) as the return from <i>accept</i>. </span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">POSIX specifies that return must be ECONNABORTED instead, because EPROTO is also returned due to fatal protocol related events, and server can't decide whether to call accept again, while with ECONNABORTED, server can ignore error and call accept.</span></li>
</ul>
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Termination of Server Process</span></h3>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Sequence of steps when child process terminates early -</span></div>
<br />
<ol style="text-align: left;">
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Server child and client are connected and can send each other message.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Server child is killed by using its process ID. All open descriptors of child are closed. FIN is sent to client, which sends back ACK. First half of TCP connection termination complete.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">SIGCHLD signal sent to parent server and handled correctly.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Client TCP receives FIN and sends ACK, but client process is blocked in the call to <i>fgets</i>.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">When we type another line for <i>fgets</i>, <i>str_cli </i>calls <i>writen </i>and client TCP sends data to server. This is allowed by TCP because receipt of FIN by client TCP only indicates that server process has closed its end of connection and won't send data. When server TCP receives data from client, it responds with RST, because the process server is terminated.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Client process will not see RST because it calls <i>readline</i> immediately after call to <i>writen</i> and <i>readline </i>returns 0 (EOF) immediately because of FIN received earlier. Client is not expecting to receive EOF, so it quits with error message <i>server terminated prematurely</i>. </span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">All open descriptors of client are closed. If readline happens before RST is received, the result is an unexpected EOF in the client. But if RST arrives first, result is ECONNRESET <i>connection reset by peer</i> error returns from <i>readline</i>.</span></li>
</ol>
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">SIGPIPE Signal</span></h3>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Problem - If client ignores error return from <i>readline</i> and writes more data to server, example - if client needs to perform 2 writes before reading anything back, with the first write eliciting RST. </span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">When a process writes to a socket that has received RST, SIGPIPE signal is sent to process whose default action is to terminate the process, and hence it should be caught by signal handler. If process catches signal and returns from handler, or ignores signal, write operation returns EPIPE.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">SIGPIPE can't be obtained on first write, because, first write access elicits RST and second write elicits signal. It is okay to write to a socket that has received FIN, but not RST.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Solution - If multiple sockets are present, then we don't know which socket encountered the error, so we set disposition of SIGPIPE to SIG_IGN, and catch error EPIPE and terminate.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Crashing of Server Host</span></h3>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Problem - Server host crashed / intermediate router is down</span></div>
<div>
<ol style="text-align: left;">
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Crash</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Client blocked in call to <i>readline</i></span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Client TCP continually retransmits data segments trying to receive ACK from server - 12 times, waiting for around 9 minutes before giving up.</span></li>
</ol>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">If server host crashed and there were no responses at all to client's data segments, error is ETIMEDOUT.</span></div>
</div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">If some intermediate router determined that server host was unreachable and responded with ICMP <i>destination unreachable</i> message, error is either EHOSTUNREACH or ENETUNREACH.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Crashing and Rebooting of Server Host</span></h3>
<div>
<ol style="text-align: left;">
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Start server and client and ensure connection is established by sending messages using <i>str_cli</i> and <i>str_echo</i>).</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Server host crashes and reboots.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Type a line of input to client, which is sent as TCP data segment to server host.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">When server host reboots after crashing, its TCP loses all information about previous connections. Therefore, server TCP responds with RST.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Client is blocked in the call to <i>readline</i> when RST is received, causing <i>readline</i> to return error ECONNRESET.</span></li>
</ol>
</div>
<br />
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Shutdown of Server Host</span></h3>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">When linux system is shutdown, init process normally sends SIGTERM signals to all processes (we can catch this signal), waits some fixed amount of time (say 5-20 seconds), then sends SIGKILL signal to any processes still running. This gives all running processes a short amount of time to clean up and terminate. If we don't catch SIGTERM, our server will be terminated by SIGKILL, and we follow all sequences of termination of server process.</span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
</div>
Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-4876635898680256880.post-90689805256392561462016-09-25T23:49:00.000+10:002017-06-08T15:51:34.877+10:00Network Programming - POSIX Signal Handling<div dir="ltr" style="text-align: left;" trbidi="on">
<h2 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">POSIX Signal Handling</span></h2>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Signal, or a software interrupt, is a notification to a process that an event has occurred. Generally, signals are asynchronous, because a process doesn't know that or when a signal will occur.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Signals are sent to a process by - another process, or itself, or the kernel.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Example, SIGCHLD is sent by kernel to parent process when child process terminates.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Disposition, or action of a signal is set by sigaction function. There are three choices for disposition -</span></div>
<br />
<ol style="text-align: left;">
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Creating a signal handler function. This method is also known as catching the signal. </span><span style="font-family: "courier new" , "courier" , monospace; font-size: large;">void handler (int signo);</span><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"> -function returns nothing, single integer as parameter contains signal number. SIGKILL and SIGSTOP cannot be caught.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Ignore signal by setting its disposition to SIG_IGN. SIGKILL and SIGSTOP cannot be ignored.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Set default disposition for a signal by setting its disposition to SIG_DFL. Usually, default is to terminate process, and sometimes save a core image of the process in its current working directory.</span></li>
</ol>
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>Signal function</b> - an easier but outdated alternative to sigaction, contains two parameters - first is signal number, second is handler function/SIG_IGN/SIG_DFL.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">When a signal handler is installed, it remains installed.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">When a handler is executing, the caught signal is blocked. Any additional signals set in the mask are also blocked.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">If signal is generated one or more time while it is blocked, it is delivered only once after the signal is unblocked. Unix signals are not queued.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Handling SIGCHLD signals</span></h3>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Zombie state is used to maintain information of child for the parent, such as process ID of child, its termination status, information on resource utilisation of child (CPU time, memory etc.). If process terminates and that process has children in zombie state, parent process ID of all children is set to 1 (init process), which inherits the children and cleans them up (i.e., init will <i>wait </i>for them, which removes the zombie). Some UNIX systems show the COMMAND for zombie process as <b>defunct</b>.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Handling Zombies</span></h3>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Zombies take space and we can run out of processes. When we fork children, we must <i>wait</i> for them by calling <i>wait</i> in handler of SIG_CHLD to prevent them from becoming zombies.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "courier new" , "courier" , monospace; font-size: large;"><b><span style="color: #3d85c6;">void</span> sig_chld <span style="color: blue;">(</span> <span style="color: #3d85c6;">int </span>signo <span style="color: blue;">)</span> {</b></span></div>
<div style="text-align: justify;">
<span style="font-family: "courier new" , "courier" , monospace; font-size: large;"><b> <span style="color: #3d85c6;">pid_t</span> pid <span style="color: magenta;">;</span> </b></span></div>
<div style="text-align: justify;">
<span style="font-family: "courier new" , "courier" , monospace; font-size: large;"><b> <span style="color: #3d85c6;">int</span> stat <span style="color: magenta;">;</span></b></span></div>
<div style="text-align: justify;">
<span style="font-family: "courier new" , "courier" , monospace; font-size: large;"><b> <span style="color: #3d85c6;">pid</span> = wait <span style="color: blue;">(</span> <span style="color: magenta;">&</span> stat <span style="color: blue;">)</span> <span style="color: magenta;">;</span></b></span></div>
<div style="text-align: justify;">
<span style="font-family: "courier new" , "courier" , monospace; font-size: large;"><b> <span style="color: #3d85c6;"> printf</span> <span style="color: blue;">(</span> <span style="color: #ffd966;">"</span><span style="color: #6aa84f;">Child %d terminated.</span><span style="color: #ffd966;">"</span> <span style="color: #c27ba0;">,</span> pid <span style="color: blue;">)</span> <span style="color: magenta;">;</span></b></span></div>
<div style="text-align: justify;">
<span style="font-family: "courier new" , "courier" , monospace; font-size: large;"><b> <span style="color: #3d85c6;">return </span><span style="color: magenta;">;</span></b></span></div>
<div style="text-align: justify;">
<span style="font-size: large;"><span style="font-family: "courier new" , "courier" , monospace;"><b>}</b></span></span></div>
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Sequence of Steps</span></h3>
<div style="text-align: justify;">
</div>
<ol>
<li><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Terminate client by typing EOF character. Client TCP sends FIN to server and server TCP responds with ACK.</span></li>
<li><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Receipt of FIN delivers EOF to child's pending readline. Child terminates.</span></li>
<li><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Parent is blocked in its call to <i>accept</i> when SIG_CHLD signal is delivered. Our signal handler <i>sig_chld </i>above executes, <i>wait</i> fetches the child's PID and status. Signal handler returns.</span></li>
<li><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><i>accept</i> was a slow system call, and the kernel causes it to return an error of EINTR (interrupted system call). Parent does not handle this error, so it aborts. </span></li>
</ol>
<div>
<span style="font-family: georgia, times new roman, serif; font-size: large;"><br /></span></div>
<div>
<span style="font-family: georgia, times new roman, serif; font-size: large;"><br /></span></div>
<div>
<span style="font-family: georgia, times new roman, serif; font-size: large;"><br /></span></div>
</div>
Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-4876635898680256880.post-61523793024985324212016-09-25T23:15:00.000+10:002017-06-08T15:54:39.418+10:00Network Programming: Steps involved in normal termination of server and client<div dir="ltr" style="text-align: left;" trbidi="on">
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Steps involved in normal termination of server and client</span></h3>
<br />
<ol style="text-align: left;">
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">When we type EOF character on client's standard input, <b>fgets </b>returns <i>null ptr</i> and <b>str_cli</b> returns.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>str_cli</b> returns to main which terminates by calling <b>exit</b>.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Kernel closes client socket, and starts the termination sequence by sending FIN to server.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Server TCP responds with ACK, completing first half of termination sequence. Server socket is in CLOSE_WAIT state and client socket is in FIN_WAIT_2 state. </span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">When server TCP receives FIN, server child which was blocked in <b>readline</b> returns 0.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">The <b>str_echo</b> returns to server child's main, which terminates by calling <b>exit</b>.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">All open descriptors in server child are closed. FIN is sent from server to client, which sends back ACK. Connection is completely terminated. Client enters TIME_WAIT state.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">SIGCHLD signal is sent to parent when server child terminates. Child enters zombie state.</span></li>
</ol>
<div style="text-align: justify;">
<span style="font-family: georgia, times new roman, serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: georgia, times new roman, serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: georgia, times new roman, serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: georgia, times new roman, serif; font-size: large;"><br /></span></div>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4876635898680256880.post-56027008355370585072016-09-25T22:37:00.002+10:002017-06-08T15:55:06.552+10:00Network Programming: Server not Running<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">How to Simulate the Behaviour of Server Not Running</span></div>
<br />
<ul style="text-align: left;">
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Start the client without starting the server.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Type in a single line to client, nothing happens.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Client blocks forever in <i>recvfrom</i>,the function that handles receiving messages (waits for messages) from server, waiting for server reply.</span></li>
</ul>
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Consider an Example</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">UDP client sends 3 datagrams to 3 different servers (3 different IP addresses) on single UDP socket. Client then enters loop that calls <i>recvfrom</i> to read replies. 2 datagrams correctly delivered (server was running on 2 out of 3 hosts), but third host was not running server and responds with ICMP port unreachable. </span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">ICMP error message contains IP header and UDP header of datagram that caused error. Client needs to know destination of datagram that caused error. <i>recvfrom</i> only returns errno value, not IP address or UDP port number of destination of erring datagram. Thus, asynchronous errors are returned to process only if process connected UDP socket to exactly one peer. </span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<br /></div>
</div>
Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-4876635898680256880.post-20276044309918942432016-09-25T21:01:00.000+10:002017-06-08T15:57:17.057+10:00TCP State Transition Diagram<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>Simultaneous Open</b> - when both ends send SYN simultaneously.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><b>Simultaneous Close</b> - when both ends send FIN simultaneously.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">There are 11 different states defined for a connection and the rules of TCP dictate the transitions from one state to another, based on the current state and the segment it received.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">TCP State Transition Diagram</span></h3>
<div class="separator" style="clear: both; text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqxkMg7yY2RBb05Gl7LeqSf71rOSKZOCM_ErcmxL_AJxQ5Er_mHbaNA5odPVQwIh1Ui3TglFFkFOvKZKgk2dDnqlh3aU_ctzrPu_nf7gYuazjBVwT_eVqG8ALXXH98jHHShkJCu7so1Ds/s1600/TCP+State+Transition.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><img alt="TCP State Transition Diagram" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqxkMg7yY2RBb05Gl7LeqSf71rOSKZOCM_ErcmxL_AJxQ5Er_mHbaNA5odPVQwIh1Ui3TglFFkFOvKZKgk2dDnqlh3aU_ctzrPu_nf7gYuazjBVwT_eVqG8ALXXH98jHHShkJCu7so1Ds/s1600/TCP+State+Transition.png" title="TCP State Transition Diagram" /></span></a></div>
<div style="text-align: justify;">
<br />
<br />
<br />
<br />
<br />
<br /></div>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4876635898680256880.post-75247847060451938772016-09-24T13:31:00.003+10:002017-06-08T15:57:54.212+10:00TCP Connection Termination<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">It takes 3 segments minimum to establish a connection and 4 segments to terminate a connection.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">TCP Connection Termination</span></h3>
<br />
<ol style="text-align: left;">
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">One side, either client or server, calls <i>close</i>, and goes into <i>active close</i> and sends a FIN segment to the other side.</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">After receiving FIN, the other side goes into <i>passive close</i>. Reception of FIN is also acknowledged by TCP, after any data that may already have been queued, like an EOF (by the one in active close).</span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">After some time, the side that receives the EOF will close its socket, and TCP sends another FIN. </span></li>
<li style="text-align: justify;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">The other side acknowledges the final FIN.</span></li>
</ol>
<br />
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<h3 style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">Packets exchanged when TCP connection is closed</span></h3>
<div class="separator" style="clear: both; text-align: justify;">
<a href="https://1.bp.blogspot.com/-sR4TH36YJks/V-XzX02GIaI/AAAAAAAAAzs/V5nx51BpLJoQgJwJQZwUuz6xZV_mUgwXACLcB/s1600/TCP%2Bconnection%2Btermination.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><img alt="TCP Connection Termination" border="0" height="406" src="https://1.bp.blogspot.com/-sR4TH36YJks/V-XzX02GIaI/AAAAAAAAAzs/V5nx51BpLJoQgJwJQZwUuz6xZV_mUgwXACLcB/s640/TCP%2Bconnection%2Btermination.png" title="TCP Connection Termination" width="640" /></span></a></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">A FIN occupies one byte of sequence number space just like SYN. Acknowledgement of each FIN is the sequence number of FIN + 1.</span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;">During the connection termination process, there may be some final data flow from the end that did not call close first, from the one who went in passive close to the one who went in active close. This situation is called <b>half-close</b>.</span><br />
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span>
<span style="font-family: "georgia" , "times new roman" , serif; font-size: large;"><br /></span></div>
</div>
Unknownnoreply@blogger.com1