Skip to content

Instantly share code, notes, and snippets.

View roma-glushko's full-sized avatar
🦁
Hacking my way to the promised land

Roman Glushko roma-glushko

🦁
Hacking my way to the promised land
View GitHub Profile
@roma-glushko
roma-glushko / keybase.md
Created June 10, 2022 16:50
keybase.md

Keybase proof

I hereby claim:

  • I am roma-glushko on github.
  • I am roman_hlushko (https://keybase.io/roman_hlushko) on keybase.
  • I have a public key ASBcxKOVsMVXbXS77Zpa1eCY0wk9aevojXoGVI5KQEhd9wo

To claim this, I am signing this object:

@roma-glushko
roma-glushko / git-branch-clean-up.sh
Last active October 29, 2021 07:47
Remove all local branches that don't exist on the remote anymore (works with rebase merging strategy)
git fetch -p
git branch -r | awk '{print $1}' | egrep -v -f /dev/fd/0 <(git branch -vv | grep origin) | awk '{print $1}' | xargs git branch -D
@roma-glushko
roma-glushko / heapify.py
Last active May 26, 2021 08:22
Implementation of heap (priority queue) from my blog post: https://www.romaglushko.com/blog/heapify/
from typing import List
class PriorityQueue:
"""
Represents the heap and preserves the heap property during adding/removing elements
"""
items: List[int]
def __init__(self, items: List[int]):
import shap
shap.initjs()
# Create object that can calculate shap values
explainer = shap.TreeExplainer(rf_classifier)
# Calculate Shap values
shap_values = explainer.shap_values(X_test, y_test)
@roma-glushko
roma-glushko / patchy.sh
Created June 23, 2020 18:29
A simple interface around git commands that simplifies patch creation
#!/bin/bash
command=$1
path=$2
currentDir="`pwd`"
# display usage
# run commands one after the other using
[ $# -eq 0 ] && { echo -e "Usage: $0 command [path]"; exit 1; }
case $command in
@roma-glushko
roma-glushko / commands.js
Created June 22, 2020 09:56
Cypress - Magento2 loginAsCustomer() command
Cypress.Commands.add("loginAsCustomer", (username, password) => {
cy.request('/customer/account/login')
.its('body')
.then((body) => {
const $html = Cypress.$(body)
const formKey = $html.find('input[name="form_key"]').val()
cy.request({
method: 'POST',
url: '/customer/account/loginPost',
@roma-glushko
roma-glushko / apache-config.conf
Last active June 18, 2020 12:58
Disable HTTP auth for specific IP on the Apache server which is behind Varnish proxy
<Directory /home/usr/sites/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
AuthType Basic
AuthName "HTTP Auth"
AuthUserFile /etc/apache2/.htpasswd
SetEnvIf X-Forwarded-For ^1\.2\.3\.4 env_no_http_auth
<RequireAny>
<?php
require __DIR__ . "/app/bootstrap.php";
use Magento\Framework\App\Bootstrap;
use Magento\Framework\App\ObjectManager\ConfigLoader;
use GuzzleHttp\Client;
use Magento\Framework\Stdlib\ArrayManager;
$bootstrap = Bootstrap::create(BP, $_SERVER);
@roma-glushko
roma-glushko / Vendor\Module\Plugin\Checkout\AddProductLabelPlugin
Created April 8, 2019 08:16
Usage of Magento\Framework\Stdlib\ArrayManager in Magento 2 while working with nested arrays
<?php
declare(strict_types=1);
namespace Vendor\Module\Plugin\Checkout;
use Magento\Checkout\Model\DefaultConfigProvider;
use Magento\Framework\Stdlib\ArrayManager;
class AddProductLabelPlugin
@roma-glushko
roma-glushko / README.md
Created June 19, 2018 09:21 — forked from amenk/README.md
How To Apply a Magento 2 Patch to your project
  • Find the commit a GitHub
  • Add .patch to the URL
  • Require vaimo/composer-patches
  • Add an entry like the above, with path-removal-level 5, to the composer.json