Solving the Remote Keyboard Traversal Problem: Navigating the Grid Efficiently

The Problem Write a program to search a movie title using screen keyboard with minimal traversal (e.g. Searching for a title Using ROKU/Apple TV remote on Netflix). Input keyboard can have all the characters in any order. Given : Movie title and initial position of remote selection We have five buttons in remote: UP, DOWN, LEFT, RIGHT, OK Keyboard: Input remote could be like this (as it buttons could be in any order) A B C D E F G H I J K L M N O P Q R S T U V W X Y Z For Example: Initial position of remote: A Movie title: BHE Result: RIGHT, OK, RIGHT, DOWN, OK, RIGHT, RIGTH, UP, OK (Right answer) Result: RIGHT, RIGHT, LEFT, OK, RIGHT, DOWN, OK, RIGHT, RIGTH, UP, OK (incorrect, not the shortest one) this problem can be categorized as a grid navigation or grid traversal problem ...

September 1, 2023 · 3 min · Özkan Pakdil

Add `open with intellij` into context menu in linux mint

Add code below to ~/.local/share/nemo/actions/intellij.nemo_action [Nemo Action] Name=Open in Intellij Comment=Open in Intellij Exec=sh -c '"$HOME/.local/share/JetBrains/Toolbox/apps/intellij-idea-community-edition/bin/idea" "%F"' Icon-Name=intellij Selection=Any Extensions=dir; Then in files go to folder you want to open with intellij then right click and choose open in intellij.

June 11, 2023 · 1 min · Özkan Pakdil

Add `open with vscode` into context menu in linux mint

Add code below to ~/.local/share/nemo/actions/vscode.nemo_action [Nemo Action] Name=Open in VS Code Comment=Open in VS Code Exec=code "%F" Icon-Name=visual-studio-code Selection=Any Extensions=dir; Then in files go to folder you want to open with VScode then right click and choose open in VS Code.

May 6, 2023 · 1 min · Özkan Pakdil

Printing running sqls in logs with spring boot 3 and hibernate 6

In application.properties logging.level.org.hibernate=info logging.level.org.hibernate.SQL=debug logging.level.org.hibernate.orm.jdbc.bind=trace logging.level.org.hibernate.stat=debug logging.level.org.hibernate.SQL_SLOW=info logging.level.org.hibernate.cache=debug will make print all sqls and bindings with it like below 2023-04-08T09:31:54.232+01:00 DEBUG 164224 --- [ main] org.hibernate.SQL : insert into "address" ("city", "line1", "post_code", "id") values (?, ?, ?, ?) 2023-04-08T09:31:54.232+01:00 TRACE 164224 --- [ main] org.hibernate.orm.jdbc.bind : binding parameter [1] as [VARCHAR] - [Glasgow] 2023-04-08T09:31:54.232+01:00 TRACE 164224 --- [ main] org.hibernate.orm.jdbc.bind : binding parameter [2] as [VARCHAR] - [apt:0] 2023-04-08T09:31:54.232+01:00 TRACE 164224 --- [ main] org.hibernate.orm.jdbc.bind : binding parameter [3] as [VARCHAR] - [G0] 2023-04-08T09:31:54.232+01:00 TRACE 164224 --- [ main] org.hibernate.orm.jdbc.bind : binding parameter [4] as [BIGINT] - [28]

April 8, 2023 · 1 min · Özkan Pakdil

Printing running sqls with P6spy in spring boot 3 and hibernate 6

in build.gradle implementation 'p6spy:p6spy:3.9.1' In application.properties spring.datasource.url=jdbc:p6spy:h2:mem:testdb spring.datasource.driverClassName=com.p6spy.engine.spy.P6SpyDriver and in spy.properties driverlist=org.h2.Driver appender=com.p6spy.engine.spy.appender.StdoutLogger logMessageFormat=com.p6spy.engine.spy.appender.CustomLineFormat customLogMessageFormat=%(currentTime)|%(executionTime)|%(sqlSingleLine) With this configuration application logs will appear in console. like below 2023-04-08T12:14:54.237+01:00 DEBUG 178209 --- [nio-8080-exec-4] o.s.w.f.CommonsRequestLoggingFilter : Before request [GET /byname/name1] 1680952494240|0|select c1_0."id",c1_0."last_name",c1_0."name" from "customer" c1_0 where c1_0."name"='name1' 1680952494242|0|select a1_0."customer_id",a1_1."id",a1_1."city",a1_1."line1",a1_1."post_code" from "customer_addresses" a1_0 join "address" a1_1 on a1_1."id"=a1_0."addresses_id" where a1_0."customer_id"=2 1680952494244|0|select o1_0."customer_id",o1_1."id",o1_1."create_time",o1_1."full_price",o1_1."items",o1_1."update_time",o1_1."version" from "customer_orders" o1_0 join "order" o1_1 on o1_1."id"=o1_0."orders_id" where o1_0."customer_id"=2 1680952494246|0|select b1_0."customer_id",b1_1."id",b1_1."create_time",b1_1."items",b1_1."update_time",b1_1."version" from "customer_baskets" b1_0 join "basket" b1_1 on b1_1."id"=b1_0."baskets_id" where b1_0."customer_id"=2 If required user can change the log format like described here, here is working example project. P6spy is good for development but should not be used in production, for production every database has their own monitoring logging solution which will show what sql is running from which user. ...

April 8, 2023 · 1 min · Özkan Pakdil