Wednesday, March 15, 2023

Watch Harry Potter movies in Chronological Order (not release date)

This order follows the timeline of the events that take place in the Wizarding World, as opposed to the order in which the movies were released. Note that the Fantastic Beasts films are set before the events of the Harry Potter series, and can be watched as a prequel to the main story. 

  1. Fantastic Beasts and Where to Find Them (set in 1926)
  2. Fantastic Beasts: The Crimes of Grindelwald (set in 1927)
  3. Harry Potter and the Philosopher's Stone (set in 1991-1992)
  4. Harry Potter and the Chamber of Secrets (set in 1992-1993)
  5. Harry Potter and the Prisoner of Azkaban (set in 1993-1994)
  6. Harry Potter and the Goblet of Fire (set in 1994-1995)
  7. Harry Potter and the Order of Phoenix (set in 1995-1996)
  8. Harry Potter and the Half-Blood Prince (set in 1996-1997)
  9. Harry Potter and the Deathly Hallows - Part 1 (set in 1997-1998)
  10. Harry Potter and the Deathly Hallows - Part 2 (set in 1998-1999)


Tuesday, March 14, 2023

Watch Star Wars in Chronological order (not release date)

If you want to watch the Star Wars movies and TV series in chronological order, then you should follow this sequence:

  1. Star Wars: Episode I - The Phantom Menace (set in 32 BBY)
  2. Star Wars: Episode II - Attack of the Clones (fixed in 22 BBY)
  3. Star Wars: The Clone Wars (animated series, takes place between Episodes II and III)
  4. Star Wars: Episode III - Revenge of the Sith (set in 19 BBY)
  5. Star Wars: The Bad Batch (animated series)
  6. Solo: A Star Wars Story (set between Episodes III and IV)
  7. Star Wars: Obi-wan Kenobi
  8. Star Wars Rebels (animated series, takes place between Episodes III and IV)
  9. Star Wars: Andor (TV series)
  10. Rogue One: A Star Wars Story (set just before Episode IV)
  11. Star Wars: Episode IV - A New Hope (set in 0 BBY)
  12. Star Wars: Episode V - The Empire Strikes Back (set in 3 ABY)
  13. Star Wars: Episode VI - Return of the Jedi (set in 4 ABY)
  14. Star Wars: The Mandalorian (TV series set after Episode VI)
  15. Star Wars: The Book of Boba Fett (TV series)
  16. Star Wars: Resistance (animated series)
  17. Star Wars: Episode VII - The Force Awakens 
  18. Star Wars: Episode VIII - The Last Jedi 
  19. Star Wars: Episode IX - The Rise of  Skywalker

This order follows the timeline of the events in the Star Wars universe, starting with the earliest events and progressing to the latest. Note that the TV series (The Clone Wars, Rebels, and The Mandalorian) are integrated into the timeline, with their events occurring between the movies. 

Monday, March 13, 2023

Watch Lord of the Rings in Chronological order (not release date)

 If you want to watch the Lord of the Rings movies in chronological order, then you should follow this sequence:

  1. The Hobbit: An Unexpected Journey (set in 2941 Third Age)
  2. The Hobbit: The Desolation of Smaug (set in 2942 Third Age)
  3. The Hobbit: The Battle of the Five Armies (set in 2943 Third Age)
  4. The Lord of the Rings: The Fellowship of the Ring (set in 3018-3019 Third Age)
  5. The Lord of the Rings: The Two Towers (set in 3019 Third Age)
  6. The Lord of the Rings: The Return of the King (set in 3019 Third Age)

This order follows the timeline of the events in Middle-earth, starting with the earliest events in The Hobbit and progressing through to the end of the War of the Ring in The Return of the King. Note that The Hobbit movies were released after The Lord of the Rings trilogy, but they take place before the events of the trilogy in the story's timeline.

Sunday, October 17, 2021

Medium membership bypass, read membership-only articles

Situation:

Opening an article will be prompted with the following

Profile Name, read more from Article Author Name — and everyone else on Medium.

