IT guy's blog

My name is Egor Zotov. I’m a Software Engineer. My github, and email.

My thoughts about the Junie AI agent

Supercharging My Development Workflow with AI Agent Junie

Over the past few weeks, I’ve been using AI agent Junie, and I can say — I love it. It’s made my daily development smoother, faster, and far more efficient. Here’s why.

Junie's toolbar inside the IDE

Why I Like It

  1. It saves me time.
    Junie allows me to write more code in less time. It helps with code generation and speeds up repetitive tasks — I’m now much more productive.
  1. It can execute commands and automatically fix issues.
    Junie comes with a built-in command shell. It can run commands, detect errors, and even fix them automatically — no need to leave the terminal or do everything manually.
  1. It understands my code style.
    One of the best parts is how Junie matches the style of my codebase. It doesn’t just dump generic code — it adapts to how things are already written.
  1. It reuses tools I already use.
    Junie recognizes the existing patterns, libraries, and factories in my project. For example, when generating integration tests, it reuses the same tools and setups from other tests. It feels like it knows my project.
  1. It writes great tests.
    I now write almost all of my tests using Junie. It’s especially good at generating realistic and complete test cases that fit seamlessly into the existing test suite.

The Downside

The only real drawback is the lack of transparency around credit usage. You don’t get a clear breakdown of how many credits each request consumes or how many you have left. You only get a warning when you’re running low, which can be annoying.

Tips & Tricks for Using Junie Effectively

Here are a few tricks I’ve discovered that make working with Junie even more effective:

  1. Ask Junie to write code without comments.
    If you prefer clean, uncommented code (especially for production use), just ask Junie explicitly to omit comments. It will follow your instructions precisely.
  1. Provide the full Docker command path when running tests inside the Docker container.
    If your application runs inside Docker, include the full path to your test command (e. g., docker exec app php bin/phpunit). Junie will use it to run tests inside the correct container, avoiding issues with Dockerized services like the database.
  1. Tell Junie not to mock specific classes.
    If you prefer using real objects instead of mocks for certain parts of your code, simply say so. Junie respects that and will write tests using the actual implementations instead of generating mocks.

Final Thoughts

Despite that, I highly recommend trying AI agent Junie, especially for writing tests. It’s become an essential part of my workflow, and I can’t imagine working without it now.

 No comments    100   3 mo   agents   AI

Fix security check 404 error in your symfony project

The bin/console security:check was recently shutted down by Symfony stakeholders. If you try to use it you will get an error:

The web service failed for an unknown reason (HTTP 404).

Now you must checking the project locally with utility written by Fabien Potencier.

Attention!

My instructions are only suitable for those using docker or linux as a host system.

  1. That scripts allows to download latest version of security utility:
  1. Script generates “local-php-security-checker” file in project’s root folder. You may run downloaded file directly or add aliases to the composer.json file at “scripts” section:

Now you able to run security check with 1 line of code

 No comments    680   2021   eng   php   symfony

Working with bulma sass variables in vue project

To operate with sass variables in vue components you should firstly install node-sass and sass-loader:


yarn add --dev node-sass sass-loader

Then in vue.config.js add follows rules:

module.exports = {
  css: {
    loaderOptions: {
      sass: {
        data: '@import "~bulma/sass/utilities/_all.sass";'
      }
    }
  }
};

Now you can write something like this:


<style lang="scss">
html,
body {
  height: 100%;
  width: 100%;
  align-items: center;
  justify-content: center;

  /*all display sizes beginning with tablets*/
  @include from($tablet) {
    display: flex;
  }
}
</style>
 No comments    1549   2019   eng
 12 comments    3534   2018   eng

Install git-flow plugin for zsh

Here is a great git-flow plugin for zsh. How to install it:

  1. Add plugin file
cd $ZSH_CUSTOM && cd plugins && mkdir git-flow && cd git-flow && wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/plugins/git-flow/git-flow.plugin.zsh
  1. Open zsh settings
vi ~/.zshrc
  1. Add git-flow plugin to your plugins
plugins=(git git-flow)

Restart the terminal.

Aliases

#Alias
alias gfl='git flow'
alias gfli='git flow init'
alias gcd='git checkout develop'
alias gch='git checkout hotfix'
alias gcr='git checkout release'
alias gflf='git flow feature'
alias gflh='git flow hotfix'
alias gflr='git flow release'
alias gflfs='git flow feature start'
alias gflhs='git flow hotfix start'
alias gflrs='git flow release start'
alias gflff='git flow feature finish'
alias gflhf='git flow hotfix finish'
alias gflrf='git flow release finish'
alias gflfp='git flow feature publish'
alias gflhp='git flow hotfix publish'
alias gflrp='git flow release publish'
alias gflfpll='git flow feature pull'
 No comments    1013   2018   eng   system
 No comments    440   2018   eng   system

How to switch from bash to zsh with Terminator and PhpStorm

Аs the main OS I use Ubuntu with bash. I wanted to change default Unix shell bash to zsh. Zsh is like bash but with blackjack and hookers improvements and new features.

Here is gist file from renshuki that I google. It installs Terminator, zsh and Agnoster Theme for zsh.

Install Terminator (shell)


sudo add-apt-repository ppa:gnome-terminator
sudo apt-get update
sudo apt-get install terminator

Terminator should be setup as default now. Restart your terminal (shortcut: “Ctrl+Alt+T”).

Install ZSH


sudo apt-get install zsh

Restart your terminal. Choose option 2 for Z Shell configuration.
Don’t forget to migrate your previous configurations (RVM, Rbenv...) from .bashrc to .zshrc

Install Oh My ZSH


cd
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Setup missing fonts (powerline)

Install powerline font


cd
wget https://github.com/powerline/powerline/raw/develop/font/PowerlineSymbols.otf
wget https://github.com/powerline/powerline/raw/develop/font/10-powerline-symbols.conf
mv PowerlineSymbols.otf ~/.fonts/
mkdir -p .config/fontconfig/conf.d #if directory doesn't exists

Clean fonts cache

fc-cache -vf ~/.fonts/

Move config file


mv 10-powerline-symbols.conf ~/.config/fontconfig/conf.d/

Configure ZSH


vim ~/.zshrc

Theme

Change [ZSH_THEME=“robbyrussell”] to [ZSH_THEME=“agnoster”]

ZSH_THEME="agnoster"

Change theme colors to solarize

dconf

is required if you don’t already have it.


sudo apt-get install dconf-cli
git clone git://github.com/sigurdga/gnome-terminal-colors-solarized.git ~/.solarized
cd ~/.solarized
./install.sh

  • I recommend you option 1 (dark theme) which is just great.
  • Choose option 1 to download seebi’ dircolors-solarized

After installation, open .zshrc and add the line:

eval `dircolors ~/.dir_colors/dircolors`

To activate dark solarize theme in Terminator just right click on the terminal,

Preferences>Profiles>Colors>Foreground and Background>Built-in schemes: Solarized dark
Preferences>Profiles>Colors>Palette>Built-in schemes: Solarized

Restart Terminator and you’re done!

Enable zsh in PhpStorm

Go to the

File>Settings>Tools>Terminal

and set Shell path to the /usr/bin/zsh:

That’s it!

phpstorm-zsh2.pngg

 1 comment    1907   2017   eng   system