MahmoudAshours / 2021Plan

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

2021

2021Plan

This repository is to conclude each step in 2021 with complete details.

This list of topics won't be updated , but the details of each topic will. This may include courses , TODO projects , etc..

I'll be breaking each topic to pieces including:

  • Brief introduction about each topic.
  • What resources I used to learn this topic.
  • Open source projects I've made on this topic.
  • Tips,tricks about this topic.

I'll work to finish at least 3/4 of the topics!

Disclamer

This is my final year at university , I could go 4 months without updating because of graduation project and stuff. but when I'm back I'll push my updates through the last month or so.

Topics :

Extensions

Flutter & Dart

  • Flutter & FFMPEG
  • Flutter Redux
  • Flutter Bloc
  • Python in Flutter
  • Testing in Flutter
  • Testing in dart
  • Flutter Desktop app for linux

Linux

  • Make a native linux app
  • Linux administration course
  • Ethical hacking & Penetration testing

VScode extensions

  • At least 2 VScode extensions. (with articles)

Chrome extensions

  • At least 2 Chrome ( brave ) extensions. (with articles)
  • Using Flutter to make chrome extension

Flutter

  • Complete guide of FFMPEG (learning and using it in flutter)
  • Mastering streams with Redux in Flutter.
  • Mastering streams with Bloc in Flutter
  • Complete guide of using python scripts in flutter
  • Publish at least 1 flutter application on store.
  • Updates on Copia.
  • Publish Flutter app on IOS
  • Testing in Flutter (Widget testing)

Dart

  • Testing in Dart.

FFMPEG

ffmpeg

Resources :

What is FFMPEG?

FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. It supports the most obscure ancient formats up to the cutting edge.

Flutter FFMPEG

flutterffmpeg

FFmpeg plugin for Flutter. Supports iOS and Android.

Resources :

Tracking progress :

  • Worked on a shell script on linux that uses FFMPEG
  • Working on FFMPEG rendering videos , audios in Moaref project.

Common issues

Design pattern

  • Design pattern course.

64391306-4f4b-4182-98e1-b20256a1d5aa CR0,0,750,750_PT0_SX300_V1_

Bought head first design patterns , I'll be implementing design pattern using Dart in this repository.

Linux

linux

TODO

  • Make a native linux app
  • Linux administration course
  • Flutter Desktop app
  • Ethical hacking & Penetration testing
  • Publish apps on snapcraft linux

Introduction

bash

I've started linux basics course which was mandatory at university. The course had a few topics about commands & how OS works in general.

This repo contains all of my scripts I worked on :

Book :

lbfh

I got the Linux basics for hackers book in order to increase the skill in linux also to know some security stuff.

Will be practicing basics of linux & Cyber security on Try Hack me

Hacking (Ethical / CyberSecurity / Pentesting)

markus-spiske-666905-unsplash

Inserts Vandetta mask

So, Ethical hacking is a structured hacking performed to expose vulnerabilities in a system, using tools and techniques with the organization's' knowledge. Which A white hat is , specializes in penetration testing and in other testing methodologies that ensures the security of an organization's information systems. Ethical hacking is a term meant to imply a broader category than just penetration testing.

Resources :

What is Pentesting?

pentest

A penetration test, also known as a pen test, is a simulated cyber attack against your computer system to check for exploitable vulnerabilities. In the context of web application security

Tools used in Pentesting

Data gathering :

  • Built with BuiltWith gives us the right amount of data mixed with intelligence to find prospects that matter. There's not a better tool to gain a competitive edge.

  • Certificate Enter an Identity (Domain Name, Organization Name, etc), a Certificate Fingerprint (SHA-1 or SHA-256)

  • The Harvester theHarvester is a very simple to use, yet powerful and effective tool designed to be used in the early stages of a penetration test or red team engagement. Use it for open source intelligence (OSINT) gathering to help determine a company's external threat landscape on the internet. The tool gathers emails, names, subdomains, IPs and URLs using

Hacking ( WIFI )

