Sunday, November 25, 2018

My New 2018 Video Course - Python on the Backend




Click to check out the course 50% of for the holidays!


Do you know Python and want to talk it to the next level? How about writing a website in Python, or an API so your fellow developers can consume in JSON over simple HTTP. With the boom of microservices and API, developers who are used to working with Python writing scripts can now take their knowledge to the backend. This course will teach you the basic of web servers, how to setup the Python Web server and write interesting cool applications on the backend.

What are the requirements?

Able to understand basic programming principles

What am I going to get from this course? 

Build cool web applications and APIs for other clients to consume Developers will be able to serve a basic website with python Turn your python script into a web API

What is the target audience? 

Beginners python developers who are interested in building HTTP web APIs in python

Check out the course 50% off for the Holiday's 


https://www.udemy.com/python-on-the-back-end-for-beginners-http-server/?couponCode=PYBACK2018


Sunday, November 18, 2018

My New Book for 2018 just published - Learn GIS Web Programming with ArcGIS Javascript API 4.9 and ArcGIS Online



GIS Programming kindle book
click on the image to purchase the ebook on Amazon




In late 2012 I got an email from a book publisher author with a proposal to author a book. They have found me through my blog and linked a blog post I wrote back in 2009 on ArcGIS Server technology. I accepted their offer and wrote the book and 3 others that followed.

This makes me question, why did I write that original blog post? I didn’t know that one day a publisher will google that technology and find my post and make me an offer to write a book. I can’t remember why exactly I wrote that post but I knew that I was having fun doing it. Sharing my experience with the world through this writing always felt good to me.

In August 2017 I started a new series called Getting Started with ArcGIS Javascript API 4.x on YouTube. That series became really popular. The interaction on that series inspired me to write this book to discuss things I might have missed in that video series and to distill all my findings, knowledge into a book. So if you are new to the YouTube channel consider subscribing to check out more content over there https://www.youtube.com/igeometry

Today, I decided to re-live the experience of writing a book. However, no publisher is backing up this book. This book is written from the heart, full of joy, from me to you. It is a brain dump of what I think will be a very beneficial work for you guys.

As of the time of writing this preface, I did not pick a title of this book. And I’m feeling good about this. I know the topic and I can imagine how the book will look like. However, I feel that picking a title will force my thoughts through a narrow path and thus limit the potential of what this book could be. Obviously, if you are reading this that means I have already picked a title.

This book is about building web maps using Javascript technology. I picked Javascript because it is a resilient light-weight technology that can run on both the server and the client, mobile, IOT and supercomputer machines. 

Traditional technology books discuss tools. “This is how to load a web map in a browser”. “This is how to query the rest endpoint”. “This is how to render a 3d map”. You get a catalog of tools and what they do. There is nothing wrong with this format. In fact, it is a good reference. However, you don’t get any context when reading such books to take action and build something. It is like learning what is a hammer, nail and screwdriver does but these tools are useless if no one shows you how to build a table using these tools.

I like to write my books by example, where I build an app and in the process explain the various tools I’m planning to use to build this app. Personally, I feel this is a better way of learning as it gives context.

I hope you enjoy this book.

What are we building in this book ?
We will be building a web mapping application from scratch. For tourists, we are building an app that helps users locate landmarks. The app shows the landmarks in a map such as libraries, cafes, restaurants schools and much more. It has a search capability to search for landmarks where they will be highlighted on the map. It also shows the nearby landmarks within specific miles from current location. So you can answer interesting questions such as show me all libraries within 100 feet of this coffee shop or are there any liquor stores within a mile from this school? I will be providing you with the sample data which I created myself, this data is not real it is just sample. All we need is to write the application. The app will run on both mobile and desktop.

Don’t worry if this seems like a lot. We will break down those functionalities into different chapters and slowly walk through each.

Who this book is written for?
Anyone interested in learning how to build a web mapping application. Basic programming knowledge is recommended but not required. I will explain all that is required as we go through the book.

System Requirements
I designed this book in a way so you don’t require a special or license to get started. I will be using a mac in this book but will include instructions for Windows and Linux. We will use ArcGIS Online free account to host our landmark data and ArcGIS Javascript API 4.x to write the web application. I will provide that data in GeoJSON format so we can upload it to ArcGIS Online.

Software Requirements
All you need on your machine is a text editor to write code and a web server to serve the static files. I will be using Node JS as a web server and Visual Studio Code as the text editor. We will take care of the download and installation of those two in chapter 1.


Saturday, November 3, 2018

What is State Transfer in REST architecture really mean?


Understanding State Transfer in REST 


