Skip to content

Instantly share code, notes, and snippets.

View ivan-khuda's full-sized avatar
🎯
Focusing

Ivan Khuda ivan-khuda

🎯
Focusing
  • TechMagic
  • Lviv
View GitHub Profile
import {
CardGroup,
OddsCalculator,
type Card as PokerToolsCard,
} from "poker-tools";
import crypto from 'crypto';
// Готовая функция для перемешивания колоды
export function shuffle<T>(array: Array<T>) {
let currentIndex = array.length,
Історія трохи з розряду пост-фактум, але не зовсім.
Сталось це ще в далекому 2018, на той момент я працював на фірмі яка спеціалізувалась в своїй більшості на Wordpress, і ще на PHP (Laravel, Yii).
В мене на той момент було більше досвіду саме з Wordpress.
До нас через Upwork прийшов проект (аналог Prom.ua),
потрібно було написати плагін який дав би змогу скачувати продукти з афіліейт системи і відповідно генерувати шорткоди
(такі штуки для вставлення в контент які дають змогу виконати певний код який привязаний до цього коду).
Попередньо для проекту було зроблено оцінку на 1,5 - 2 місяці. Спочатку замовник хотів витягувати тільки продукти певного типу (всяку електротехніку),
@ivan-khuda
ivan-khuda / gist:f33bb144c883e7ab3452a5a2dca0f8b5
Last active January 2, 2024 08:42
Оцінка лендінгу
Фронтенд:
7 з 10
З самого початку трохи здивуванням було що це не Vue або React. Але чесно кажучи тут воно 100% не потрібно враховуючи ціль проекту.
Поставив оцінку 7 через декілька причин:
- Забагато плагінів підключено які не використовуються (Magnific Popup, parallax, jQuery UI, Litty) можливо ще якість з якими поки не стикався
- Не зовсім розумію доцільність підключення декількох слайдерів, (Owl-carousel, slick)
- Щодо СЕО здається тут забагато h тегів і взагалі нема h1
- Ну і троши не вистачає фавікон
Бекенд
// https://wicg.github.io/IntersectionObserver/#intersection-observer-private-slots
/*
callback IntersectionObserverCallback = void (sequence<IntersectionObserverEntry> entries, IntersectionObserver observer)
[Constructor(IntersectionObserverCallback callback, optional IntersectionObserverInit options),
Exposed=Window]
interface IntersectionObserver {
readonly attribute Element? root;
readonly attribute DOMString rootMargin;
@ivan-khuda
ivan-khuda / Swipe-Example.js
Created June 24, 2019 13:03 — forked from Tam/Swipe-Example.js
Vanilla JavaScript Swipe Detection
new Swipe(document.getElementById("gallery"), function(event, direction) {
event.preventDefault();
switch (direction) {
case "up":
// Handle Swipe Up
break;
case "down":
// Handle Swipe Down
break;
var MGUtil={
data:[],
ini:0,
total:0,
addItem:function(qty,id,properties,callback) {
var params = {quantity:qty,id:id};
if(properties != false){
params.properties = properties;
}
$.ajax({