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 



Saturday, March 3, 2018

Why is JSON popular?

I asked my self this question before and I never understood the reason why JSON was popular until I actually worked with JSON and javascript. For someone who worked with XML and C#, I really appreciated JSON. The beauty of reading JSON of Javascript is so satisfying. Here is a podcast enjoy.



Monday, January 29, 2018

git by Example

Some of you guys asked me to do a video on git and how to get started! here is it enjoy ! I called it git by Example! 

We discuss git by example, we explain all what you need to get started and 15 minutes you have are up and running. Today’s command is git clone, git add, git push.

If you have all requirements (Git command line, github account) you can jump to the actual work
3:20














Hussein Nasser


Sunday, January 28, 2018

Stateful vs Stateless Applications (Explained by Example)

If you ever wondered the difference between stateless and stateful applications, REST, horizontal scaling versus vertical scaling? We discuss all those in a small example. Hope you guys enjoy this episode. We explain the advantages and disadvantages of each version of the application.





Tuesday, January 23, 2018

What is a Non-Repeatable Read?



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 another one which is Non-Repeatable. We illustrate this using instagram as example .










Saturday, January 13, 2018

What Comes First, User Experience or Software Architecture?



Do you architect the system (Database, Services, etc.) first and then build the user experience for your end user clients (Mobile Apps, Web Apps)? Or Are you the kind of engineer that design the user experience first and let it drive the rest of system? We talk about advantages and disadvantages of both!


We are using Instagram as a use case in our analysis.

Enjoy
Stay Awesome
Hussein Nasser 
Follow me on the rest of the social media




Friday, January 12, 2018

readAllText on Nodejs with Promise

Coming from .NET background and recently started working with Javascript and Nodejs I really miss the File.IO.readAllText in .NET  I find it really useful when reading small texts. The fs module in Nodejs is OK but I couldn't find a promise version of the fs so I wrote a quick boiler plate. Been a while since I posted any code in this blog. Here goes

Code here

https://github.com/hnasr/nodejshelper/blob/master/readAllText.js


Here is how to consume it

https://github.com/hnasr/nodejshelper/blob/master/index.js



Wednesday, January 10, 2018

IGeometry Podcast

This is exciting. Always wanted to do a Podcast and I'm glad I did in 2018. I'm trying out Anchor as a vehicle for this podcast might change it later. This podcast will be a outlet for my thoughts, ideas, educational topics on software engineers. Suggest any topics you guys want to discuss in the comments section.
Follow my Anchor.fm RSS Podcast Feed here https://anchor.fm/s/1eb6d14/podcast/rss

or If you Prefer to listen to the podcast on YouTube here

https://www.youtube.com/watch?v=fBO_un9szlc&list=PLQnljOFTspQWBwTXs-JvK7uJkRYb64-w5&index=1



You guys take care
Hussein Nasser

Tuesday, January 9, 2018

Learn Programming with VB.NET Tutorial














Full Programming with VB.NET playlist




Getting started with programming using .NET. All you need is a computer with a windows to learn programming in a fun way. We learn programming by example here,  our example here is to build a Pizza ordering system.



We are adding new functionalities to this program episode by episode and learn programming in a fun way as we go!



Since I started recording GIS videos late 2014, you guys were asking me to start a vanilla series to just discuss programming in the same approach we were doing our ArcObjects. You guys were emailing me, mentioning me on twitter and youtube comments to do this.



This is for all of you. I sincerely hope you enjoy it, this is the first episode, will continue to post new videos whenever I find a gap.



You don't need to know anything about programming to watch this series, this is where you start, all you need to get started is explained in the video. Follow this playlist, subscribe to the channel to get constant updates whenever I post new episode to stay up to date



A new series of episodes to introduce folks to programming with .NET and specially VB.. So we will create form projects explain what a project is .. what is the output ..



First episode we talk about .NET framework, installation,

write our first project that says Hello world! on a form

Talk about variables



What do we need to start coding?

- Windows OS, 8.1, 7, XP, Vista , 10

- IDE, Visual Studio Express 2013 for Desktop.

Download from here

https://www.microsoft.com/en-us/download/details.aspx?id=44914



Stay Awesome

Hussein Nasser

www.husseinnasser.com


Monday, January 1, 2018

Javascript By Example - Level 1 - Building a Calculator

Want to learn a programming language? You don't need to have any programming skills, All you need is a laptop. Learn javascript by building an application in the process. Proven method of learning by doing,  Enjoy Javascript by Example series

Full Javascript By Example Series Playlist https://goo.gl/7ZF5TR
3 words, just get started, and that is what we did.

Cheers! Hussein Nasser