Hi, so this is quite a personal text as I have been striving to build and work for a couple of startup businesses for the last decade and I’d like to share a couple of observations and perhaps useful tips if you decide to swim in that area, or you lack to understand why are you constantly sinking. First, let me explain “2nd/3rd World Countries” – it’s not necessary related to Eastern Europe, Asia, or some even less developed economies, but in the eyes of Silicon Valley that could be easily considered as “the rest of the world”, however, for the purpose of this gedankenexperiment, I’ll focus on Eastern Europe, region I live in and know well. Second, “Startup Software Engineer” means that you’re obviously an engineer and that you’re fully committed working for a company that yet doesn’t have successful business model, product is in the phase of development, you’re not making any profit and you’re basically burning the cash you’ve got in
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| {% if paginator.total_pages > 1 %} | |
| {% assign start = paginator.page | minus: 2 %} | |
| {% assign end = paginator.page | plus: 2 %} | |
| {% if start < 1 %} | |
| {% assign start = 1 %} | |
| {% assign end = start | plus: 4 %} | |
| {% elsif end > paginator.total_pages %} | |
| {% assign start = paginator.total_pages | minus: 4 %} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| const ADDON_NAME = 'react-to-html'; | |
| const PARAM_NAME = 'reactToHtml'; | |
| const PANEL_NAME = `${ADDON_NAME}/panel`; | |
| const MARKUP_EVENT = `${ADDON_NAME}/markup`; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| :root { | |
| --tab-highlighter: transparent; | |
| } | |
| #tabbar { | |
| background: #eee; | |
| border: none; | |
| } | |
| tab-item-substance { |
This is a GitHub action we used on several projects to allow our QA team to push changes from dev to qa branch.
The shorter version does the following:
- Updates the patch version in
package.jsonondev - Creates new tag
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import { spawn } from 'child_process'; | |
| export class Runner { | |
| tasks = []; | |
| exiting = false; | |
| colors = [ | |
| '\x1b[33m', // yellow | |
| '\x1b[34m', // blue | |
| '\x1b[35m', // magenta | |
| '\x1b[36m', // cyan |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| -- Aseprite Script: Add 1px Padding to Tilemap | |
| -- Takes a tilemap and creates a new file with 2x larger grid (1px padding per tile) | |
| local sprite = app.activeSprite | |
| if not sprite then | |
| app.alert("No active sprite") | |
| return | |
| end | |
| -- Get original sprite properties |
This plugin is intentionally repo-specific. It scans src, packs PNGs from public/sprites, rewrites static k.loadSprite(...) calls, and serves or emits atlas files from a fixed location.
- Source code is scanned under
src - Packable images live under
public/sprites - Atlas cache is written to
.kaplay-sprite-atlas - Runtime atlas assets are served and emitted under
generated/kaplay-sprite-atlas