One of the most critical properties of the REST Architecture (Representational State Transfer) is the protocol is stateless and the state gets transferred between the client and the server. I personally always found this to be confusing until I really learned architecture by actually using it. In this video, I will explain the state transfer in REST by example. 

In a stateful architecture, the client makes a request to the server and the server “remembers” the client. The next request from the client will be retrieved from the state stored locally in the server. The pros of this are the server will pick up where they left off with each request, so request throughput is higher in stateful architecture. Another advantage of the client can send less data through the wire too. The cons of this architecture are if the server is down, the request cannot be fulfilled and the client is forced to disconnect and reconnect again to another server anyway and go through the entire process.

However, REST is a stateless architecture where every request is responsible to “bring” as much information about the client as possible for the server to reconstruct the state from scratch. This means that no matter what server the client hit, the request will always be fulfilled so you get higher availability. This is where the state transfer in REST came from. Disadvantages of this architecture is the client now sends more information through the wire, thus your application consumes more bandwidth as a result, this is less of an issue with the introduction of protocol buffers and HTTP2. Another disadvantage is the throughput goes down since each request has to wait for the state to “replay” and get constructed. 

Hope you guys enjoy the video
Check out the other content of this channel




For more software engineering videos click this link www.husseinnasser.com/softwareengineering

Hussein Nasser



Thursday, October 25, 2018

Announcing my Podcast

Podcast

If you are interested in GIS and Software Engineering, you will enjoy my podcast. Check it out! 


Saturday, October 6, 2018

Product Architect vs Solutions Architect

In this episode of #softwaretalk, we discuss the differences between the software product architect and a solutions architect. We start by defining the difference between a software product and a solution. Then we discuss the responsibilities of product architect vs solution architect.

If you are interested to be a solution or product architect or engineer you came to the right place.

Cheers
Hussein




Friday, October 5, 2018

Reverse Engineering Twitter

This is our reverse engineering series where we pick a mainstream app and try to understand how the developers built it, how the APIs are designed on the backend and how the front-end user experience is designed for performance, efficiency and business decisions. We can become better software engineers by learning how the likes of Google, Facebook, and Twitter are building APIs and user experiences. Obviously, I might make a mistake here and there but that is part of the fun! In this episode, we try to reverse engineer the Twitter feed. We discuss how the IOS Twitter App is doing efficient thumbnail caching and insane client queuing of tweets, likes and retweets actions. Enjoy!




Enjoy!
Hussein

Thursday, October 4, 2018

#Geodatabase Talk - Episode 9 - SDE (Spatial Database Engine)

The #geodatabase is a technology developed by #Esri that abstracts the underlying storage medium into another layer. By doing that you get interesting functionalities like domains, feature classes, tables, feature datasets across multiple databases from file based to enterprise RDBMS like Oracle, PostgreSQL, SQLServer DB2 etc. The communication between the client and the enterprise geodatabase is done through the spatial database engine. We explain that layer in this episode.




Boost your GIS knowledge by grabbing my books ——————————————————————— - [x] Learning ArcGIS Geodatabase https://goo.gl/csQdCX - [x] Administering ArcGIS for Server https://goo.gl/zvYCRg - [x] ArcGIS By Example https://goo.gl/yJKSqB - [x] Building Web Applications with ArcGIS https://goo.gl/brgKUJ Watch my top GIS videos ———————————— - [x] Support IGeometry on paypal: https://goo.gl/wZ8hSh - [x] Full ArcGIS Javascript API Series Playlist http://bit.ly/2zf7G80 - [x] Full Multi-User Geodatabase Playlist https://goo.gl/nSgYnM - [x] Full ArcGIS Pro 2.x Playlist https://goo.gl/2j4NoZ - [x] Full ArcGIS By Example (C#) [Phonatech] Playlist https://goo.gl/FwdrHa - [x] Full ArcGIS Server Playlist https://goo.gl/nkfM6Q


Monday, October 1, 2018

Is Coding Easy?

Welcome to the first episode of software engineering talk. This series we pick a topic and casually talk about it. In today’s episode, we try to answer the question is Coding easy?


Intro: 0:00
Easy vs. Simple 3:20
Building a profile page example: 3:55
Database Level challenges: 6:00
Database Indexes: 8:00
SELECT * FROM: 8:55
Be Empathic of all software actors: 10:20

Cheers!
Hussein Nasser





Sunday, September 30, 2018

How to become a Better Software Engineer?

