iOS Software Engineer (Swift, SwiftUI, Combine) | Solopreneur | Adviser | Mentor
Check out my activities:
- Review my iOS course for beginners [RU, 2021]
- Subscribe to my channel in Telegram
- Read my blog at hamsternik.com
Configurations for tools I use every day.
iOS Software Engineer (Swift, SwiftUI, Combine) | Solopreneur | Adviser | Mentor
Check out my activities:
Write text representation / insert image of full repo structure.
I'm deal with my bank account via special app called Star Access. And it needs old Java 1.8 version.
As iOS engineer I'm always using fastlane
to automate apps' deployment workflow and some kind of daily tasks which I'm able to automate writing script on ruby for that. But I can't use a system version of Ruby pre-installed on macOS to install any gems 'cause it's not scale for my needs to have multiple versions of Ruby installed locally. That problem `rbenv is designed to resolve.
Write a standalone paragraph in README about what is rbenv
, how to set up it. Add links to official repo.
As I saw here (https://github.com/caarlos0/zsh-git-fetch-merge), there's a way how to easily create a Zsh plugin (which works w/ antibody as well) for my purpose.
Then I, surely, integrate it via antibody Zsh PM and make an alias at .gitconfig
:)
I wanna integrate onedark scheme. It supports 256 colors.
When I used iTerm2 there're some troubles which didn't provide a correct render of 256colors. So, now I'm using a default Terminal
app so it's the point to try some sort of new scheme again.
Write prerequisites
paragraph with detailed information about:
ssh/config
for the new machinedotfiles
repo (with or w/o submodules)Official site: https://editorconfig.org
Usage Example: https://github.com/caarlos0/dotfiles/blob/master/.editorconfig
When I started use macOS as my primary (and single) OS, I tried to change my installation script quite enough. Eventually, I don't have a particular and easy way how to set up all my components such a dotfiles, or brew dependencies, or zsh/vim third-parties. Set up a new machine to have a good (in my opinion) working one - it's a topmost issue w/ a highest priority.
When I'll have a good roadmap describes all steps in a correct consistency, I easily can create a single source of truth for deployment.
When I started use macOS as my primary (and single) OS, I tried to change my installation script quite enough. Eventually, I don't have a particular and easy way how to set up all my components such a dotfiles, or brew dependencies, or zsh/vim third-parties. Set up a new machine to have a good (in my opinion) working one - it's a topmost issue w/ a highest priority. But its' quite tough to create a good deploy flow w/o any description or plan of which parts should be installed at the empty machine. So, there're should be a document, I actually named it roadmap
, describes all that parts and correct sequence of setup steps.
roadmap.md
file as introduction for newbies about my own machine setup./bin/vscode
)vscode-ext-install
and vscode-ext-list-export
make commands which are called either of bash scripts with new unified scriptChalk -- Terminal colors using Swift 5’s string interpolation extensions.
pick up the new plugin from the https://github.com/caarlos0/dotfiles/blob/master/antibody/bundles.txt#L15
due the initial env setup, via make dotfiles-install
, multiple bash scripts should be symlinked in the user's root:
$HOME/.bin
folder$HOME/.bin
There're several ways how to unlink
existed symlinks at $HOME directory:
setup.sh
deploy scriptWhat each of them should do:
Add some kind of condition to .zshrc or maybe make a two different zsh prompt config files to check & use a correct git-prompt tool.
prerequisites: Now it's use haskell implementation by-default. But at first deploy it's not available while I don't install Haskell stack itself and not install haskell version of plugin.
Each time when I have set up whether a new machine or a new user at my current device, I installed all dotfiles which I've got in that repo. But some of them are not needed for different reasons. One of that is actually my current shell (I'm using Zsh only). I don't use fish or bash, so files like .bashrc
are useless to store them at user's home directory.
Add validation to makefile/deploy script to check what $SHELL is currently setup. Then copy dot files related with that shell. Ex. for Bash it should be: .bashrc
/ .bash_profile
. For Zsh it should be: .zshrc
/ .zshenv
/ ...
Since I have migrated from default macOS zsh
shell on the eye-candy fish shell, there is no way how to set up local user environment except manually copying necessary config files into $HOME directory.
Create separate bash / fish script to symlink all necessary fish
shell configs at $HOME directory.
After a long term of usage macOS OS as a default and single source of truth I really sure that some old staff daily usage workflow have been expired.
Remove next resources included at that repo:
I'm currently use LaTeX to write my CV. It's important tool which helps me modify/decorate it as like I want.
Write a standalone paragraph in README about:
As far as I used .dotfiles, I for a very long term just use that repo. Don't create issues for some new feature/update. Don't create pull requests, don't use any git or any other flow how to work on issues (actually, don't have last one). Also I don't have a quite good README about how to set up all my dotfiles
on any free machine. A few times ago it has been started to embarrass me. I guess any repo should be conducted as good as possible: issues, pull request, multiple branches, normal releases, milestones, etc. So, it's time to change that!
.md
file at .github folder)..md
file at .github folder).As a Homebrew user I want to have a brew install
command for that repo: https://github.com/powerline/fonts
Here's a documentation how to create a formula for a new Homebrew package.
Here's an example of Homebrew package Formula.
That issue blocked by #16.
I will remove default .ssh config only after add info how to set up ssh
on new machine to README.
Now I'm using a very easy way to manage all my symlinks for config files - bash script with bunch of functions which could just install
all symlinks to the $HOME.
For one side, it's quite easy for understanding.
But for another side it not so easy to scale and support.
Maybe it will be better to research another approaches how people managed their config files.
For ex. here's a GNU tool called stow
.
Based on the last migration from zsh
to fish
shell I do have retirement to settle my environment with either of shells. Regardless my new default shell is fish
macOS distributed with zsh
out of the box hence I need to remain all zsh env configuration but have an option to settle each environment independently.
Create separate make
command in the Makefile to settle the whole environment with all fish
configuration files.
based on the https://github.com/IlanCosman/tide#asynchronous-rendering prompt on gif
Maybe I can write some sort of plugin, like https://github.com/caarlos0/zsh-open-pr.
It'll be good have a possibility to open a pull request in a one-line command from the terminal.
And it could be easily designed as a Zsh plugin :)
Investigate some sort of plugins which are able to track and notify about any changes (new commits, history, etc) at branches that you have locally.
That flow should works continuously.
Please use existed Makefile
and .dotfiles.sh
script to create .vim
dir.
I have two different options which service I can use to make that kind of trigger step when push a new commit to the repo:
I actually have a TravisCI deployed but from the other side it's a good issue to migrate on more compliant GitHub services.
prerequisites: before start to make GitHub Actions find and read about any performance benchamarks or similar sort of tests.
Please use existed Makefile
and .dotfiles.sh
script to create .zsh
dir.
Source: https://github.com/gf3/dotfiles
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.