You’ve read all your free member-only stories, become a member to get unlimited access. Your membership fee supports Article Author Name and the voices you want to hear more from.

Solution:
Step 1 : Copy URL of the fenced content
Step 2 : Open Google Chrome, click File
Step 3 : Click New Incognito Window
Step 4 : In Incognito mode, paste copied URL in the address bar.



Done. This technique can be used with browsers that have private / invisible modes e.g Brave, Mozilla Firefox

Wednesday, October 13, 2021

How to Verify downloads with SHA checksum using macOS

 

Step 1: 

Download file from official site or repository and ensure to get the corresponding SHA checksum

For reference, we will be using the following

Downloaded filename : name_of_downloaded_file

Downloaded file's checksum : sha_checksum_of_downloaded_file


Step 2:

Open Terminal


Step 3: 

Run the following command in the Terminal from the directory where file was downloaded

> echo "sha_checksum_of_downloaded_file" *name_of_downloaded_file | shasum -a 256 --check


Step 4: 

Check output or response after executing above command. You should get similar output as below

name_of_downloaded_file: OK


Step 5: Done.



Example (taken from Ubuntu site - https://ubuntu.com/download/server)

> echo "f8e3086f3cea0fb3fefb29937ab5ed9d19e767079633960ccb50e76153effc98 *ubuntu-20.04.3-live-server-amd64.iso" | shasum -a 256 --check

ubuntu-20.04.3-live-server-amd64.iso: OK

Tuesday, October 12, 2021

Flutter : Change Package Name and Bundle ID (iOS, Android, macOS, Linux) using rename package

Procedure for Renaming AppName and Package Name

Example (Current Attributes):

Project Name: projectname

Android: Package Name e.g. com.geekdish.projectname

iOS: Bundle ID e.g com.geekdish.projectname


Step 1: Activate the rename package

From Android Studio, open Terminal and execute the following

> flutter pub global activate rename
Resolving dependencies...
+ args 2.3.0
+ logger 1.1.0
+ rename 1.3.1
Downloading rename 1.3.1...
Downloading logger 1.1.0...
Building package executables...
Built rename:rename.
Installed executable rename.
Warning: Pub installs executables into $HOME/.pub-cache/bin, which is not on your path.
You can fix that by adding this to your shell's config file (.bashrc, .bash_profile, etc.): 
  export PATH="$PATH":"$HOME/.pub-cache/bin"

Activated rename 1.3.1. 

Documents/DEV/flutter took 7s 


Step 2: To change Package name and/or Bundle Id (e.g. com.geekdish.newprojectname):

            Rename package using rename tool

> flutter pub global run rename --bundleId com.geekdish.projectname


Step 3: Verify changes

For Android, in the Android Studio/<appname>/android/app/build.gradle

Check the application Id attribute under defaultConfig element, see below


defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.geekdish.newflutterproject"
minSdkVersion 16
targetSdkVersion 30
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}

For iOS, in Android Studio, right click <app name>/ios open in Xcode

Click Runner, you will see in the General>Identity>Bundle Identifier the new bundleId com.geekdish.projectname

For macOS, in the Android Studio/<appname>/maos/Runner/Configs/AppInfo.xcconfig

Check the PRODUCT_BUNDLE_IDENTIFIER attribute, see below

// Application-level settings for the Runner target.
//
// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the
// future. If not, the values below would default to using the project name when this becomes a
// 'flutter create' template.

// The application's name. By default this is also the title of the Flutter window.
PRODUCT_NAME = newflutterproject

// The application's bundle identifier
PRODUCT_BUNDLE_IDENTIFIER = com.geekdish.newappname


Step 4: To change Application Name (e.g. newappname):

            Rename appName using rename tool

> flutter pub global run rename --appname newappname


Step 5: To verify changes:

For Android, in the Android Studio/<appname>/android/app/src/main/AndroidManifest.xml

Check the android:label= attribute under <manifest>/<application> element, see below

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.geekdish.newprojectname">
<application
android:label="newappname"
android:icon="@mipmap/ic_launcher">
<activity

