Are you over 18 and want to see adult content?
More Annotations

A complete backup of mycommunitydirectory.com.au
Are you over 18 and want to see adult content?

A complete backup of mathematicexperts.com
Are you over 18 and want to see adult content?

A complete backup of pristineschool.com
Are you over 18 and want to see adult content?

A complete backup of british-sign.co.uk
Are you over 18 and want to see adult content?

A complete backup of tms-elektronik.com
Are you over 18 and want to see adult content?
Favourite Annotations

A complete backup of https://insolvenz-portal.de
Are you over 18 and want to see adult content?

A complete backup of https://lauranorrisrunning.com
Are you over 18 and want to see adult content?

A complete backup of https://al-anon.de
Are you over 18 and want to see adult content?

A complete backup of https://redevolution.com
Are you over 18 and want to see adult content?

A complete backup of https://ringophone.com
Are you over 18 and want to see adult content?

A complete backup of https://focusrh.com
Are you over 18 and want to see adult content?

A complete backup of https://miad.edu
Are you over 18 and want to see adult content?

A complete backup of https://intuilab.com
Are you over 18 and want to see adult content?

A complete backup of https://penniesonaplatter.com
Are you over 18 and want to see adult content?

A complete backup of https://tiefkuehlkost.de
Are you over 18 and want to see adult content?

A complete backup of https://handakafunda.com
Are you over 18 and want to see adult content?

