Posts

Lombok's copyableAnnotations for Spring

It is generally a good practise to declare the dependencies in a java class as final and inject the dependencies through the constructor. With Lombok's @AllArgsConstructor and @RequiredArgsConstructor , the generated constructor has all the final fields as parameters. However, if we use the @Qualifier and @Value for the final fields, then by default Lombok doesn't copy these annotation to the constructor parameters. In order to apply/copy these annotations to the constructor parameters, the following lombok config is required. Create lombok.config file in the route directory of the project and add the following lines lombok.copyableAnnotations += org.springframework.beans.factory.annotation.Qualifier lombok.copyableAnnotations += org.springframework.beans.factory.annotation.Value This configuration inform Lombok to copy annotation applied at final field to constructor parameters. Example: Source Code @Component @AllArgsConstructor public class SampleService { @Qualifi...

Export/Backup Ollama Model

The following commands help to export/backup the ollama models which allows to quick restore the models or setup an offline machine using file transfer. Pull a model from registry ollama pull llava:7b Export the model mkdir -p llava_7b_backup cd llava_7b_backup ollama show --modelfile llava:7b > Modelfile cat Modelfile | grep -E '^FROM' | cut -d ' ' -f 2 | xargs -I {} cp {} . cat Modelfile | grep '# FROM' | cut -d ' ' -f 3 | xargs -I {} echo 'ollama create {} -f Modelfile' > readme.txt sed -i '' -E 's/^FROM.*blobs/FROM ./g' Modelfile Import the model  cd llava_7b_backup ollama create llava:7b -f Modelfile Run the model ollama run llava:7b Remove the model ollama rm llava:7b

AWS Workspaces Client and Linux Changes

The following changes to AWS Workspaces Client and Linux will boost developer's productivity Make the following changes in the AWS Workspace Client: Menu -> Settings -> Manage Hardware Acceleration -> Enabled (Tick) Menu -> Settings -> Display Settings -> High DPI Mode (Tick) Menu -> Settings -> Switch Running Mode -> Always On (Select) Make the following tweaks inside the Amazon Linux Operating System: Settings -> Privacy -> Screen Lock -> Automatic Screen Lock -> Off Settings -> Power -> Power Saving -> Blank Screen -> Never Settings -> Power -> Suspend & Power Button -> Automatic Suspend -> Off Open a Terminal and execute the following command to switch to GNOME classic UI nohup gnome-shell --mode=classic -r > /dev/null 2>&1 & To switch back to modern GNOME UI nohup gnome-shell --mode=user -r > /dev/null 2>&1 & Store the following commands as alias in ~/.bashrc file to use it as conven...

Java's ScheduledExecutorService example

Example of Java's ScheduledExecutorService to run a block of code once (with a delay) or repeatedly at fixed rate or fixed delay. ScheduledExecutorService can be a single threaded executor (used to execute in a coordinated way) or can be multi threaded executor (used to execute in parallel) import java.util.concurrent.Executors ; import java.util.concurrent.ScheduledExecutorService ; import java.util.concurrent.TimeUnit ; public class ExampleScheduledExecutor implements AutoCloseable { private final ScheduledExecutorService executorService = Executors . newSingleThreadScheduledExecutor (); // use newScheduledThreadPool() for running with multiple threads in parallel // private final ScheduledExecutorService executorService = Executors.newScheduledThreadPool(2); public ExampleScheduledExecutor ( long initialDelay , long fixedDelay ) { executorService .schedule(() -> executeOnlyOnce(), initialDelay , TimeUnit . SECONDS ); executorService .scheduleAtFixedR...

less - Unix / Linux command line reader cheat sheet

Useful pdf file that contains the common commands used in less command line reader  https://drive.google.com/file/d/1gxrGEPws6aJBsYa1LL6pkAMSkq-13hKI/view?usp=drive_link

vi - Unix / Linux command line editor cheat sheat

Useful pdf file that contains the common commands used in vi command line editor https://drive.google.com/file/d/1gog8Jn6xzvkVpanxpaX6m2rHKyWSQyc9/view?usp=drive_link

Jetbrains IDE - IntelliJ Customisation for Developer Productivity

The following changes to any Jetbrains IDE (IntelliJ) makes developers more productive. Appearance Changes: View Menu -> Appearance -> Status Bar -> Tick View Menu -> Appearance -> Status Bar Widgets -> Git Branch -> Tick View Menu -> Appearance -> Status Bar Widgets -> Line:Column Number -> Tick Settings Changes: Settings -> Appearance & Behaviour -> Appearance -> Zoom -> 90 or 100 or 110 based on Screen Resolution Settings -> Appearance & Behaviour -> Appearance -> Use custom font -> Size 16 Settings -> Appearance & Behaviour -> Appearance -> UI Options -> Show main menu in a separate toolbar -> Tick Settings -> Appearance & Behaviour -> Appearance -> UI Options -> Use project colours in main toolbar -> Tick Settings -> Appearance & Behaviour -> Appearance -> UI Options -> Compact Mode -> Tick Settings -> System Settings -> Confirm before exiting the IDE -...