In chapter 14 of Linux basics for hackers , The author was talking about cracking a WIFI password ( though it's not the main scope of the book , but was intersting)

This will be a breif demnstration of WIFI(WPA2\PSK) password hacking :

*First : *

  • Download Kali linux

If you can't download Kali linux for some reason ( I have ubuntu ) , You can download all Kali linux libraries & tools using Katoolin

Why Kali Linux ?

The main reason is Kali Linux is used by hackers because it is a free OS and has over 600 tools for penetration testing and security analytics. We won't go deep in hacking/Cyber security but it's quite interesting using some of these tools!

Magamo Desktop application

Screen Shot 2021-09-18 at 10 45 12 PM

Magamo is a desktop application made in Flutter which runs on Android , IOS , MACOS , Linux also Windows. It's a basic white board application which can upload photos and explain or write on it.

Common issues :

Rust

Rust is blazingly fast and memory-efficient: with no runtime or garbage collector, it can power performance-critical services, run on embedded devices, and easily integrate with other languages.

Unity

  • Publish AR app with unity

Unity [AR]

augmented

What is AR?

Augmented reality (AR) is an interactive experience of a real-world environment where the objects that reside in the real world are enhanced by computer-generated perceptual information, sometimes across multiple sensory modalities, including visual, auditory, haptic, somatosensory and olfactory

What is Unity?

unity

Unity is the world’s most popular development platform for creating 2D and 3D multiplatform games and interactive experiences.

With advances in AR technology, these examples are not that different from what might already be available for your smartphone. Augmented reality is, in fact, readily available and being used in a myriad of ways including as Snapchat lenses, in apps that help you find your car in a crowded parking lot, and in variety of shopping apps that let you try on clothes without even leaving home.

Perhaps the most famous example of AR technology is the mobile app Pokemon Go, which was released in 2016 and quickly became an inescapable sensation. In the game, players locate and capture Pokemon characters that pop up in the real world—on your sidewalk, in a fountain, even in your own bathroom.

Augmented reality vs. Virtual reality

This is rather different from virtual reality. Virtual reality means computer-generated environments for you to interact with, and be immersed in. Augmented reality (also known as AR), adds to the reality you would ordinarily see rather than replacing it.

Resources for Ar foundation in Unity :

* Using Unity version < 20 , requires you to configure your gradle version at minimum of gradle 5.6.4

Courses :

Flutter & Unity :

Automation

Medium articles

100 Techincal article (Posted on Medium , LinkedIn , Leads platform)

  • Article 1 : Dirty state — The whole story
  • Article 2 : Wild cards?
  • Article 3 : Is null safety important?
  • Article 4 : Shell scripts in Flutter!
  • Article 5 : Dive into automation
  • Article 6 :
  • Article 7 :
  • Article 8 :
  • Article 9 :
  • Article 10 :
  • Article 11 :
  • Article 12 :
  • Article 13 :
  • Article 14 :
  • Article 15 :
  • Article 16 :
  • Article 17 :
  • Article 18 :
  • Article 19 :
  • Article 20 :
  • Article 21 :
  • Article 22 :
  • Article 23 :
  • Article 24 :
  • Article 25 :
  • Article 26 :
  • Article 27 :
  • Article 28 :
  • Article 29 :
  • Article 30 :
  • Article 31 :
  • Article 32 :
  • Article 33 :
  • Article 34 :
  • Article 35 :
  • Article 36 :
  • Article 37 :
  • Article 38 :
  • Article 39 :
  • Article 40 :
  • Article 41 :
  • Article 42 :
  • Article 43 :
  • Article 44 :
  • Article 45 :
  • Article 46 :
  • Article 47 :
  • Article 48 :
  • Article 49 :
  • Article 50 :
  • Article 51 :
  • Article 52 :
  • Article 53 :
  • Article 54 :
  • Article 55 :
  • Article 56 :
  • Article 57 :
  • Article 58 :
  • Article 59 :
  • Article 60 :
  • Article 61 :
  • Article 62 :
  • Article 63 :
  • Article 64 :
  • Article 65 :
  • Article 66 :
  • Article 67 :
  • Article 68 :
  • Article 69 :
  • Article 70 :
  • Article 71 :
  • Article 72 :
  • Article 73 :
  • Article 74 :
  • Article 75 :
  • Article 76 :
  • Article 77 :
  • Article 78 :
  • Article 79 :
  • Article 80 :
  • Article 81 :
  • Article 82 :
  • Article 83 :
  • Article 84 :
  • Article 85 :
  • Article 86 :
  • Article 87 :
  • Article 88 :
  • Article 89 :
  • Article 90 :
  • Article 91 :
  • Article 92 :
  • Article 93 :
  • Article 94 :
  • Article 95 :
  • Article 96 :
  • Article 97 :
  • Article 98 :
  • Article 99 :
  • Article 100 :

Embedded systems

Will make repo for it

GO

Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.

Talks :

Data Mining

Trolls

  • Making a python virus

Devops

  • Learning quick intro about docker , Devops etc..

Books

Each topic in every book can be written & summarized into an article.

  • Finishing Clean code book (with explanation on YT).
  • Finishing Linux Basics for hackers book.
  • Finishing Head first Design Patterns book.
  • Finishing Flutter recipes book.
  • Finishing Practical flutter book.
  • Finishing Think like a programmer

WatchOs

  • Complete mastering of Tizen OS
  • Publish Samsung gear faces

Javascript

  • JS course.

TypeScript

  • TS course.

Python

  • Introduction on Flask and its capabilities.

Flask

flask

Flask is a micro web framework written in Python. It is classified as a microframework because it does not require particular tools or libraries. It has no database abstraction layer, form validation, or any other components where pre-existing third-party libraries provide common functions. However, Flask supports extensions that can add application features as if they were implemented in Flask itself. Extensions exist for object-relational mappers, form validation, upload handling, various open authentication technologies and several common framework related tools

Resources :

Huawei Developement

  • Publish Huawei theme
  • Publish Huawei watch face
  • Publish app on Huwaei store

Open source

  • A complete git course.
  • A complete github course.

Random topics

Random topics are topics that weren't planned to do.

RegExp (Regular expression)

Can I add my own voice to TTS and can generate the paragraph with my own voice?

tts

ADB hacking

adb

ADB is a command line tool that lets you communicate with an Android device that is connected over USB, or with an emulator. It allows you to pull data from the device such as application log files, memory usage data, and push and pull applications.This is very useful when doing regression testing, as you can automate the whole process, from pulling the old application from the device to pushing a new application onto the device, and then testing the application itself.

Colorful comments in dart

Everyone is used to programs printing out output in a terminal that scrolls as new text appears, but that's not all your can do: your program can color your text, move the cursor up, down, left or right, or clear portions of the screen if you are going to re-print them later. This is what lets programs like Git implement its dynamic progress indicators, and Vim or Bash implement their editors that let you modify already-displayed text without scrolling the terminal.

How to call print() with colorful text to android studio console in flutter

Headless chrome

Headless Chrome is shipping in Chrome 59. It's a way to run the Chrome browser in a headless environment. Essentially, running Chrome without chrome! It brings all modern web platform features provided by Chromium and the Blink rendering engine to the command line.

Why is that useful?

A headless browser is a great tool for automated testing and server environments where you don't need a visible UI shell. For example, you may want to run some tests against a real web page, create a PDF of it, or just inspect how the browser renders an URL.

"Used this in scripting screenshots of websites"

Create DMG Macos

A shell script to build fancy DMGs.

Get YT videos srt

You can get YT srt files from video using :"https://www.youtube.com/api/timedtext?&lang=en&v=insert video id"

This is a port of the YoutubeExplode library from C#, most of the functions, doc comments, readme information, is taken from YoutubeExplode repository.

It used to build Youtube Downloader Flutter (A cross-platoform application to download video streams from youtube using this library & flutter)

StackOverFlow

stack

As a Developer students club lead , GDG member also I thrive become a GDE. I should help the community with every bit of information. This is to track my StackOverFlow answers. There's nothing expected like : answer 1000 questions on something!

profile for Mahmoud Ashour at Stack Overflow, Q&A for professional and enthusiast programmers

Daily problem solving challenges

ballons

Note : Solve whatever problem on any problem solving website. Using Dart , Python3 , C++ , JS & Shell script

Solving in more than 1 platform including : Hacker Rank , Leet code , Code Forces , Code wars , Code signal

profile for Mahmoud Ashour at Code wars, Q&A for professional and enthusiast programmers

profile for Mahmoud Ashour at Code wars, Q&A for professional and enthusiast programmers

profile for Mahmoud Ashour at Code wars, Q&A for professional and enthusiast programmers

In order to keep up the pace in all languages mentioned ,The ideal is that I'd like to give every website a week.

For example :

First week : Code wars using dart & Shell.

Second week : Code Forces using Cpp.

Third week : Hacker rank using python.

Fourth week : Leetcode using python.

Problems Solved :

"In shell, * represents all files in the current directory. So, in order to use * as a multiplication operator, we should escape it like *. If we directly use * in expr, we will get error message."

  • Day 31 : isCryptSolution

  • Day 32 :String Split and Join

  • Day 33 :Square(n) Sum

  • Day 34 :Add Two Digits

  • Day 35 :Getting started with conditionals

  • Day 36 :Middle of a Text File

  • Day 37 :Multiples of 3 or 5

  • Day 38 :centuryFromYear , More on Conditionals

  • Day 39 :Comparing Numbers

  • Day 40 :Schrödinger's Boolean (tricky)

  • Day 41 :Cut #1

  • Day 42 :Cut #2

  • Day 43 :Cut #3

  • Day 44 :Cut #4

  • Day 45 :Cut #5

  • Day 46 :Cut #6

  • Day 47 :Cut #7

  • Day 48 :Cut #8

  • Day 49 :Cut #9 (Finished the cut series problems)

  • Day 50 :Head of a Text File #1

  • Day 51 :Head of a Text File #2 , checkPalindrome , Set .add()

  • Day 52 :Count Odd Numbers below n , Find a string

  • Day 53 :Tuples

  • Day 54 :Capitalize!

  • Day 55 :Tail of a Text File #1

  • Day 56 :Tail of a Text File #2

  • Day 57 :Sort Command #1

  • Day 58 :Sort Command #2

  • Day 59 :Mutations

  • Day 60 :Sort Command #3 , Sort Command #4 , Sort Command #5 , 'Sort' command #6

  • Day 61 :'Sort' command #7

  • Day 62 :'Uniq' Command #1

  • Day 63 :'Uniq' Command #2

  • Day 64 :'Uniq' command #3

  • Day 65 :'Uniq' command #4

  • Day 66 :Read in an Array

  • Day 67 :Conditional Statements

  • Day 68 :Grasshopper - Messi goals function

  • Day 69 :Get the Middle Character

  • Day 70 :

  • Day 71 :

  • Day 72 :

  • Day 73 :

  • Day 74 :

  • Day 75 :

  • Day 76 :

  • Day 77 :

  • Day 78 :

  • Day 79 :

  • Day 80 :

  • Day 81 :

  • Day 82 :

  • Day 83 :

  • Day 84 :

  • Day 85 :

  • Day 86 :

  • Day 87 :

  • Day 88 :

  • Day 89 :

  • Day 90 :

  • Day 91 :

  • Day 92 :

  • Day 93 :

  • Day 94 :

  • Day 95 :

  • Day 96 :

  • Day 97 :

  • Day 98 :

  • Day 99 :

  • Day 100 :

  • Day 101 :

  • Day 102 :

  • Day 103 :

  • Day 104 :

  • Day 105 :

  • Day 106 :

  • Day 107 :

  • Day 108 :

  • Day 109 :

  • Day 110 :

  • Day 111 :

  • Day 112 :

  • Day 113 :

  • Day 114 :

  • Day 115 :

  • Day 116 :

  • Day 117 :

  • Day 118 :

  • Day 119 :

  • Day 120 :

  • Day 121 :

  • Day 122 :

  • Day 123 :

  • Day 124 :

  • Day 125 :

  • Day 126 :

  • Day 127 :

  • Day 128 :

  • Day 129 :

  • Day 130 :

  • Day 131 :

  • Day 132 :

  • Day 133 :

  • Day 134 :

  • Day 135 :

  • Day 136 :

  • Day 137 :

  • Day 138 :

  • Day 139 :

  • Day 140 :

  • Day 141 :

  • Day 142 :

  • Day 143 :

  • Day 144 :

  • Day 145 :

  • Day 146 :

  • Day 147 :

  • Day 148 :

  • Day 149 :

  • Day 150 :

  • Day 151 :

  • Day 152 :

  • Day 153 :

  • Day 154 :

  • Day 155 :

  • Day 156 :

  • Day 157 :

  • Day 158 :

  • Day 159 :

  • Day 160 :

  • Day 161 :

  • Day 162 :

  • Day 163 :

  • Day 164 :

  • Day 165 :

  • Day 166 :

  • Day 167 :

  • Day 168 :

  • Day 169 :

  • Day 170 :

  • Day 171 :

  • Day 172 :

  • Day 173 :

  • Day 174 :

  • Day 175 :

  • Day 176 :

  • Day 177 :

  • Day 178 :

  • Day 179 :

  • Day 180 :

  • Day 181 :

  • Day 182 :

  • Day 183 :

  • Day 184 :

  • Day 185 :

  • Day 186 :

  • Day 187 :

  • Day 188 :

  • Day 189 :

  • Day 190 :

  • Day 191 :

  • Day 192 :

  • Day 193 :

  • Day 194 :

  • Day 195 :

  • Day 196 :

  • Day 197 :

  • Day 198 :

  • Day 199 :

  • Day 200 :

  • Day 201 :

  • Day 202 :

  • Day 203 :

  • Day 204 :

  • Day 205 :

  • Day 206 :

  • Day 207 :

  • Day 208 :

  • Day 209 :

  • Day 210 :

  • Day 211 :

  • Day 212 :

  • Day 213 :

  • Day 214 :

  • Day 215 :

  • Day 216 :

  • Day 217 :

  • Day 218 :

  • Day 219 :

  • Day 220 :

  • Day 221 :

  • Day 222 :

  • Day 223 :

  • Day 224 :

  • Day 225 :

  • Day 226 :

  • Day 227 :

  • Day 228 :

  • Day 229 :

  • Day 230 :

  • Day 231 :

  • Day 232 :

  • Day 233 :

  • Day 234 :

  • Day 235 :

  • Day 236 :

  • Day 237 :

  • Day 238 :

  • Day 239 :

  • Day 240 :

  • Day 241 :

  • Day 242 :

  • Day 243 :

  • Day 244 :

  • Day 245 :

  • Day 246 :

  • Day 247 :

  • Day 248 :

  • Day 249 :

  • Day 250 :

  • Day 251 :

  • Day 252 :

  • Day 253 :

  • Day 254 :

  • Day 255 :

  • Day 256 :

  • Day 257 :

  • Day 258 :

  • Day 259 :

  • Day 260 :

  • Day 261 :

  • Day 262 :

  • Day 263 :

  • Day 264 :

  • Day 265 :

  • Day 266 :

  • Day 267 :

  • Day 268 :

  • Day 269 :

  • Day 270 :

  • Day 271 :

  • Day 272 :

  • Day 273 :

  • Day 274 :

  • Day 275 :

  • Day 276 :

  • Day 277 :

  • Day 278 :

  • Day 279 :

  • Day 280 :

  • Day 281 :

  • Day 282 :

  • Day 283 :

  • Day 284 :

  • Day 285 :

  • Day 286 :

  • Day 287 :

  • Day 288 :

  • Day 289 :

  • Day 290 :

  • Day 291 :

  • Day 292 :

  • Day 293 :

  • Day 294 :

  • Day 295 :

  • Day 296 :

  • Day 297 :

  • Day 298 :

  • Day 299 :

  • Day 300 :

  • Day 301 :

  • Day 302 :

  • Day 303 :

  • Day 304 :

  • Day 305 :

  • Day 306 :

  • Day 307 :

  • Day 308 :

  • Day 309 :

  • Day 310 :

  • Day 311 :

  • Day 312 :

  • Day 313 :

  • Day 314 :

  • Day 315 :

  • Day 316 :

  • Day 317 :

  • Day 318 :

  • Day 319 :

  • Day 320 :

  • Day 321 :

  • Day 322 :

  • Day 323 :

  • Day 324 :

  • Day 325 :

  • Day 326 :

  • Day 327 :

  • Day 328 :

  • Day 329 :

  • Day 330 :

  • Day 331 :

  • Day 332 :

  • Day 333 :

  • Day 334 :

  • Day 335 :

  • Day 336 :

  • Day 337 :

  • Day 338 :

  • Day 339 :

  • Day 340 :

  • Day 341 :

  • Day 342 :

  • Day 343 :

  • Day 344 :

  • Day 345 :

  • Day 346 :

  • Day 347 :

  • Day 348 :

  • Day 349 :

  • Day 350 :

  • Day 351 :

  • Day 352 :

  • Day 353 :

  • Day 354 :

  • Day 355 :

  • Day 356 :

  • Day 357 :

  • Day 358 :

  • Day 359 :

  • Day 360 :

  • Day 361 :

  • Day 362 :

  • Day 363 :

  • Day 364 :

  • Day 365 :

About