<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: saif ali</title>
    <description>The latest articles on Forem by saif ali (@saifali40).</description>
    <link>https://forem.com/saifali40</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F36103%2Fdd75a06b-69b4-456d-8380-a4038cbea43d.JPG</url>
      <title>Forem: saif ali</title>
      <link>https://forem.com/saifali40</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/saifali40"/>
    <language>en</language>
    <item>
      <title>Bringing the code format to legacy.</title>
      <dc:creator>saif ali</dc:creator>
      <pubDate>Sun, 04 Aug 2019 06:57:35 +0000</pubDate>
      <link>https://forem.com/saifali40/bringing-the-code-format-to-legacy-3cen</link>
      <guid>https://forem.com/saifali40/bringing-the-code-format-to-legacy-3cen</guid>
      <description>&lt;p&gt;A project without legacy code as hypothetic as the existence of developer who doesn't code.&lt;/p&gt;

&lt;p&gt;You might write a clean code today and it will be a legacy code after sometimes, so we can't get rid of the legacy code in our field.&lt;/p&gt;

&lt;p&gt;Now let's start the point, we have a project started 2011 and some of the codes are not even changed till date, so i have been assigned to format the entire code base to &lt;a href="https://google.github.io/styleguide/javaguide.html"&gt;google style&lt;/a&gt;  I tried the following bash function to find out the last updated date of each file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function ghlbt {
         git ls-tree -r --name-only HEAD |
        while read filename  ;
        do
            if
                [[ $filename == *.$1 ]] ; then echo " $filename ," $(git log -1 --format="%ad, %an" -- $filename);
            fi  ;
        done &amp;gt;&amp;gt; $1_$2.csv
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;&lt;code&gt;please replace $1 with the extension and $2 with the directory name or whatever suffix you need&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;we got a CSV file and order by the date updated.&lt;br&gt;
&lt;code&gt;"%ad, %an"&lt;/code&gt; you can change this as well, you can get google for other patterns.&lt;/p&gt;

&lt;p&gt;we thought of cleaning up the old one first, but after generating the CSV I realized that we have 1200+ java files and it's not a good idea to format all, so we thought of making use of our Jenkins to do that and make the process automated.&lt;/p&gt;

&lt;p&gt;we are using Gradle for building projects. fortunately, there is formatter available for Gradle.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;buildscript {
  repositories {
    mavenCentral()
    jcenter {
    }
  }

dependencies {
    classpath "gradle.plugin.com.github.sherter.google-java-format:google-java-format-gradle-plugin:0.8"
  }
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;add the following to plugin &lt;br&gt;
&lt;code&gt;apply plugin: "com.github.sherter.google-java-format"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;so the job in Gradle is done now.&lt;/p&gt;

&lt;p&gt;in jenkins, we use regular git comments after getting the commit hook to the production branch, and from there we create an intermediate branch, to format the code and commit that to the master after formatting.&lt;/p&gt;

&lt;p&gt;Part 2 will be talking about the jenkins pipeline codes.&lt;/p&gt;

</description>
      <category>codequality</category>
      <category>java</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Good news AppEngine Users.</title>
      <dc:creator>saif ali</dc:creator>
      <pubDate>Wed, 03 Jul 2019 16:27:48 +0000</pubDate>
      <link>https://forem.com/saifali40/good-news-appengine-users-32i6</link>
      <guid>https://forem.com/saifali40/good-news-appengine-users-32i6</guid>
      <description>&lt;p&gt;Hi, folks, there is good news for those who are using the Google AppEngine ( and I’m writing as a java developer ). &lt;/p&gt;

&lt;p&gt;&lt;em&gt;People already using AppEngine or know about AppEngine can skip this paragraph.&lt;/em&gt;&lt;br&gt;
Google AppEngine: Google AppEngine is a Platform as a Service and cloud computing platform for developing and hosting web applications. ( aws-elastic-beanstalk equivalent of Google Cloud platform ).&lt;/p&gt;

&lt;p&gt;I have been using the AppEngine for the past 3+ years and it is good cause we don't have to manage the infrastructure and or no need to worry about the downtime. Google will be taking care of that for us.&lt;/p&gt;

&lt;p&gt;Here I'm talking about something that was not( officially still not ) available in Google AppEngine Standard environment, I'll list something that I felt important.&lt;/p&gt;

&lt;p&gt;*) We can't do Nonblocking I/O&lt;br&gt;
*) Threads ( Yup!, but there are alternative options for async calls provided by GCP)&lt;br&gt;
*) GRPC ( AppEngine uses the jetty server, that is the answer )&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let's talk about good new now?&lt;/strong&gt;&lt;br&gt;
On Sep 2018 Oracle released their latest LTS version Java 11. with a lot of updates and after 9 months Google Announced that the Google AppEngine Standard Beta version will support java11.&lt;/p&gt;

