G33K-TRICKS: Computers
Showing posts with label Computers. Show all posts
Showing posts with label Computers. Show all posts

Saturday, January 28, 2023

How to use ChatGPT?


How to use ChatGPT?

AI and ML have been the buzz words for a while now and so many interesting usage has been found using these. Before we start, let's learn a bit about , what is AI, OpenAI and ML.


Artificial intelligence (AI)
refers to the simulation of human intelligence in machines that are programmed to think and learn like humans. AI can be divided into two categories: narrow or weak AI, which is designed to perform a specific task, and general or strong AI, which has the ability to perform any intellectual task that a human can.  Examples of narrow AI include Siri, Alexa, and self-driving cars, which are designed to perform specific tasks such as recognizing speech, answering questions, and navigating roads. Strong AI, on the other hand, is still in the early stages of development and is the type of AI that can think and learn like a human. It has the potential to revolutionize many industries and change the way we live our lives.  Some of the key technologies that are used to develop AI include machine learning, natural language processing, computer vision, and robotics. 

OpenAI is an artificial intelligence research laboratory consisting of the for-profit OpenAI LP and its parent company, the non-profit OpenAI Inc. The company is focused on developing and promoting friendly AI in a way that benefits all of humanity. They have developed a number of widely-used AI technologies, such as the GPT natural language processing model. OpenAI's mission is to ensure that artificial general intelligence (AGI) benefits all of humanity.

Machine learning (ML) is a subfield of artificial intelligence that gives systems the ability to learn and improve from experience without being explicitly programmed. It involves the use of algorithms and statistical models that enable a system to automatically improve its performance with experience.  There are different types of machine learning, including:  Supervised learning: where the system is trained on a labeled dataset, with input-output pairs, and then makes predictions on new, unseen data. Unsupervised learning: where the system is not given labeled data, but instead must find patterns or features in the input data on its own. Reinforcement learning: where the system learns to make decisions by interacting with an environment and receiving feedback in the form of rewards or penalties. Machine learning is used in a variety of applications such as natural language processing, computer vision, speech recognition, recommendation systems, and many more.


How to ChatGPT

ChatGPT: It is a large language model that can perform a variety of natural language processing tasks, such as:

Text generation: generating human-like text based on a given prompt or context

Text completion: completing a partially written text

Text summarisation: summarising a given text to a shorter version

Text classification: classifying a given text into predefined categories

Text translation: translating a text from one language to another

Text answering: answering questions based on a given context

Text generation of code, poetry, song lyrics and many more.

Additionally, ChatGPT can be fine-tuned on specific tasks or domains, such as customer service, technical support, and creative writing, to improve its performance on those tasks.

It's important to note that while ChatGPT can generate human-like text, it is not a human and may make mistakes or misunderstand certain prompts. It is important to verify any information generated by the model before using it.

ChatGPT is a variant of the GPT (Generative Pre-training Transformer) model, developed by OpenAI.

GPT was first introduced in 2018 by a team of researchers at OpenAI, who trained the model on a large dataset of text from the internet. Since then, OpenAI has released several versions of the GPT model, including GPT-2 and GPT-3, with ChatGPT being one of the most recent versions.

The team behind GPT and its variants includes several prominent researchers in the field of natural language processing, such as Ilya Sutskever, Alec Radford, and Jeff Dean, among others. The development of the GPT model has been led by OpenAI, a research organization founded by Elon Musk, Sam Altman, Greg Brockman, Ilya Sutskever and Wojciech Zaremba.

OpenAI, the organisation that developed ChatGPT, has made the model available for use through a commercial API, which allows users to access the model's capabilities through a web-based interface. The API requires a subscription and usage fee, which varies depending on the usage volume, the type of usage, and other factors.
However, OpenAI also provides some free access to the API, through a free-tier program, or through some partnership or research program, which allows developers and researchers to test and experiment with the model at a lower cost or even for free.
It's worth noting that the research version of the GPT-3 is open-source, meaning it is publicly available for anyone to download, use, and modify. However, the model is very large and requires considerable computational resources and expertise to train and fine-tune for specific tasks. So, it's not recommended for general usage.