For iOS, in the Android Studio/<appname>/ios/Runner/Info.plist

Check the <string> attribute under <dict>/<key>/<CFBundleName> element, see below

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>newappname</string>

For macOS, in the Android Studio/<appname>/maos/Runner/Configs/AppInfo.xcconfig

Check the PRODUCT_NAME  attribute, see below

// Application-level settings for the Runner target.
//
// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the
// future. If not, the values below would default to using the project name when this becomes a
// 'flutter create' template.

// The application's name. By default this is also the title of the Flutter window.
PRODUCT_NAME = newflutterproject



Saturday, October 9, 2021

Change Launcher icon for Flutter apps for both iOS and Android using Android Studio on macOS

 

Create your own icon (preferably 1024x1024 size)

You may use the following tools:

    Android Icon Generator  https://romannurik.githu.io/AndroidAssetStudio

    App Icon Generator https://appicon.co

Using App Icon Generator

Goto https://appicon.co

Drag & drop your icon to this App Icon Generator site.

Select all the platforms to be generated

it will generate and download the file AppIcons.zip

The compressed file will include folders android (for Android) and Assets.xcassets (for iOS)

Using the generated icons:

Inside the zip file are the following for Android: 

android 

android>mipmap-mdpl (smallest)

anndroid>mipmal-xxxhdpi (largest)

Inside the zip file are the following for iOS:  

Assets.xcassets

Assets.xcassets>

Assets.xcassets>


For Android:

Right-click the Android Studio>(project folder)>android/app/src/main/res folder, select Open in>Finder







Select all folders which name that matches those in the compressed file for android and throw them in the trash, then replace those with the folders in the compressed file for android.
copy all folders in AppIcons.zip>android/(folders) to (project)>android/app/main/src/res/

To adjust the image/icon, You can open image asset

Right click android and select Flutter>Open Android Module in Android Studio

Once android window is open, you may choose res and right click to choose Image Asset




Once opened you can pick the Source Asset/Path for the starting image once Finder dialog open , you can select the app_icon.png you get to resize the icon (e.g. for rounded icon, square etc)

once done adjusting click next, image asset will replace existinng with new one by clicking finish


For iOS:

Right-click the Android Studio>(project folder)>ios/Runner/Assets.xcassets folder, select Open in>Finder

Once revealed, delete (cmd+backspace) the Assets.xcassets from the runner folder 

Once deleted, Select the Assets.xcassets folder from the AppIcon.zip file and drag to the destination Runner folder of the project


Other Option : Using flutter_launcher_icons package

Create icon

Create folder for the new icon in the project directory e.g. (project folder)/assets/icon

Add icon to the Android Studio>(project folder)>/assets/icon/ folder

Then in (project folder)/pubspec.yaml add the following (except the greyed out lines ie flutter_test)

dev_dependencies:
flutter_launcher_icons: ^0.9.2

flutter_test:
sdk: flutter


flutter_icons:
android: true
ios: true
image_path: "assets/icon/icon.png"

Replace "/assets/icon/icon.png" with the name of your icon

Save edited pubspec.yaml.

Execute Pub get from Android studio (when in pubspec.yaml editor) or via terminal type

> flutter pub get

Running "flutter pub get" in flutter_app...                       739ms

Process finished with exit code 0

Open Terminal from Android Studio (Option+F12) or from Android Studio / Tool Window, click Terminal
Execute the following command:

> flutter pub run flutter_launcher_icons:main

  ════════════════════════════════════════════
     FLUTTER LAUNCHER ICONS (v0.9.1)                               
  ════════════════════════════════════════════
  
• Creating default icons Android
• Overwriting the default Android launcher icon with a new icon

WARNING: Icons with alpha channel are not allowed in the Apple App Store.
Set "remove_alpha_ios: true" to remove it.

• Overwriting default iOS launcher icon with new icon

✓ Successfully generated launcher icons

(app project folder)/(app name) took 6s 
Done.