&lt;p&gt;I guess it will be a regular update from AppEngine and the existing limitations will remain the same. But After checking the Announcements it is quite surprising. Google decided to give more freedom the Developers. (YES!). &lt;/p&gt;

&lt;p&gt;(&lt;a href="https://cloud.google.com/blog/products/application-development/turn-it-up-to-eleven-java-11-runtime-comes-to-app-engine"&gt;https://cloud.google.com/blog/products/application-development/turn-it-up-to-eleven-java-11-runtime-comes-to-app-engine&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;I read the following lines in the documentation where I get excited more &lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;br&gt;
You’ll also find some changes in the Java 11 runtime. For example, the Java 11 runtime does not provide a Servlet-based runtime anymore. Instead, you need to bundle a server with your application in the form of an executable JAR.&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;I have tried bundled up Spring boot in the older version by changing the tomcat jetty container and it worked well. but I still the limitations was there. but today morning I decided to try with the netty server, Nonblocking I/O and threads with AppEngine. and it worked as expected.&lt;/p&gt;

&lt;p&gt;I have created a GitHub repository to check how to use the java11 in AppEngine with Micronaut ( which has the netty as default server ) &lt;a href="https://github.com/saifali40/micronaut-gcp"&gt;https://github.com/saifali40/micronaut-gcp&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;I tried the following :&lt;br&gt;
To use thread I used the ParallelStream and none I used the Flowable (RxJava ).&lt;/p&gt;

&lt;p&gt;If people are interested to see how the GRPC works, please post your comments will write about that in Next Article.&lt;/p&gt;

</description>
      <category>java</category>
      <category>appengine</category>
      <category>gae</category>
      <category>serverless</category>
    </item>
    <item>
      <title>Pain points In Legacy code refactoring?</title>
      <dc:creator>saif ali</dc:creator>
      <pubDate>Thu, 18 Apr 2019 06:23:41 +0000</pubDate>
      <link>https://forem.com/saifali40/pain-points-in-legacy-code-refactoring-hog</link>
      <guid>https://forem.com/saifali40/pain-points-in-legacy-code-refactoring-hog</guid>
      <description>&lt;p&gt;People who worked or working on Legacy code base, mention what are the pain points you have faced while refactoring the code?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>refactorit</category>
      <category>codequality</category>
    </item>
    <item>
      <title>Learn BigData from Google Cloud Platform.</title>
      <dc:creator>saif ali</dc:creator>
      <pubDate>Sun, 07 Apr 2019 13:00:18 +0000</pubDate>
      <link>https://forem.com/saifali40/learn-bigdata-from-google-cloud-store-523b</link>
      <guid>https://forem.com/saifali40/learn-bigdata-from-google-cloud-store-523b</guid>
      <description>&lt;p&gt;Yes, I added ML ( Machine learning ) to the post. I know it will be confusing for some people why I tagged ML to the post, well the Machine learning basically need some data to learn. Google's Big query has it. Google big query has an option to create a machine learning model, But I will not be taking you to Machine learning in this part.&lt;/p&gt;

&lt;p&gt;Let's get to business, people who want to learn big query (big data) can use your google accounts they provide free sandbox option for you.&lt;/p&gt;

&lt;p&gt;Step 1:&lt;br&gt;
&lt;a href="https://console.cloud.google.com/projectcreate" rel="noopener noreferrer"&gt;https://console.cloud.google.com/projectcreate&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;( You can choose any environment, we are not going to deploy anything to the cloud for now. if you are interested I can write about that too.)&lt;/p&gt;

&lt;p&gt;You can skip this if you already have a project in GCP.&lt;/p&gt;

&lt;p&gt;Step 2:&lt;br&gt;
go to big query (&lt;a href="https://console.cloud.google.com/bigquery" rel="noopener noreferrer"&gt;https://console.cloud.google.com/bigquery&lt;/a&gt;) &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F6s61j9823kxqr8hisvhl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F6s61j9823kxqr8hisvhl.png" alt="Dashboard"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Make sure that you have selected the correct project name.&lt;/p&gt;

&lt;p&gt;Step 3:&lt;br&gt;
We need some sample data, let's take the Noaa Tsuanmi historical runups, it has tsunami runups from BC2000. the total number of records 27057 ( date on Apr 7, 2019 ).&lt;/p&gt;

&lt;p&gt;To use that you can click on the + ADD DATA. &lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fe9jwkcbj5vx70zequfrz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fe9jwkcbj5vx70zequfrz.png" alt="ADD DATA"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click Explore public datasets. &lt;/p&gt;

&lt;p&gt;Step 4:&lt;/p&gt;

&lt;p&gt;In search type tsunami ( you can choose any public datasets, but I'm showing the tsunami for now. ) &lt;/p&gt;

&lt;p&gt;Step 5:&lt;br&gt;
Click view dataset, it will automatically add to your dataset.&lt;/p&gt;

&lt;p&gt;Now make sure that you can see the public datasets&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fxyi5gvm2qxii119ahbxa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fxyi5gvm2qxii119ahbxa.png" alt="public datasets"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 6:&lt;br&gt;
Now let's do some queries.&lt;/p&gt;

&lt;p&gt;Here I'm going to query to get all runups from 2000BC and I want to see the results.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fii9i6e57qfvnzcm6622v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fii9i6e57qfvnzcm6622v.png" alt="console"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;you guys might be noticed that I'm using SQL to query in big query, answer for that yes.&lt;/p&gt;

&lt;p&gt;I'll take the count by country now.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT  country, count(*) counts FROM  `bigquery-public-data.noaa_tsunami.historical_runups` AS runnups
GROUP BY country
ORDER BY counts DESC

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fri9f62j6nf890ef1qpg6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fri9f62j6nf890ef1qpg6.png" alt="resutls"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So of you noticed that i used AS in query &lt;code&gt;SELECT  country, count(*) counts FROM&lt;/code&gt;bigquery-public-data.noaa_tsunami.historical_runups&lt;code&gt;AS runnups&lt;/code&gt; will explain that in the next part. &lt;/p&gt;

&lt;p&gt;Now you can explore the bigquery by yourself.&lt;/p&gt;

&lt;p&gt;NOTE: &lt;br&gt;
*) I was not familiar with SQL queries till last month. I learned it for learning big query and followed machine learning. &lt;br&gt;
*) Big query has a lot of features that can't be done in SQL.&lt;br&gt;
*) Please explore something new in big query use #bigquery while adding the article so we all can catch up easily.&lt;/p&gt;