There is no secret, no magic potion, no pill or book or a “new” programming language that will make you a better software engineer. To be a better software engineer you have to write more software. Write silly software, write fart software, write stupid software, write bad performant software. Write enough software to give the edge to be better than other software engineers and software developers.

Enjoy the video!

Hussein


Sunday, September 9, 2018

MIME sniffing (Explained by Example)

Any content that is served through HTTP web “should” include meta data about its type. This is so the browser/client knows what to do with it, if the content type header is an image it will preview it, if it is HTML it will render it and execute any javascript code.

Content type however is optional and web masters sometimes don’t set it, which leave the browsers wondering about the content type it is consuming. So browsers started consuming the actual content and parse it in order to detect the type.

However, this caused security concerns that we explain in this video! So to prevent sniffing, web servers can return X-Content-Type-Options: nosniff which opts out browsers from sniffing the content.

Media types:
https://en.wikipedia.org/wiki/Media_type#Common_examples







Thursday, September 6, 2018

Administering ArcGIS for Server by Hussein Nasser



 Buy ArcGIS by Example



ArcGIS for Server is a new technology that has been developed to bring geographically-enabled information from multiple sources into one single platform and make it available for sharing services. Server supports many types of services, and the beauty of this technology is that it has an edge over other products, as the source of information can be directly plugged into Server without the need to change or migrate the existing infrastructure.
Administering ArcGIS for Server teaches you the mechanics of ArcGIS for Server, equipping you with the skills to not only install and configure Server, but to do it efficiently to achieve effective results. You will also learn how to plan, analyze, design, and finally publish and consume GIS services from various platforms including mobile and tablets.
We start by installing Server and authoring and consuming GIS services. We then move on to planning services before showing you how to optimize, secure, and debug them.
One of the hot topics in this book is the optimizing of GIS services, which will help you manage resources efficiently. You will also learn how to apply multiple security mechanisms on ArcGIS for Server and safely expose the services to the public in a secure manner.
Administering ArcGIS for Server will help you prepare a robust Server infrastructure for your organization.

Thank you guys for buying my book! Enjoy it and check out my 200+ free video tutorials on IGeometry YouTube channel. 






Building Web Applications with ArcGIS Javascript 3.x Book by Hussein Nasser



 Buy ArcGIS by Example



ArcGIS allows users to create rich maps and applications that interact with services hosted on ArcGIS for Server and ArcGIS Online. This book will help you to understand the ArcGIS JavaScript API in a fun way while building a real-life project.
This book revolves around a fictional project called Bestaurants. The journey starts with a description of the project requirements before moving on to designing and sketching an interface of what the website will look like. Then, gradually with each chapter, you will add a single functionality until the full ArcGIS application is completed.
By the end of this book, you will have built an entire ArcGIS web application from scratch. An additional bonus appendix is included on how to build ArcGIS applications with ArcGIS Online–a new and extremely useful service offered by Esri.

Thank you guys for buying my book! Enjoy it and check out my 200+ free video tutorials on IGeometry YouTube channel. 

Learn ArcGIS Geodatabases book by Hussein Nasser



 Buy ArcGIS by Example


Who This Book Is For

This book is aimed at geospatial developers who want to work with ArcGIS geodatabases as well as manage them. Having knowledge of building a geodatabase from scratch isn't a must; Learning ArcGIS Geodatabases is ideal for those who want to use ArcGIS geodatabase for the first time, or for those who want to migrate from their existing legacy database to a geodatabase.

What You Will Learn

  • Explore the benefits of geodatabases with practical illustrations
  • Work with geodatabase datasets covering feature classes, tables, relationship classes, coverage, and annotations
  • Model your geodatabase by creating a sturdy design that can sustain large edits and decrease maintenance
  • Discover various tools to optimize queries and response time, which will help you to fine-tune your geodatabase
  • Utilize Python scripting to author your geodatabase programmatically
  • Set up and configure a full-fledged networked enterprise geodatabase using ArcSDE technology
  • Add programming flavors to your geodatabase using Python

In Detail

ArcGIS is an industry standard for geospatial development and management. A geodatabase is the database used to store and manage the spatial data.
Learning ArcGIS Geodatabases offers a comprehensive working and practical experience for readers who are interested in knowing about ArcGIS. The initial chapters guide you through authoring geodatabases and creating a geodatabase schema and datasets. Then, the book focuses extensively on modeling and optimizing geodatabases.
Finally, you will be able to work comfortably with datasets, annotations, and relationship classes, making it easier to migrate from a legacy database to an ArcGIS geodatabase.

Thank you guys for buying my book! Enjoy it and check out my 200+ free video tutorials on IGeometry YouTube channel. 