Will ChatGPT be free?
ChatGPT, like other large language models such as GPT-2 and GPT-3, requires a significant amount of computational power to train and run.
The original version of GPT-2, which had 1.5 billion parameters, required 4 days of training on 8 NVIDIA V100 GPUs, with a batch size of 2048. This implies that a computational power of about 2 Petaflops is required for training.
GPT-3, which has 175 billion parameters, required several months of training on several thousand of high-performance GPUs, which is not accessible for most of the users.
While the exact computational requirements for ChatGPT may vary depending on the specific architecture and configuration of the model, it's safe to say that it requires a significant amount of computational power and resources to train and run.
It's worth noting that the computational power required to run a pre-trained model like ChatGPT is much lower than what is required to train it. The pre-trained model can be loaded into memory and run on a single high-performance GPU or even a standard CPU, which makes it more accessible to a wider range of users.

 How to login to ChatGPT?

 Open https://chat.openai.com/ on your web-browser.

 Click on Sign up.
Use any account, if you have already a logged in Google account , it makes it more easier. Just click on Continue with Google.
Enter your Name


Provide your phone number. You will receive a verification SMS on you mobile.
Enter the code and you are good to go.


The UI is very simple and easy to use.
Just type in Queries that you want to ask the AI and wait for the AI to get you the answers.




One thing to note in particular. The knowledge date cut off for ChatGPT is marked as 2021. So if you are looking for any new information, refrain yourself from asking it to ChatGPT instead, Google it!!!















Thursday, October 27, 2022

How to get signature Checksum of any Apk on MAC


Command to get the Signature Checksum of any APK on Mac machine





What are signature checksum:


How to find apk checksum on mac machine
Let's start with, what is a checksum? CheckSum is a sequence of letters n numbers that is obtained from a data for detecting errors that can get introduced in the data while it is being saved or transmitted. If you have a checksum of actual file, using that checksum you can find that the file that you have downloaded or saved is actually the same or was their any tempering done in-between transmission or before it was shared to you.

Now, coming to APKs, SHA-256 / SHA-512 / MD5 are hashing algorithm used while signing a file. The file can be .apk , .txt
A file is signed so that its authenticity can be known. If the apk is tampered, the checksum would change and by comparing the original and the file checksum you can confirm if the apk was modified or not before you start using it.
For Android APK, a tool called apksigner.jar is used to sign and verify the checksum. That binary would be available in the Android SDK usually under build-tools. 

Running alone the apksigner tool gives below output:

USAGE: apksigner <command> [options]

       apksigner --version

       apksigner --help


EXAMPLE:

       apksigner sign --ks release.jks app.apk

       apksigner verify --verbose app.apk


apksigner is a tool for signing Android APK files and for checking whether

signatures of APK files will verify on Android devices.



COMMANDS

rotate                Add a new signing certificate to SigningCertificateLineage


sign                  Sign the provided APK


verify                Check whether the provided APK is expected to verify on

                      Android


lineage               Modify the capabilities of one or more signers in an existing

                      SigningCertificateLineage


version               Show this tool's version number and exit


help                  Show this usage page and exit



I will not go into details of what each command does but if you are interested to read further and want to learn more on Apksigner, you can take a look at developers.android.com.



Check for the SDK build tools path. It would look something like below:

/Users/<YourUserName>/Library/Android/sdk/build-tools/29.0.2/

Signature checksum command for Windows Machine:



apksigner verify -print-certs [apk] | grep -Po "(?<=SHA-256 digest:) .*" | xxd -r -p | openssl base64 | tr -d '=' | tr -- '+/=' '-_'


Signature checksum command for Mac Machine:



But on Mac machines, the "Grep" command with -Po  does not work as it is not supported and throws "invalid option -- P" error.

$grep -Po

grep: invalid option -- P

usage: grep [-abcdDEFGHhIiJLlMmnOopqRSsUVvwXxZz] [-A num] [-B num] [-C[num]]

[-e pattern] [-f file] [--binary-files=value] [--color=when]

[--context[=num]] [--directories=action] [--label] [--line-buffered]

[--null] [pattern] [file ...]



To resolve that, we need to replace the way we do 'grep', by using the perl command. 
The following Perl command is replacement for grep -  

perl -nle 'print $& if m{(?<=SHA-256 digest:) .*}'


So below is the final command to find the checksum of Android apk : 

/Users/<YourUserName>/Library/Android/sdk/build-tools/<BuildToolVersion>/apksigner verify -print-certs <PATH_TO_APKFile> | perl -nle 'print $& if m{(?<=SHA-256 digest:) .*}' | xxd -r -p | openssl base64 | tr -d '=' | tr -- '+/=' '-_'