&lt;p&gt;Thanks &lt;br&gt;
Happy Learning &amp;lt;3&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>bigdata</category>
      <category>bigquery</category>
      <category>gcp</category>
    </item>
    <item>
      <title>Creating a simple mapper for java</title>
      <dc:creator>saif ali</dc:creator>
      <pubDate>Sat, 06 Apr 2019 11:32:27 +0000</pubDate>
      <link>https://forem.com/saifali40/creating-a-simple-mapper-for-java-22e9</link>
      <guid>https://forem.com/saifali40/creating-a-simple-mapper-for-java-22e9</guid>
      <description>&lt;p&gt;I have posted before a custom java &lt;a href="https://dev.to/saifali40/java-annotations-5gi5"&gt;annotation&lt;/a&gt;  and I thought of making it enhance and making it as open source project, &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/saifali40/mapper"&gt;https://github.com/saifali40/mapper&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>java</category>
    </item>
    <item>
      <title>Java Annotations.</title>
      <dc:creator>saif ali</dc:creator>
      <pubDate>Tue, 02 Apr 2019 17:25:38 +0000</pubDate>
      <link>https://forem.com/saifali40/java-annotations-5gi5</link>
      <guid>https://forem.com/saifali40/java-annotations-5gi5</guid>
      <description>&lt;p&gt;People Using Spring Framework in Java know how cool the annotations are, even I got surprised when I used the annotation for the first time. I'm not saying that only spring has annotations, Java itself has a lot of Annotation and that work so good and reduce a lot of codes.&lt;/p&gt;