Wednesday, September 5, 2018

Reverse Engineering the YouTube App User Experience

This is our reverse engineering series where we pick up a main stream app and try to understand how it works, how the APIs are built on the backend and how the user experience is designed for performance, efficiency and user experience.
Today’s app is YouTube and the API is videos list and how youtube is doing paging and caching the thumbnails to avoid unbounded requests. We find out the page size of youtube API (spoiler alert its 30)







Sunday, August 19, 2018

Are HTTP E-Tags Bad?


HTTP ETag caching is a mechanism to validate http web cache, when server detects the tag it responds with a tiny 304 Not Modified response instead of the regular 200. They have great advantages in making web pages perform better. However they also have some cons, enough to make people shy from using them and completely strip them from their headers.

In this video will explain how E-Tags work, their pros and cons and attempt to answer the question are E-Tags bad?

Click here for the full video 




Wednesday, August 15, 2018

#Geodatabase Talk - Episode 4 - Versioning

The #geodatabase is a technology developed by #Esri that abstracts the underlying storage medium into another layer. By doing that you get interesting functionalities like domains, feature classes, tables, feature datasets across multiple databases from file based to enterprise RDBMS like Oracle, PostgreSQL, SQLServer DB2 etc.

I talk about #GeodatabaseVersioning in this episode!







Boost your GIS knowledge by grabbing my books
———————————————————————

- [x] Learning ArcGIS Geodatabase https://goo.gl/csQdCX
- [x] Administering ArcGIS for Server https://goo.gl/zvYCRg
- [x] ArcGIS By Example https://goo.gl/yJKSqB
- [x] Building Web Applications with ArcGIS https://goo.gl/brgKUJ


Watch my top GIS videos
————————————