A complete backup of https://candgnews.com
Are you over 18 and want to see adult content?
Text
SHEKHAR GULATI
I found the book easy to read and moderately thought provoking. The book talks about two approaches to reduce complexity of software systems – 1) embracing simplicity 2) embracing modular design. Complexity is anything related to the structure of a software system that makes it hard to understand and modify the system. MINIMAL TECHNICAL DOCUMENTATION EVERY PROJECT SHOULD HAVE In the last few months I have given a lot of thought on the minimal technical documentation that all projects should have. I consider it essential to building a quick understanding of the project and quickly onboard new developers. These documents should be maintained in the version control just like the code. The technical documentation IMPROVING SPRING DATA JPA/HIBERNATE BULK INSERT It is less than 100MB of data. After making this change we made another big improvement in the processing time. We reduce 10,000 record processing time to less than 2 mins. On repeated run it was between 90 seconds to 120 seconds. For 20,000 records the MICROSOFT’S DISTRIBUTED APPLICATION RUNTIME (DAPR Dapr is an implementation of Distributed application runtime. Its main goal is to make it easy to build distributed applications by codifying all the best practices for building distributed applications into one runtime. The above is the image I took SENDING OUTLOOK CALENDAR INVITE USING JAVA MAIL API Sending Outlook Calendar Invite using Java Mail API. Today I had to implement a functionality related to sending Outlook Calendar invite. The app backend was written in Java. As it turns out the simple task of sending a calendar invite is much more complicated than I expected. You have to construct the message with all the right parameters set USING FLYWAY TO MANAGE DATABASE MIGRATION IN SPRING BOOT In Spring Boot services, Flyway is auto-configured with flyway-core dependency is on the classpath. Flyway uses flyway_schema_history table to track the state of the database. This table is created in the default schema. Once it finds the table it scans the classpath looking for SQL or Java migration scripts. Once found it applies the migration RUNNING H2 IN SQL SERVER MODE WITH CUSTOM SCHEMA NAME ON As you can see we have specify mode as MSSQLServer.With this mode, H2 emulates following features: For aliased columns, ResultSetMetaData.getColumnName() returns the alias name and getTableName() returns null. Identifiers may be quoted using square brackets as in .; For unique indexes, NULL is distinct. That means only one row with NULL in one of the columns is allowed. ANGULAR 4: USE OF BASE-HREF AND DEPLOY-URL BUILD OPTIONS This generated page will not work as it router will use / as base for composing navigation URLs and static assets will be looked in the current directory. To solve my problem, I used —-base-href and —-deploy-url options as shown below. $ ng build -prod --base-href /users --deploy-url /public. 1. HOW TO SETUP JSON-SERVER TO USE CUSTOM ID AND ROUTE This post talks how to setup json-server to use custom id and routes. In case you don’t know, json-server allows you to run a fake HTTP server with zero coding in no time. This is a common solution to allow UI team to work while REST APIs are being developed by the backendteam.
SINGLE SIGN-ON IN SPRING BOOT APPLICATIONS WITH SPRING Benefits of Single sign-on. Many enterprises are adopting SSO because of the benefits it offers. Some of the benefits are mentioned below: Reduced IT support cost: Gartner has reported that 20%-50% of the support tickets are password resets. In a report, Forester said it costs $70 to solve a password reset request. This cost is too high.SHEKHAR GULATI
I found the book easy to read and moderately thought provoking. The book talks about two approaches to reduce complexity of software systems – 1) embracing simplicity 2) embracing modular design. Complexity is anything related to the structure of a software system that makes it hard to understand and modify the system. MINIMAL TECHNICAL DOCUMENTATION EVERY PROJECT SHOULD HAVE In the last few months I have given a lot of thought on the minimal technical documentation that all projects should have. I consider it essential to building a quick understanding of the project and quickly onboard new developers. These documents should be maintained in the version control just like the code. The technical documentation IMPROVING SPRING DATA JPA/HIBERNATE BULK INSERT It is less than 100MB of data. After making this change we made another big improvement in the processing time. We reduce 10,000 record processing time to less than 2 mins. On repeated run it was between 90 seconds to 120 seconds. For 20,000 records the MICROSOFT’S DISTRIBUTED APPLICATION RUNTIME (DAPR Dapr is an implementation of Distributed application runtime. Its main goal is to make it easy to build distributed applications by codifying all the best practices for building distributed applications into one runtime. The above is the image I took SENDING OUTLOOK CALENDAR INVITE USING JAVA MAIL API Sending Outlook Calendar Invite using Java Mail API. Today I had to implement a functionality related to sending Outlook Calendar invite. The app backend was written in Java. As it turns out the simple task of sending a calendar invite is much more complicated than I expected. You have to construct the message with all the right parameters set USING FLYWAY TO MANAGE DATABASE MIGRATION IN SPRING BOOT In Spring Boot services, Flyway is auto-configured with flyway-core dependency is on the classpath. Flyway uses flyway_schema_history table to track the state of the database. This table is created in the default schema. Once it finds the table it scans the classpath looking for SQL or Java migration scripts. Once found it applies the migration RUNNING H2 IN SQL SERVER MODE WITH CUSTOM SCHEMA NAME ON As you can see we have specify mode as MSSQLServer.With this mode, H2 emulates following features: For aliased columns, ResultSetMetaData.getColumnName() returns the alias name and getTableName() returns null. Identifiers may be quoted using square brackets as in .; For unique indexes, NULL is distinct. That means only one row with NULL in one of the columns is allowed. ANGULAR 4: USE OF BASE-HREF AND DEPLOY-URL BUILD OPTIONS This generated page will not work as it router will use / as base for composing navigation URLs and static assets will be looked in the current directory. To solve my problem, I used —-base-href and —-deploy-url options as shown below. $ ng build -prod --base-href /users --deploy-url /public. 1. HOW TO SETUP JSON-SERVER TO USE CUSTOM ID AND ROUTE This post talks how to setup json-server to use custom id and routes. In case you don’t know, json-server allows you to run a fake HTTP server with zero coding in no time. This is a common solution to allow UI team to work while REST APIs are being developed by the backendteam.
SINGLE SIGN-ON IN SPRING BOOT APPLICATIONS WITH SPRING Benefits of Single sign-on. Many enterprises are adopting SSO because of the benefits it offers. Some of the benefits are mentioned below: Reduced IT support cost: Gartner has reported that 20%-50% of the support tickets are password resets. In a report, Forester said it costs $70 to solve a password reset request. This cost is too high. USING FLYWAY TO MANAGE DATABASE MIGRATION IN SPRING BOOT Today, I was working on an application that uses Microservices based architecture. Each Microservice had its own schema and they talk to each other using their published contracts. We wanted to keep database migration script with each Microservice rather than keeping a common module to manage database Migrations. We might later migrate to commonmodule
HOW TO SOLVE DATABASE DEADLOCK ON MICROSOFT SQL SERVER Rerun the transaction. The database deadlock was caused when user uploads a file that was being written to the database. While the file was being uploaded user navigated to another page where data from the same table was queried. When we debugged SQL Server traces we discovered that row-level lock was escalated to table lock. RUNNING H2 IN SQL SERVER MODE WITH CUSTOM SCHEMA NAME ON As you can see we have specify mode as MSSQLServer.With this mode, H2 emulates following features: For aliased columns, ResultSetMetaData.getColumnName() returns the alias name and getTableName() returns null. Identifiers may be quoted using square brackets as in .; For unique indexes, NULL is distinct. That means only one row with NULL in one of the columns is allowed. PAPER SUMMARY: MONARCH: GOOGLE PLANET-SCALE IN-MEMORY TIME This week I read Monarch paper by Google engineers. The paper covers in detail design decisions involved in building Monarch. Monarch as the title of the paper suggests is an in-memory time series database. It is used by Google monitoring system that monitors most of the Google web properties like Gmail, Youtube, and Google Maps. THE 5 MINUTE INTRODUCTION TO OSQUERY The 5 minute introduction to Osquery. Osquery is a an awesome host instrumentation framework from Facebook. It can instrument Mac, Linux, and Windows servers. It organises system data in tables that you can query using your favourite query language – SQL. It is SQL for yourinfrastructure.
RUNNING TESTS AND BUILDING REACT APPLICATIONS WITH GRADLE In this short post, I will show you how you can integrate React applications created using create-react-app with Gradle build tool. We will cover how to build and run the tests as part of the Gradle build. We will start by creating a sample application using create-react-app. HOW TO THINK ABOUT DIFFERENT DATABASE DATA MODELS This week I was talking to a developer about how to think about data models supported by different databases. One thing that I have learnt in my 15 years of building web applications is that data models play an important role in the success of any software application. Data model provides an abstract model to SINGLE SIGN-ON IN SPRING BOOT APPLICATIONS WITH SPRING Benefits of Single sign-on. Many enterprises are adopting SSO because of the benefits it offers. Some of the benefits are mentioned below: Reduced IT support cost: Gartner has reported that 20%-50% of the support tickets are password resets. In a report, Forester said it costs $70 to solve a password reset request. This cost is too high. IMPLEMENTING FILE SAVE FUNCTIONALITY WITH ANGULAR 4 Today, I faced a requirement where I need to implement file save functionality in an Angular 4 application. In this quick post, I will show you how to implement this functionality in Angular 4 using FileSaver.js module. Step 1: Create an Angular 4 project I use Angular CLI to generate Angular 4 applications. Navigate to HOW TO EXCLUDE A SUB PACKAGE FROM SPRING COMPONENT Suppose you are using Spring component scanning and you don't want to scan classes in the sub-package you should use subtag of tag as shown below Here we have defined a aspectj pointcut whichSHEKHAR GULATI
Happy New Year! 2020 was a difficult year for most of us, as we fought with COVID-19 and came to terms with the remote way of working. It was a year when we had a lot more time in our hands as all of us were locked in our houses with almost no travel. MINIMAL TECHNICAL DOCUMENTATION EVERY PROJECT SHOULD HAVE In the last few months I have given a lot of thought on the minimal technical documentation that all projects should have. I consider it essential to building a quick understanding of the project and quickly onboard new developers. These documents should be maintained in the version control just like the code. The technical documentation IMPROVING SPRING DATA JPA/HIBERNATE BULK INSERT This week I had to work on a performance issue. Performance issues are always fun to work with. They give an opportunity to get into the depth of the technology we are using. We learn how much we don't know about the technology we are using MICROSOFT’S DISTRIBUTED APPLICATION RUNTIME (DAPR We are living in a world where every other day we see a new technical innovation. For most of us mere mortal it is not easy to quickly figure out if the technology is worth our time. Making sense of new technical innovations is one of the core aspects of my current role soby
USING FLYWAY TO MANAGE DATABASE MIGRATION IN SPRING BOOT Today, I was working on an application that uses Microservices based architecture. Each Microservice had its own schema and they talk to each other using their published contracts. We wanted to keep database migration script with each Microservice rather than keeping a common module to manage database Migrations. We might later migrate to commonmodule
SENDING OUTLOOK CALENDAR INVITE USING JAVA MAIL API Today I had to implement a functionality related to sending Outlook Calendar invite. The app backend was written in Java. As it turns out the simple task of sending a calendar invite is much more complicated than I expected. You have to construct the message with all the right parameters set else your calendar invite RUNNING H2 IN SQL SERVER MODE WITH CUSTOM SCHEMA NAME ON As you can see we have specify mode as MSSQLServer.With this mode, H2 emulates following features: For aliased columns, ResultSetMetaData.getColumnName() returns the alias name and getTableName() returns null. Identifiers may be quoted using square brackets as in .; For unique indexes, NULL is distinct. That means only one row with NULL in one of the columns is allowed. HOW TO SOLVE DATABASE DEADLOCK ON MICROSOFT SQL SERVER Exception is org.springframework.dao.CannotAcquireLockException: could not execute query; SQL ; nested exception is org.hibernate.exception.LockAcquisitionException: could not execute query] with root cause com.microsoft.sqlserver.jdbc.SQLServerException: Transaction (Process ID 132) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. ANGULAR 4: USE OF BASE-HREF AND DEPLOY-URL BUILD OPTIONS I use Angular 4 at work for building a single page application. Today, I faced the problem where I had to use different base paths for router and static assets. Angular makes use of the base href to tell router how to compose navigation URLs. If your application exists at theroot, then you can
HOW TO SETUP JSON-SERVER TO USE CUSTOM ID AND ROUTE This post talks how to setup json-server to use custom id and routes. In case you don't know, json-server allows you to run a fake HTTP server with zero coding in no time. This is a common solution to allow UI team to work while REST APIs are being developed by the backendteam. To
SHEKHAR GULATI
Happy New Year! 2020 was a difficult year for most of us, as we fought with COVID-19 and came to terms with the remote way of working. It was a year when we had a lot more time in our hands as all of us were locked in our houses with almost no travel. MINIMAL TECHNICAL DOCUMENTATION EVERY PROJECT SHOULD HAVE In the last few months I have given a lot of thought on the minimal technical documentation that all projects should have. I consider it essential to building a quick understanding of the project and quickly onboard new developers. These documents should be maintained in the version control just like the code. The technical documentation IMPROVING SPRING DATA JPA/HIBERNATE BULK INSERT This week I had to work on a performance issue. Performance issues are always fun to work with. They give an opportunity to get into the depth of the technology we are using. We learn how much we don't know about the technology we are using MICROSOFT’S DISTRIBUTED APPLICATION RUNTIME (DAPR We are living in a world where every other day we see a new technical innovation. For most of us mere mortal it is not easy to quickly figure out if the technology is worth our time. Making sense of new technical innovations is one of the core aspects of my current role soby
USING FLYWAY TO MANAGE DATABASE MIGRATION IN SPRING BOOT Today, I was working on an application that uses Microservices based architecture. Each Microservice had its own schema and they talk to each other using their published contracts. We wanted to keep database migration script with each Microservice rather than keeping a common module to manage database Migrations. We might later migrate to commonmodule
SENDING OUTLOOK CALENDAR INVITE USING JAVA MAIL API Today I had to implement a functionality related to sending Outlook Calendar invite. The app backend was written in Java. As it turns out the simple task of sending a calendar invite is much more complicated than I expected. You have to construct the message with all the right parameters set else your calendar invite RUNNING H2 IN SQL SERVER MODE WITH CUSTOM SCHEMA NAME ON As you can see we have specify mode as MSSQLServer.With this mode, H2 emulates following features: For aliased columns, ResultSetMetaData.getColumnName() returns the alias name and getTableName() returns null. Identifiers may be quoted using square brackets as in .; For unique indexes, NULL is distinct. That means only one row with NULL in one of the columns is allowed. HOW TO SOLVE DATABASE DEADLOCK ON MICROSOFT SQL SERVER Exception is org.springframework.dao.CannotAcquireLockException: could not execute query; SQL ; nested exception is org.hibernate.exception.LockAcquisitionException: could not execute query] with root cause com.microsoft.sqlserver.jdbc.SQLServerException: Transaction (Process ID 132) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. ANGULAR 4: USE OF BASE-HREF AND DEPLOY-URL BUILD OPTIONS I use Angular 4 at work for building a single page application. Today, I faced the problem where I had to use different base paths for router and static assets. Angular makes use of the base href to tell router how to compose navigation URLs. If your application exists at theroot, then you can
HOW TO SETUP JSON-SERVER TO USE CUSTOM ID AND ROUTE This post talks how to setup json-server to use custom id and routes. In case you don't know, json-server allows you to run a fake HTTP server with zero coding in no time. This is a common solution to allow UI team to work while REST APIs are being developed by the backendteam. To
USING FLYWAY TO MANAGE DATABASE MIGRATION IN SPRING BOOT Today, I was working on an application that uses Microservices based architecture. Each Microservice had its own schema and they talk to each other using their published contracts. We wanted to keep database migration script with each Microservice rather than keeping a common module to manage database Migrations. We might later migrate to commonmodule
HOW TO SOLVE DATABASE DEADLOCK ON MICROSOFT SQL SERVER Exception is org.springframework.dao.CannotAcquireLockException: could not execute query; SQL ; nested exception is org.hibernate.exception.LockAcquisitionException: could not execute query] with root cause com.microsoft.sqlserver.jdbc.SQLServerException: Transaction (Process ID 132) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. ANGULAR 4: USE OF BASE-HREF AND DEPLOY-URL BUILD OPTIONS I use Angular 4 at work for building a single page application. Today, I faced the problem where I had to use different base paths for router and static assets. Angular makes use of the base href to tell router how to compose navigation URLs. If your application exists at theroot, then you can
PAPER SUMMARY: MONARCH: GOOGLE PLANET-SCALE IN-MEMORY TIME This week I read Monarch paper by Google engineers. The paper covers in detail design decisions involved in building Monarch. Monarch as the title of the paper suggests is an in-memory time series database. It is used by Google monitoring system that monitors most of the Google web properties like Gmail, Youtube, and Google Maps. PROBLEM DETAILS FOR HTTP APIS WITH SPRING BOOT Shekhar Gulati is a software engineer and hands-on software architect. He is currently playing the role of CTO. His expertise is in building and architecting scalable distributed systems. HOW TO SETUP JSON-SERVER TO USE CUSTOM ID AND ROUTE This post talks how to setup json-server to use custom id and routes. In case you don't know, json-server allows you to run a fake HTTP server with zero coding in no time. This is a common solution to allow UI team to work while REST APIs are being developed by the backendteam. To
RUNNING TESTS AND BUILDING REACT APPLICATIONS WITH GRADLE In this short post, I will show you how you can integrate React applications created using create-react-app with Gradle build tool. We will cover how to build and run the tests as part of the Gradle build. We will start by creating a sample application using create-react-app. SYSTEM DESIGN: DESIGN THE AMAZON RECENTLY VIEWED ITEMS I enjoy working through system design problems. It helps me think how I will design interesting features of various systems. I will post design solutions to interesting problems. Today, I BRET VICTOR TALK: THE FUTURE OF PROGRAMMING This talk by Bret Victor is an eye opener. It was delivered by Bret in 2013. He gave this talk assuming we are in 1973 and then talked about how future of programming will look like in 2013. He talked about various CS discoveries and programming approaches people were tryingduring 1960 and
HOW TO EXCLUDE A SUB PACKAGE FROM SPRING COMPONENT Suppose you are using Spring component scanning and you don't want to scan classes in the sub-package you should use subtag of tag as shown below Here we have defined a aspectj pointcut whichSHEKHAR GULATI
I found the book easy to read and moderately thought provoking. The book talks about two approaches to reduce complexity of software systems – 1) embracing simplicity 2) embracing modular design. Complexity is anything related to the structure of a software system that makes it hard to understand and modify the system. MINIMAL TECHNICAL DOCUMENTATION EVERY PROJECT SHOULD HAVE In the last few months I have given a lot of thought on the minimal technical documentation that all projects should have. I consider it essential to building a quick understanding of the project and quickly onboard new developers. These documents should be maintained in the version control just like the code. The technical documentation IMPROVING SPRING DATA JPA/HIBERNATE BULK INSERTSPRING DATA JPA BATCHSPRING DATA JPA EXTRA It is less than 100MB of data. After making this change we made another big improvement in the processing time. We reduce 10,000 record processing time to less than 2 mins. On repeated run it was between 90 seconds to 120 seconds. For 20,000 records the RUNNING H2 IN SQL SERVER MODE WITH CUSTOM SCHEMA NAME ON As you can see we have specify mode as MSSQLServer.With this mode, H2 emulates following features: For aliased columns, ResultSetMetaData.getColumnName() returns the alias name and getTableName() returns null. Identifiers may be quoted using square brackets as in .; For unique indexes, NULL is distinct. That means only one row with NULL in one of the columns is allowed. USING FLYWAY TO MANAGE DATABASE MIGRATION IN SPRING BOOTFLYWAY SPRING BOOTSPRING BOOT TEST FLYWAY In Spring Boot services, Flyway is auto-configured with flyway-core dependency is on the classpath. Flyway uses flyway_schema_history table to track the state of the database. This table is created in the default schema. Once it finds the table it scans the classpath looking for SQL or Java migration scripts. Once found it applies the migration SENDING OUTLOOK CALENDAR INVITE USING JAVA MAIL APIOUTLOOK CALENDAR INVITE ISSUESOUTLOOK INVITE FOR VACATIONCALENDAR INVITE NOT SENDING OUTLOOKCREATE CALENDAR INVITE OUTLOOK 2016 Sending Outlook Calendar Invite using Java Mail API. Today I had to implement a functionality related to sending Outlook Calendar invite. The app backend was written in Java. As it turns out the simple task of sending a calendar invite is much more complicated than I expected. You have to construct the message with all the right parameters set ANGULAR 4: USE OF BASE-HREF AND DEPLOY-URL BUILD OPTIONS This generated page will not work as it router will use / as base for composing navigation URLs and static assets will be looked in the current directory. To solve my problem, I used —-base-href and —-deploy-url options as shown below. $ ng build -prod --base-href /users --deploy-url /public. 1. MACHINE LEARNING USING TENSORFLOW AND PYCHARM SERIES: PARTDOWNLOAD PYCHARM FOR WINDOWSDOWNLOAD PYCHARM FOR WINDOWS 10DOWNLOAD PYCHARM PC TensorFlow is an open source computation framework for building machine learning models. Its design make use of lessons learnt from earlier machine learning frameworks — Torch, Theano, Caffe, and Keras. Torch is the earliest machine learning framework that made of the term Tensor. Theano makes use of Graph data structure to store operations and compile BUILDING AN ARTICLE EXTRACTION PYTHON API WITH NEWSPAPER3KPYTHON NEWS AGGREGATORPYTHON NEWSPAPERPYTHON NEWSPAPER LIBRARYNEWSPAPER3K PYTHONUSE NEWSPAPER PYTHON TO DOWNLOAD WSJ ARTI… Today, I was working on an application that required me to extract the main content html for a web page. This is called article extraction. Most of the time you want to extract the text of the article but I wanted to extract HTML of the main content. For example, if you arereading following
QUICK TIP ON MOCKITO It took me sometime to figure out how to write such a test case. My class for which I was writing test looks like as shown below. The unit test code is shown below. The important line in the test is Mockito.when (iterator.hasNext ()).thenReturn (true,false);SHEKHAR GULATI
I found the book easy to read and moderately thought provoking. The book talks about two approaches to reduce complexity of software systems – 1) embracing simplicity 2) embracing modular design. Complexity is anything related to the structure of a software system that makes it hard to understand and modify the system. MINIMAL TECHNICAL DOCUMENTATION EVERY PROJECT SHOULD HAVE In the last few months I have given a lot of thought on the minimal technical documentation that all projects should have. I consider it essential to building a quick understanding of the project and quickly onboard new developers. These documents should be maintained in the version control just like the code. The technical documentation IMPROVING SPRING DATA JPA/HIBERNATE BULK INSERTSPRING DATA JPA BATCHSPRING DATA JPA EXTRA It is less than 100MB of data. After making this change we made another big improvement in the processing time. We reduce 10,000 record processing time to less than 2 mins. On repeated run it was between 90 seconds to 120 seconds. For 20,000 records the RUNNING H2 IN SQL SERVER MODE WITH CUSTOM SCHEMA NAME ON As you can see we have specify mode as MSSQLServer.With this mode, H2 emulates following features: For aliased columns, ResultSetMetaData.getColumnName() returns the alias name and getTableName() returns null. Identifiers may be quoted using square brackets as in .; For unique indexes, NULL is distinct. That means only one row with NULL in one of the columns is allowed. USING FLYWAY TO MANAGE DATABASE MIGRATION IN SPRING BOOTFLYWAY SPRING BOOTSPRING BOOT TEST FLYWAY In Spring Boot services, Flyway is auto-configured with flyway-core dependency is on the classpath. Flyway uses flyway_schema_history table to track the state of the database. This table is created in the default schema. Once it finds the table it scans the classpath looking for SQL or Java migration scripts. Once found it applies the migration SENDING OUTLOOK CALENDAR INVITE USING JAVA MAIL APIOUTLOOK CALENDAR INVITE ISSUESOUTLOOK INVITE FOR VACATIONCALENDAR INVITE NOT SENDING OUTLOOKCREATE CALENDAR INVITE OUTLOOK 2016 Sending Outlook Calendar Invite using Java Mail API. Today I had to implement a functionality related to sending Outlook Calendar invite. The app backend was written in Java. As it turns out the simple task of sending a calendar invite is much more complicated than I expected. You have to construct the message with all the right parameters set ANGULAR 4: USE OF BASE-HREF AND DEPLOY-URL BUILD OPTIONS This generated page will not work as it router will use / as base for composing navigation URLs and static assets will be looked in the current directory. To solve my problem, I used —-base-href and —-deploy-url options as shown below. $ ng build -prod --base-href /users --deploy-url /public. 1. MACHINE LEARNING USING TENSORFLOW AND PYCHARM SERIES: PARTDOWNLOAD PYCHARM FOR WINDOWSDOWNLOAD PYCHARM FOR WINDOWS 10DOWNLOAD PYCHARM PC TensorFlow is an open source computation framework for building machine learning models. Its design make use of lessons learnt from earlier machine learning frameworks — Torch, Theano, Caffe, and Keras. Torch is the earliest machine learning framework that made of the term Tensor. Theano makes use of Graph data structure to store operations and compile BUILDING AN ARTICLE EXTRACTION PYTHON API WITH NEWSPAPER3KPYTHON NEWS AGGREGATORPYTHON NEWSPAPERPYTHON NEWSPAPER LIBRARYNEWSPAPER3K PYTHONUSE NEWSPAPER PYTHON TO DOWNLOAD WSJ ARTI… Today, I was working on an application that required me to extract the main content html for a web page. This is called article extraction. Most of the time you want to extract the text of the article but I wanted to extract HTML of the main content. For example, if you arereading following
QUICK TIP ON MOCKITO It took me sometime to figure out how to write such a test case. My class for which I was writing test looks like as shown below. The unit test code is shown below. The important line in the test is Mockito.when (iterator.hasNext ()).thenReturn (true,false); MINIMAL TECHNICAL DOCUMENTATION EVERY PROJECT SHOULD HAVE In the last few months I have given a lot of thought on the minimal technical documentation that all projects should have. I consider it essential to building a quick understanding of the project and quickly onboard new developers. These documents should be maintained in the version control just like the code. The technical documentation MICROSOFT’S DISTRIBUTED APPLICATION RUNTIME (DAPR Dapr is an implementation of Distributed application runtime. Its main goal is to make it easy to build distributed applications by codifying all the best practices for building distributed applications into one runtime. The above is the image I took PROBLEM DETAILS FOR HTTP APIS WITH SPRING BOOT Shekhar Gulati is a software engineer and hands-on software architect. He is currently playing the role of CTO. His expertise is in building and architecting scalable distributed systems. USING FLYWAY TO MANAGE DATABASE MIGRATION IN SPRING BOOT Today, I was working on an application that uses Microservices based architecture. Each Microservice had its own schema and they talk to each other using their published contracts. We wanted to keep database migration script with each Microservice rather than keeping a common module to manage database Migrations. We might later migrate to commonmodule
PAPER SUMMARY: MONARCH: GOOGLE PLANET-SCALE IN-MEMORY TIME This week I read Monarch paper by Google engineers. The paper covers in detail design decisions involved in building Monarch. Monarch as the title of the paper suggests is an in-memory time series database. It is used by Google monitoring system that monitors most of the Google web properties like Gmail, Youtube, and Google Maps. IMPLEMENTING FILE SAVE FUNCTIONALITY WITH ANGULAR 4 Today, I faced a requirement where I need to implement file save functionality in an Angular 4 application. In this quick post, I will show you how to implement this functionality in Angular 4 using FileSaver.js module. Step 1: Create an Angular 4 project I use Angular CLI to generate Angular 4 applications. Navigate toFIXING EXCEPTION
If you are working with Spring Roo and suddenly start getting exception “Entity manager has not been injected (is the Spring Aspects JAR configured as an AJC/AJDT aspects library?)” then make sure you have _Configurable.aj ITD in your project.This ITD makes the sure that your entity classes have all the required dependencies like EntityManager injected in them. HOW TO SETUP JSON-SERVER TO USE CUSTOM ID AND ROUTE This post talks how to setup json-server to use custom id and routes. In case you don’t know, json-server allows you to run a fake HTTP server with zero coding in no time. This is a common solution to allow UI team to work while REST APIs are being developed by the backendteam.
ENABLING HTTPS FOR LOCAL SPRING BOOT DEVELOPMENT WITH Today, I discovered mkcert - a tool that generates valid TLS certificate. It works for any hostname or IP, including localhost. In this post, I will show you how to generate a valid PKCS12 format certificate using mkcert. Then, we will use that certificate in a Spring boot application. We will start by installing mkcert HOW TO GET SOLR UP AND RUNNING ON OPENSHIFT Full text search is a vital component in most enterprise or non-enterprise applications and Solr is one of the most popular choices. So, today I decided to spend sometime on getting Solr up and running on OpenShift.SHEKHAR GULATI
Menu Skip to content* Home
* Bookshelf
* Mental Models
* Kubernetes
* Distributed Systems* 52 Tech
* Newsletter
* Contact
INTERSECTION TYPES IN JAVA GENERICSLeave a reply
Today, I was looking at JDK 8 Collections.max function declaration and noticed a weird & in the type declaration. Most normal Java developers will not remember exact function declaration so I amwriting it below.
1
public staticand tagged generics
on August 19, 2019
by shekhargulati .
ISSUE #34: 10 READS, A HANDCRAFTED WEEKLY NEWSLETTER FOR SOFTWARE DEVELOPERSLeave a reply
The time to read this newsletter is 210 MINUTES. > THE GENERAL WHO WINS A BATTLE MAKES MANY CALCULATIONS IN HIS TEMPLE > BEFORE THE BATTLE IS FOUGHT. – Sun Tzu * All the best engineering advice I stole from non-technical people – 20 MINS READ. The points that resonated with me: * Know what people are asking you to be an expert in. This helps you avoid getting too much into other people territory. * Thinking is also work. This is especially true when you move tomanagement.
* Effective teams need trust. That’s not to say that frameworks for decision making or metrics tracking are not useful, they are critical — but replacing trust with process is called bureaucracy. * Fast and flexible observability with canonical log lines– 20 MINS READ.
Canonical logging is a simple technique where in addition to their normal log traces, requests also emit one long log line at the end that includes many of their key characteristics. The key points for mein this post are:
* Use logfmt to make logs machine readable * We use canonical log lines to help address this. They’re a simple idea: in addition to their normal log traces, requests (or some other unit of work that’s executing) also emit one long log line at the end that pulls all its key telemetry into one place. * Canonical lines are an ergonomic feature. By colocating everything that’s important to us, we make it accessible through queries that are easy for people to write, even under the duress of a productionincident
* Why Some Platforms Thrive and Others Don’t – 25 MINS READ. When evaluating an opportunity involving a platform, entrepreneurs (and investors) should analyze the basic properties of the networks it will use and consider ways to strengthen network effects. It’s also critical to evaluate the feasibility of minimizing multi-homing, building global network structures, and using network bridging to increase scale while mitigating the risk of disintermediation. That exercise will illuminate the key challenges of growing and sustaining the platform and help businesspeople develop more-realistic assessments of the platform’s potential to capturevalue
* How to Move Beyond a Monolithic Data Lake to a Distributed DataMesh
– 30 MINS READ. A long read that makes case for distributed data mesh. It applies DDD principles to designing a data lake. A refreshing take on how to design date lakes. * Re-Architecting the Video Gatekeeper – 15 MINS READ. This post cover how one of the Netflix tech team used Hollow to improve performance of their service. Hollow is a total high-density cache built by Netflix. The post covers why near cache was suitable for their use case. This is a detailed post covering the existing and new architecture. I learnt a lot while reading thisarticle.
* Our not-so-magic journey scaling low latency, multi-regionservices on AWS
– 20 MINS READ. This is another detailed post covering how Atlassian built a low latency service. They first tried DynamoDB but that didn’t cut for them. So, they also use a Caffeine based near cache to achieve the numbers expected from their service. * Making Containers More Isolated: An Overview of Sandboxed Container Technologies– 25 MINS READ.
* Benchmarking: Do it with Transparency or don’t do it at all – 20 MINS READ. This is a detailed rebuttal by Ongress team on MongoDB blog where they dismissed the benchmark report created byOngress.
* Deconstructing the Monolith: Designing Software that Maximizes Developer Productivity – 20 MINS READ. This article by Shopify is a must read for anyone planning to adopt Microservices architecture. It is practical and pragmatic. The key points for me in this post are: * Application architecture evolve over time. The right way to think about evolution is to go from Monolith -> Modular monolith ->Microservices.
* Monolithic architecture has many advantages. * Monolithic architecture can take an application very far since it’s easy to build and allows teams to move very quickly in the beginning to get their product in front of customers earlier. * You’ll only need to maintain one repository, and be able to easily search and find all functionality in one folder. * It also means only having to maintain one test and deployment pipeline, which, depending on the complexity of your application, may avoid a lot of overhead. * One of the most compelling benefits of choosing the monolithic architecture over multiple separate services is that you can call into different components directly, rather than needing to communicate overweb service API’s
* Disadvantages of Monolithic architecture * As system grows challenge of building and testing new featuresincreases
* High coupling and a lack of boundaries * Developing in Shopify required a lot of context to make seemingly simple changes. When new Shopifolk onboarded and got to know the codebase, the amount of information they needed to take in before becoming effective was massive * Microservices architecture increases deployment and operational complexity. The tools that works great for monolithic code bases stop working with Microservices architecture. * A modular monolith is a system where all of the code powers a single application and there are strictly enforced boundaries betweendifferent domains.
* Approach to move to Modular monolith * Reorganize code by real-world concepts and boundaries * Ensure all tests work after reorganisation * Build tools that help track progress of each component towards its goal of isolation. Shopify developed a tool called Wedge that highlights any violations of domain boundaries (when another component is accessed through anything but its publicly defined API), and data coupling across boundaries * According to Martin Fowler, “almost all the cases where I’ve heard of a system that was built as a microservice system from scratch, it has ended in serious trouble… you shouldn’t start a new project with microservices, even if you’re sure your application will be big enough to make it worthwhile * “It’s dead, Jim”: How we write an incident postmortem – 15 MINS READ. I believe it is a good exercise to do a post mortem even if you don’t follow SRE practices. The key points for me inthis post are:
* A postmortem is the process by which we learn from failure, and a way to document and communicate those lessons.* Why to write one?
* It allows us to document the incident, ensuring that it won’t beforgotten.
* They are the most effective mechanism we can use to drive improvement in our infrastructure. * You should share postmortems because your customers deserve to know why their services didn’t behave as expected * We shouldn’t be satisfied with identifying what triggered an incident (after all, there is no root cause), but should use the opportunity to investigate all the contributing factors that made it possible, and/or how our automation might have been able to prevent this from ever happening. * What we want is to learn why our processes allowed for that mistake to happen, to understand if the person that made a mistake was operating under wrong assumptions. This entry was posted in weekly-newsletterand tagged
newsletter on August 17,2019
by shekhargulati .
ISSUE #33: 10 READS, A HANDCRAFTED WEEKLY NEWSLETTER FOR SOFTWARE DEVELOPERSLeave a reply
The time to read this newsletter is 160 MINUTES. > WE CHANGE OUR BEHAVIOR WHEN THE PAIN OF STAYING THE SAME BECOMES > GREATER THAN THE PAIN OF CHANGING. CONSEQUENCES GIVE US THE PAIN > THAT MOTIVATES US TO CHANGE. — Henry Cloud * Advertising is a cancer on society: 20 MINS
READ. This is a long read. Author makes many valid points on why Advertising should be consider cancer. Advertising is a cancer because it has symptoms mentioned below. * Privacy violations * Outrage-inducing news reporting* Influencers
* Decaying and ephemeral Internet services * Some items from my “reliability list”: 15 MINS READ.
This post make thoughtful points that software architects should keep in mind while designing or reviewing systems. * Can you handle rollbacks?*
Are new states forward compatible? This is related to Postel’s law * > Be conservative in what you do, be liberal in what you acceptfrom others
*
Do you use a strong data exchange format like Protobuf or Thrift?*
Why should use JSON as data exchange format between systems?*
How I built a spreadsheet app with Python to make data science easier – 15 MINS READ. One of the cool open source projects that I have discovered in recent times.*
Announcing PartiQL: One query language for all your data – 20 MINS READ. Looks like finally we have found a way to standardise on SQL for working across different data storage solutions be it RDBMS or NoSQL or File based. PartiQL extends SQL by adding minimal extensions required for working with different data models. SQL won! Like it or not SQL is still the best and most powerful querylanguage.
*
Parallelism in PostgreSQL – 15 MINS READ. The post covers how modern Postgres implements parallelism for sequential scans, aggregations, and B-tree scans.*
Who Actually Feels Satisfied About Money? – 20 MINS READ. The post makes a good point on anxiety people have regarding money. More money does not always translate to more happiness. It’s not just how much you have — it’s what you dowith it.
*
Top Seven Myths of Robust Systems– 15 MINS
READ. The number one myth we hear out in the field is that if a system is unreliable, we can fix that with redundancy. In some cases, redundant systems do happen to be more robust. In others, this is demonstrably false. It turns out that redundancy is often orthogonal to robustness, and in many cases it is absolutely a contributing factor to catastrophic failure. The problem is, you can’t really tell which of those it is until after an incident definitively provesit’s the latter.
*
Safely Rewriting Mixpanel’s Highest Throughput Service in Golang – 15 MINS READ. This post covers how Mixpanel made use of Diffy to safely migrate high throughput service from Python to Golang. Diffy is a service that accepts HTTP requests, and forwards them to two copies of an existing HTTP service and one copy of a candidate HTTP service.*
The Business Executive’s Guide to Kubernetes – 10 MINS READ. A lot of useful advice on Kubernetes. The key pointsfor me are:
* Stateful data is hard. Don’t try to reinvent AWS RDS. Stateful sets have limitations. * Upgrading Kubernetes is hard. The advice is to run more than Kubernetes cluster in production. * Managed Kubernetes does not take away all the problems. * When a rewrite isn’t: rebuilding Slack on the desktop – 15 MINS READ. The approach used was at once incremental and all-encompassing, rewriting a piece at a time into a gradually growing “modern” section of the application that utilized React and Redux. And the results? 50% reduction of memory use and 33% improvement inload time
VIDEO OF THE WEEK
The video for this week is WHAT’S NEW IN JAVASCRIPT from Google I/O2019
This entry was posted in weekly-newsletterand tagged
newsletter on August 5,2019
by shekhargulati .
HOW TO SETUP JSON-SERVER TO USE CUSTOM ID AND ROUTE?Leave a reply
This post talks how to setup json-server to use custom id and routes. In case you don’t know, json-server allows you to run a fake HTTP server with zero coding in no time. This is a common solution to allow UI team to work while REST APIs are being developed by thebackend team.
Continue reading → This entry was posted in testingand tagged
fake-http-server ,
json-server , rest
on July 10, 2019
by shekhargulati .
MENTAL MODELS FOR SOFTWARE ENGINEERS: VALIDATE YOUR ASSUMPTIONSLeave a reply
In my last assignment, I was asked to mentor a software development team as part of the Dojo program. I am not a big believer in Training initiatives, but because Dojo program has a different format I decided to take up the assignment. The Dojo program involves working on a real project with the team, helping them embrace good software development practices, solving team’s real problems, and finally delivering a quality software. In this post, I want to talk about a lesson that I had shared with the team — the lesson which I named it as VALIDATE YOUR ASSUMPTIONS. Continue reading → This entry was posted in mental-modelsand tagged
software-developmenton July 8, 2019
by shekhargulati .
MENTAL MODELS FOR SOFTWARE ENGINEERS: FEEDBACK LOOPSLeave a reply
All real-world systems have some form of a feedback loop. Feedback loop is so called because output of the system is fed back into the system as input, increasing or decreasing its effect. The most common example of a feedback loop is audio feedback. I am sure most of you have experienced it at least once in your lifetime. Audio feedback loop occurs when a sound loop exists between an audio input(ex. Microphone) and audio output. Watch the video in case you want to experience it again. I am waiting…. Continue reading → This entry was posted in mental-modelson July 2, 2019
by shekhargulati .
ISSUE #32: 10 READS, A HANDCRAFTED WEEKLY NEWSLETTER FOR SOFTWARE DEVELOPERSLeave a reply
The time to read this newsletter is 150 MINUTES. > WRITING MAY BE THE SKILL WITH THE HIGHEST RETURN OF ALL – Seth> Godin
* Undervalued Software Engineering Skills: Writing Well: 5 MINS READ. I
echo with the author. Being a senior engineer in my organization this is one advice I usually end up giving to people. The key points fromthe post are:
* In a large engineering organization writing is the only medium that will help you propagate your message forward. * You can learn to improve your writing skills. It is a learnableskill.
* Writing code is not the only activity in software development. * When you write things down, you build better understanding of the topic. I personally find that writing helps me think clearly about aproblem.
* Why Github used Haskell for Semantic? – 20 MINS READ. We need more such posts from the community. These type of posts can help developers understand how organizations take technical choices. The key lessons for me in this post are: * The problem Github is trying to solve with Semantic is related to domain of programming language theory. This domain is an active research area and most of the researchers in this domain use Haskell for its brevity, power, and focus on correctness. Writing in Haskell allows us to build on top of the work of others rather than getting stuck in a cycle of reading, porting, and bug-fixing * Haskell makes it nigh-impossible to build programs that containsuch bugs
* Haskell used in industry at scale. Facebook open sourced a project called Haxi that is written in Haskell. * Let’s build a SQL parser in Go!:
20 MINS READ. I enjoyed reading this post. It shows in a step by step manner how to write a SQL parser. The author implemented it in Go. * How I decimated Postgres response times for my SaaS:
15 MINS READ. There are two key points in this post: * You can only fix a problem if you can successfully reproduce in your local environment. I know this sound common sense but ask yourself honestly how many times you have tried solutions without reproducing the problem in a local environment only to discover that your proposed solution does not work. This happened to me this week. * Composite index in PostgreSQL can help you avoid heap sort if you do order by in your query. * 13 Tips for Writing a Technical Book:
15 MINS READ. A lot of useful advice. I wrote a similar post when I published my first book. The key points for me in this postwere:
* Pad the timeline
* Schedule regular time to write: every morning, every weekend, etc * Use lots of TODOs to keep track of what’s left * Getting good technical editors is hard* Writing is lonely
* Remote working – Bringing sanity to mind & lessons worth learning: 20
MINS READ. This post covers the other side of remote working — anxiety and depression. The article shared tips that can help. * First thing you need to do is to get out of the denial mode. Mental issues can happen with anyone. Setup a weekly wellbeing check-up with yourself. * Create a schedule and stick to it. Know when to stop and detachfrom work.
* Setup a separate remote working space. * Limit your digital life. Talk to people * Amdahl’s law : 10 MINS READ. Amdahl’s Law is a formula which gives the theoretical speedup in latency of the execution of a task at fixed workload that can be expected of a system whose resources are improved. In essence, it says you can’t speed up beyond the sequential part of your program irrespective of how many cores you add. Gene Amdahl’s said, _If 50% of the execution time is sequential, the maximum speed up is 2, no matter how many cores you use_. Good video that you can watch on Amdahl’w Law is by Professor Ben H. Juurlink. * Blameless PostMortems and a Just Culture: 15 MINS
READ. Having a “blameless” Post-Mortem process means that engineers whose actions have contributed to an accident can give a detailed account of: * what actions they took at what time, * what effects they observed, * expectations they had, * assumptions they had made, * and their understanding of timeline of events as they occurred. * Love DevOps? Wait until you meet SRE:
10 MINS READ. If you have not heard about SRE then this post will help you get started. SRE as defined by its mastermind Ben Treynor is “SRE is what happens when a software engineer is tasked with what used to be called operations”. * 3 Mindfulness Rituals That Will Make You Happy– 20 MINS
READ. You are not your thoughts.VIDEO OF THE WEEK
This entry was posted in weekly-newsletterand tagged
newsletter on June 20,2019
by shekhargulati .
POST NAVIGATION
← Older posts
ABOUT AUTHOR
Shekhar Gulati is Director Technology and a hands-on architect with 14 years of software development experience. His expertise is in building highly scalable distributed systems in Java. His skills include Java, Serverless and Microservices architecture, Containers, and Kubernetes. Reach out to him using contact form.CONNECT WITH ME
* View shekhargulati’s profile on Twitter * View shekhar-gulati-830a055’s profile on LinkedIn * View shekhargulati’s profile on GitHub FOLLOW BLOG VIA EMAIL Enter your email address to follow this blog and receive notifications of new posts by email. Join 284 other followersFollow
RSS
* RSS - Posts
LATEST
* Intersection Types in Java Generics * Issue #34: 10 Reads, A Handcrafted Weekly Newsletter For Software Developers * Issue #33: 10 Reads, A Handcrafted Weekly Newsletter For Software Developers * How to setup json-server to use custom id and route? * Mental Models for Software Engineers: Validate your Assumptions * Mental Models for Software Engineers: Feedback Loops * Issue #32: 10 Reads, A Handcrafted Weekly Newsletter For Software Developers * Linux Tip: How to create a list of directories inside a directory and place an empty file in each of them * Tools Software Engineers Should Know: 6 Things You Can Dowith NetCat
* Mental Models for Software Engineers: Regret Minimization Framework SHEKHAR’S TIMELINE * RT @ShaneAParrish : “We don't rise to the level of our expectations, we fall to the level of our training.” — Archilochus 2 days ago * The general who wins a battle makes many calculations in his temple before the battle is fought. - Sun Tzu 2 days ago * RT @ShaneAParrish : Eulogies are an interesting window into how to live. They talk about: The shots you take, not the ones you miss; Chas… 2 days ago * Trying to understand why these two things are bought together https://t.co/m2QxpuyehM 5 days ago * Good read. Why Some Platforms Thrive and Others Don’t hbr.org/2019/01/why-so…1 week ago
MONTHLY ARCHIVE
* August 2019
* July 2019
* June 2019
* May 2019
* April 2019
* March 2019
* February 2019
* January 2019
* December 2018
* November 2018
* October 2018
* September 2018
* August 2018
* July 2018
* June 2018
* May 2018
* April 2018
* February 2018
* January 2018
* December 2017
* November 2017
* October 2017
* September 2017
* August 2017
* July 2017
* June 2017
* May 2017
* April 2017
* March 2017
* February 2017
* November 2016
* October 2016
* May 2016
* March 2016
* February 2016
* January 2016
* November 2015
* October 2015
* September 2015
* August 2015
* July 2015
* June 2015
* November 2014
* October 2014
* July 2014
* June 2014
* May 2014
* April 2014
* February 2014
* January 2014
* December 2013
* November 2013
* October 2013
* September 2013
* August 2013
* July 2013
* March 2013
* January 2013
* December 2012
* November 2012
* September 2012
* April 2012
* March 2012
* February 2012
* January 2012
* December 2011
* November 2011
* October 2011
* September 2011
* August 2011
* July 2011
* January 2011
* October 2010
* July 2010
* June 2010
* May 2010
* April 2010
* March 2010
* February 2010
* October 2009
* September 2009
* August 2009
Blog at WordPress.com.Shekhar Gulati
Blog at WordPress.com.Post to
Cancel
Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use. To find out more, including how to control cookies, see here: CookiePolicy
* Follow
*
* Shekhar Gulati
* Customize
* Follow
* Sign up
* Log in
* Report this content * Manage subscriptions* Collapse this bar
Details
Copyright © 2023 ArchiveBay.com. All rights reserved. Terms of Use | Privacy Policy | DMCA | 2021 | Feedback | Advertising | RSS 2.0