&lt;p&gt;When I was started to determine writing at least one annotation I thought the annotation will be capable of doing a lot of things without using any additional Methods, in fact, I was wrong.&lt;/p&gt;

&lt;p&gt;If you want to write an annotation you need one Annotation and at least one method to facilitate the annotation,&lt;/p&gt;

&lt;p&gt;The following example will show how easily you can create an annotation to Map fields from your Models to DTOs easily without having Setters or Constructors.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/saifali40/mapper"&gt;https://github.com/saifali40/mapper&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import java.lang.annotation.*;

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface FieldMapper {
    public String field();
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;This is the annotation I wrote for my demo project, where it will Run on the Runtime for the fields you can try other targets and retention policies as well, for my requirement I need the retention as runtime and target as the field.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import in.saifali.mapper.annotations.FieldMapper;

import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;

public class Processor {
    Gson gson = new Gson();
    Map&amp;lt;Object, Object&amp;gt; dtoMap = new HashMap&amp;lt;&amp;gt;();
    Map&amp;lt;Object, Object&amp;gt; objectMap = new HashMap&amp;lt;&amp;gt;();
    public &amp;lt;T&amp;gt; T map(Class&amp;lt;T&amp;gt; t, Object object) {
        try {
            T returnClass = t.getDeclaredConstructor().newInstance();
            for (Field field : returnClass.getClass().getDeclaredFields()) {
                field.setAccessible(true);
                if (field.isAnnotationPresent(FieldMapper.class)) {
                    dtoMap.put(field.getName(), field.getAnnotation(FieldMapper.class).field());
                }else{
                    dtoMap.put(field.getName(), field.getName());
                }
            }
            objectMap = gson.fromJson(gson.toJson(object), new TypeToken&amp;lt;HashMap&amp;lt;Object, Object&amp;gt;&amp;gt;() {
            }.getType());
            dtoMap.forEach((x, y) -&amp;gt; dtoMap.put(x, objectMap.get(y)));
            String json = gson.toJson(dtoMap);
            return gson.fromJson(json, t);
        } catch (Exception e) {
            throw new IllegalArgumentException();
        }
    }

}

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;As the retention is Runtime I can use the Java reflection API and getting each field with annotation &lt;code&gt;@FieldMapper&lt;/code&gt; and mapping to respective fields.&lt;/p&gt;

&lt;p&gt;From the above GitHub repository, you find the test cases and understand how to use the above annotation easily.&lt;/p&gt;

&lt;p&gt;Note: I'm not good at writing.&lt;/p&gt;

</description>
      <category>java</category>
      <category>annotations</category>
    </item>
    <item>
      <title>3 days, 370 commits to master, 399 commits to all branches And a Disaster</title>
      <dc:creator>saif ali</dc:creator>
      <pubDate>Sun, 19 Aug 2018 10:36:22 +0000</pubDate>
      <link>https://forem.com/saifali40/3-days-370-commits-to-master-399-commits-to-all-branches-and-disaster-45h1</link>
      <guid>https://forem.com/saifali40/3-days-370-commits-to-master-399-commits-to-all-branches-and-disaster-45h1</guid>
      <description>&lt;p&gt;Reason:&lt;/p&gt;

&lt;p&gt;In August 2018, severe flooding affected Kerala state in India due to unusually high rainfall during the monsoon season. Kerala's worst floods in nearly a century, over 330 people died while at least 661,000 were displaced and all 14 districts of the state, were placed on high alert. &lt;/p&gt;

&lt;p&gt;Development:&lt;/p&gt;

&lt;p&gt;Kerala IEEE chapter and other developers came up with a plan to coordinate all rescue and relief operations. There was no room for agile or scrum just git issues and git pull request and aggressive development. The site became helpful and still more people using the same website for requesting food and water. the developers work day night voluntarily.&lt;/p&gt;

&lt;p&gt;From Github&lt;br&gt;
Excluding merges, 75 authors have pushed 370 commits to master and 399 commits to all branches. On the master, 124 files have changed and there have been 5,264 additions and 176 deletions.&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/IEEEKeralaSection/rescuekerala"&gt;https://github.com/IEEEKeralaSection/rescuekerala&lt;/a&gt; and MIT licensed.&lt;/p&gt;

&lt;p&gt;Well I know it will not be a good time to ask about a donation, but in fact, I should have to ask for a donation cause the total loss of around 2 billion Rupees.&lt;br&gt;
&lt;a href="https://donation.cmdrf.kerala.gov.in/"&gt;https://donation.cmdrf.kerala.gov.in/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>kerala</category>
      <category>agile</category>
      <category>flood</category>
      <category>donation</category>
    </item>
    <item>
      <title>REST API OR GraphQL</title>
      <dc:creator>saif ali</dc:creator>
      <pubDate>Sat, 07 Apr 2018 00:17:50 +0000</pubDate>
      <link>https://forem.com/saifali40/rest-api-or-graphql-50hl</link>
      <guid>https://forem.com/saifali40/rest-api-or-graphql-50hl</guid>
      <description></description>
      <category>discuss</category>
      <category>rest</category>
      <category>api</category>
      <category>graphql</category>
    </item>
    <item>
      <title>Explain me scrum like I'm five.</title>
      <dc:creator>saif ali</dc:creator>
      <pubDate>Fri, 09 Mar 2018 00:50:19 +0000</pubDate>
      <link>https://forem.com/saifali40/explain-me-scrum-like-im-five--4adb</link>
      <guid>https://forem.com/saifali40/explain-me-scrum-like-im-five--4adb</guid>
      <description></description>
      <category>explainlikeimfive</category>
      <category>software</category>
      <category>development</category>
      <category>scrum</category>
    </item>
    <item>
      <title>Which is your favorite port?</title>
      <dc:creator>saif ali</dc:creator>
      <pubDate>Fri, 16 Feb 2018 13:30:33 +0000</pubDate>
      <link>https://forem.com/saifali40/which-is-your-favorite-port--cge</link>
      <guid>https://forem.com/saifali40/which-is-your-favorite-port--cge</guid>
      <description></description>
      <category>discuss</category>
    </item>
    <item>
      <title>Lego House and new generation web development.</title>
      <dc:creator>saif ali</dc:creator>
      <pubDate>Sat, 03 Feb 2018 10:41:12 +0000</pubDate>
      <link>https://forem.com/saifali40/lego-house-and-new-generation-web-development-456l</link>
      <guid>https://forem.com/saifali40/lego-house-and-new-generation-web-development-456l</guid>
      <description>&lt;p&gt;Maybe this article is purely my intuition on the web development, it's been one and a half year I'm working with a web app, quite a lot of things I learned from here. On my exploring free time I read and implemented few projects, last night I was linking them with the Lego toys but it was almost matching and the web development has more fun than the lego. &lt;/p&gt;

&lt;p&gt;Let's Look into what is lego? I hope most of know what it is and how we use it?&lt;/p&gt;

&lt;h3&gt;
  
  
  Lego
&lt;/h3&gt;

&lt;p&gt;The official home of the toy building brick with links to products, games, videos, the LEGO® Shop, LEGO history, fan creations and our help center. ( from the official doc )&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.ytimg.com%2Fvi%2F5EHf4oV-XuY%2Fmaxresdefault.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.ytimg.com%2Fvi%2F5EHf4oV-XuY%2Fmaxresdefault.jpg" alt="Example of Lego house"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  web app
&lt;/h3&gt;

&lt;p&gt;The new generation web also has lot of building bricks with linking products, like CSS file, js files and a lot of other cdn files.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.ytimg.com%2Fvi%2FwrdR5Su_Stg%2Fmaxresdefault.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.ytimg.com%2Fvi%2FwrdR5Su_Stg%2Fmaxresdefault.jpg" alt="Example of Lego house"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What makes difference?
&lt;/h3&gt;

&lt;p&gt;You have to pay money to get for each lego price ( even though it came as a package).&lt;/p&gt;

&lt;p&gt;You can get the almost all cdn files for free from various cdn servers like Cloudflare it will fit almost all your needs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Let's have a look at a web app development.
&lt;/h3&gt;

&lt;p&gt;I wish to create a basic note-taking application, &lt;br&gt;
Step 1: use cdn for framework ( bootstrap, Semantic UI ,.....)&lt;br&gt;
Step 2: use cdn for JS Library ( Jquery*, angular or react ....)&lt;br&gt;
Step 3: use the tinymce library.&lt;br&gt;
Step 4: use backend code.&lt;/p&gt;

&lt;p&gt;It is very basic steps to create a web, when i ever i create a web i feel its kind of lego toy.&lt;/p&gt;

&lt;p&gt;Cheers :D&lt;/p&gt;

</description>
      <category>web</category>
      <category>cdn</category>
      <category>npm</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Working on Schema based database first time.</title>
      <dc:creator>saif ali</dc:creator>
      <pubDate>Mon, 29 Jan 2018 15:09:15 +0000</pubDate>
      <link>https://forem.com/saifali40/working-on-schema-based-database-first-time-50a7</link>
      <guid>https://forem.com/saifali40/working-on-schema-based-database-first-time-50a7</guid>
      <description>&lt;p&gt;Started career one and half year back never touched the SQL database in there. so I decided to check it out for a curiosity, my previous experience was on Google Datastore, MongoDB it is my first time on a schema based Database, coding is my hobby and I'm finding happiness in that, I have few projects on gitlab, so I pulled one of my MongoDB based projects and started changing code base the starting was port 27017 to 3306. mongo repository to crud repository and few annotations. &lt;/p&gt;

&lt;p&gt;After the basic setup, I just found the use of use of Hibernate annotations which I terrible missed on MongoDB. such as&lt;/p&gt;

&lt;p&gt;@OneToOne               @ManyToOne  @OneToMany  @ManyToMany @PrimaryKeyJoinColumn   @JoinColumn @JoinTable  @MapsId.&lt;/p&gt;

&lt;p&gt;will keep update here once I can able find the huge differences on that.&lt;/p&gt;

</description>
      <category>rdbms</category>
      <category>nosql</category>
      <category>mongodb</category>
      <category>mysql</category>
    </item>
  </channel>
</rss>