- [x] Support IGeometry on paypal: https://goo.gl/wZ8hSh
- [x] Full ArcGIS Javascript API Series Playlist http://bit.ly/2zf7G80
- [x] Full Multi-User Geodatabase Playlist https://goo.gl/nSgYnM
- [x] Full ArcGIS Pro 2.x Playlist https://goo.gl/2j4NoZ
- [x] Full ArcGIS By Example (C#) [Phonatech] Playlist https://goo.gl/FwdrHa
- [x] Full ArcGIS Server Playlist https://goo.gl/nkfM6Q

Sunday, August 12, 2018

Push vs Pull Notifications (Explained by Example)

Notifications have become part of our daily life. We receive them almost every minute on our phones, tablets and computers. As software engineers, it is good to understand how notifications work under the hood, and what different type of notifications there are (mainly push and pull notifications), pros and cons of each.


Wednesday, August 8, 2018

Synchronous vs Asynchronous Clients (Explained by Example)

In this video we discuss the difference between synchronous and asynchronous user experiences. What are the advantages and disadvantages of both. We have picked YouTube uploading page as an example for this video as it perfectly describes the asynchronous nature of user experiences. We explain how that page would have been written if it was synchronous.
Question of the day: Do you code prefer the synchronous or asynchronous pattern and why? Thanks!



Sunday, August 5, 2018

Geodatabase Talk Episode 2

The geodatabase is a technology developed by Esri that abstracts the underlying storage medium into another layer. By doing that you get interesting functionalities like domains, feature classes, tables, feature datasets across multiple databases from file based to enterprise RDBMS like Oracle, PostgreSQL, SQLServer DB2 etc. This episode we talk about the table abstraction in the geodatabase. Boost your GIS knowledge by grabbing my books ——————————————————————— - [x] Learning ArcGIS Geodatabase https://goo.gl/csQdCX - [x] Administering ArcGIS for Server https://goo.gl/zvYCRg - [x] ArcGIS By Example  https://goo.gl/yJKSqB - [x] Building Web Applications with ArcGIS https://goo.gl/brgKUJ Watch my top GIS videos ———————————— - [x] Support IGeometry on paypal: https://goo.gl/wZ8hSh - [x] Full ArcGIS Javascript API Series Playlist http://bit.ly/2zf7G80 - [x] Full Multi-User Geodatabase Playlist https://goo.gl/nSgYnM - [x] Full ArcGIS Pro 2.x Playlist https://goo.gl/2j4NoZ - [x] Full ArcGIS By Example (C#) [Phonatech] Playlist https://goo.gl/FwdrHa - [x] Full ArcGIS Server Playlist https://goo.gl/nkfM6Q




Saturday, August 4, 2018

Geodatabase Talk Episode 1


The geodatabase is a technology developed by Esri that abstracts the underlying storage medium into another layer. By doing that you get interesting functionalities like domains, feature classes, tables, feature datasets across multiple databases from file based to enterprise RDBMS like Oracle, PostgreSQL, SQLServer DB2 etc. Boost your GIS knowledge by grabbing my books ——————————————————————— - [x] Learning ArcGIS Geodatabase
https://goo.gl/csQdCX - [x] Administering ArcGIS for Server https://goo.gl/zvYCRg - [x] ArcGIS By Example  https://goo.gl/yJKSqB - [x] Building Web Applications with ArcGIS https://goo.gl/brgKUJ Watch my top GIS videos ———————————— - [x] Support IGeometry on paypal: https://goo.gl/wZ8hSh - [x] Full ArcGIS Javascript API Series Playlist http://bit.ly/2zf7G80 - [x] Full Multi-User Geodatabase Playlist https://goo.gl/nSgYnM - [x] Full ArcGIS Pro 2.x Playlist https://goo.gl/2j4NoZ - [x] Full ArcGIS By Example (C#) [Phonatech] Playlist https://goo.gl/FwdrHa - [x] Full ArcGIS Server Playlist https://goo.gl/nkfM6Q




Thursday, July 12, 2018

Dirty Read Phenomena - (Explained by Example)

In IGeometry we discuss interesting software engineering topics by example. In this video we explain isolation, the third property of a relational database. Problems arise from isolation are many, and we discuss the first one which is Dirty read. We illustrate this using instagram as example .


Software Engineering Content on IGeometry —————————————————————— - [x] Stateful vs Stateless Applications  https://goo.gl/Fubfi6 - [x] Database ACID - Atomicity https://goo.gl/ER9PPj - [x] Database ACID - Consistency https://goo.gl/VpLAeN - [x] Database ACID - Dirty read https://goo.gl/88wf6y - [x] Database ACID - Phantom read https://goo.gl/rnyzuA - [x] Database ACID - Non repeatable read https://goo.gl/8kgEjN - [x] Database ACID - Read uncommitted https://goo.gl/4igWUq - [x] Database ACID - Read committed https://goo.gl/twgAKL - [x] Database ACID - Repeatable read https://goo.gl/vDcP6M - [x] Virtual Machines vs Containers https://goo.gl/fiECVb Boost your GIS knowledge by grabbing my books ——————————————————————— - [x] Learning ArcGIS Geodatabase https://goo.gl/csQdCX - [x] Administering ArcGIS for Server https://goo.gl/zvYCRg - [x] ArcGIS By Example  https://goo.gl/yJKSqB - [x] Building Web Applications with ArcGIS https://goo.gl/brgKUJ Watch my top GIS videos ———————————— - [x] Support IGeometry on paypal: https://goo.gl/wZ8hSh - [x] Full ArcGIS Javascript API Series Playlist http://bit.ly/2zf7G80 - [x] Full Multi-User Geodatabase Playlist https://goo.gl/nSgYnM - [x] Full ArcGIS Pro 2.x Playlist https://goo.gl/2j4NoZ - [x] Full ArcGIS By Example (C#) [Phonatech] Playlist https://goo.gl/FwdrHa - [x] Full ArcGIS Server Playlist https://goo.gl/nkfM6Q

Sunday, July 1, 2018

Proxy vs. Reverse Proxy (Explained by Example)

In this episode we explain the difference between a Proxy (Forward proxy) and Reverse Proxy by example, and list all the benefits of each server.





Saturday, April 28, 2018

Scalability in REST API (Explained by Example)

In this video we explain how stateless REST API (Representational state transfer) is scalable. We try to explain this by example. We bring the original problem of coupled client/server architecture and how REST API solved it by de-coupling the client from server. This is called Separation of Concerns or SoC and what makes rest truly Platform Independent.


Online diagram tool used in this video: Http://www.gliffy.com


Stay Awesome
-Hussein




Sunday, March 11, 2018

Software Engineer Reacts YouTube Series

This is a new series that I started where I pick a popular app and i react to how it was developed and try to guess the technologies that have been implemented. What requests do the application make? inspect the results and try to guess why the devs decide to show the results in this way versus another. If you are interested in user experience and software engineering consider checking this series out.

The first episode is Instagram! Enjoy guys let me know what you think about this and do suggest another app! Want to watch more Software Engineering Reacts videos?


Sunday, March 4, 2018

Who is Hussein Nasser?


I recently recorded a video talking about my story, where did I come from? what did I study? what jobs did I have? Why did I start my blog and Youtube Channel? How did I write my books? How did I move to the United States? and much more.. 

Stay Awesome guys and Enjoy the video.
Hussein