In conclusion, using checksums is crucial in ensuring the authenticity of APK files. By following the steps outlined in this guide, you can find the checksum of an APK file on a Mac machine.

Thursday, May 19, 2022

[Solved] How to resolve Ruby "Error running 'rvm_make -j10'" error on Macbook


[Solved] How to Fix "__rvm_make -j10" error while installing Ruby on Mac machines

Install ruby on macbook m1 pro

We often have to switch from one machine to other or sometimes we go for an upgrade. In my case, I moved from Mac Pro 2016 Intel based chip to Macbook Pro 16 inch,  Apple M1 Pro based chipset and got stuck with this error.

You must have a prior experience, Installing Ruby has always been hassle on Mac/Ubuntu machines but moving away from Intel Chip to M1 Pro added few more challenges. 

RVM is Ruby Version Manager which is command line tool which helps in install, manage and work with different Ruby environments. RVM can also help in switching between different version of Ruby on your computer.

While installing Ruby via RVM, I was constantly getting below error.


> rvm install 2.6.5 

Error running '__rvm_make -j10',

please read /Users/<username>/.rvm/log/1652946926_ruby-2.6.5/make.log

There has been an error while running make. Halting the installation.


Because of the above error, I was not able to Install the Ruby and the installation was halted. My initial assumption was, it is due to OpenSSL lib on machine but it was not. Looking at the make log file, I found that there were many errors and was not able to figure out how to resolve this error. 

Finally after few trial and error, I could resolve the error with this guide.

Here are easy steps to Install Ruby on Macbook Pro with Apple M1 Pro chipset


PreRequisites:

- Brew should already be installed on your machine.
- And change the architecture of your terminal to "arch -arm64 zsh" OR "arch -arm64 sh"

1. Download  the ruby file given in below link
https://raw.githubusercontent.com/rbenv/homebrew-tap/e472b7861b49cc082d1db0f66f265368da107589/Formula/openssl%401.0.rb

2. Save the file to your machine

3. Run brew install <pathWhereFileIsDownloaded>/openssl@1.0.rb

4. Add below path to your shell's rc file
echo 'export PATH="/opt/homebrew/opt/openssl@1.0/bin:$PATH"' >> ~/.zshrc

echo 'export LDFLAGS="-L/opt/homebrew/opt/openssl@1.0/lib"' >> ~/.zshrc
echo 'export CPPFLAGS="-I/opt/homebrew/opt/openssl@1.0/include"' >> ~/.zshrc
echo 'export PKG_CONFIG_PATH="/opt/homebrew/opt/openssl@1.0/lib/pkgconfig"' >> ~/.zshrc

5.  Close the terminal and reopen new OR run source ~/.zshrc to reload the config

6.  Confirm the OpenSSL lib being used by running command:
     openssl version
     
    which returns:

    OpenSSL 1.0.2u  20 Dec 2019

7. Run below command to Disable RVM autolibs 
  rvm autolibs disable 

8. Run below export commands: 
    export RUBY_CFLAGS=-DUSE_FFI_CLOSURE_ALLOC
  export optflags="-Wno-error=implicit-function-declaration"

9. rvm install 2.6.5 --with-openssl-dir=/opt/homebrew/opt/openssl@1.0
 (you can choose any ruby version here)

The final Step #9 should install Ruby and you should see below line confirming Ruby is installed

Install of ruby-2.6.5 - #complete

You can also run :  rvm list  to confirm the ruby version installed status.


If above given steps does not resolve your issue, you can also try running below command which might resolve:

a) apt purge libssl-dev && apt install libssl1.0-dev

b)  rvm install 2.6.6 --with-out-ext=fiddle


Incase, you are seeing the issue on macOS Big Sur, be sure to run this before install a Ruby via RVM:


export warnflags=-Wno-error=implicit-function-declaration


For Reference you can visit this Github issue for RVM and scroll to the bottom of the page to confirm this answer.


Please add your comments, if it helped to resolve the ruby installation.



Incoming Searches:
Error running 'rvm_make -j16'
Error running 'rvm_make -j12'
Error running 'rvm_make -j10'
Error running 'rvm_make -j8'
Error running 'rvm_make -j4'
Error running 'rvm_make -j2'
error running '__rvm_make -j8',
Error running 'rvm_make -j16',
Error running 'rvm_make -j12',
Error running 'rvm_make -j10',
Error running 'rvm_make -j8',
Error running 'rvm_make -j4',
Error running 'rvm_make -j2',