Skip to content

Instantly share code, notes, and snippets.

View s3va's full-sized avatar

Vsevolod Semenov s3va

  • Seva's studio apartment
  • Moskva (Moscow)
View GitHub Profile
@s3va
s3va / ipnetns.sh
Created October 11, 2025 13:16
ip network name spaces
#!/bin/bash
sudo ip netns add tgspace
sudo ip netns exec tgspace ip link set lo up
sudo ip link add veth0 type veth peer name veth1
sudo ip link set veth1 netns tgspace
sudo ip addr add 192.168.123.1/24 dev veth0
sudo ip link set veth0 up
sudo ip netns exec tgspace ip addr add 192.168.123.2/24 dev veth1
sudo ip netns exec tgspace ip link set veth1 up
@s3va
s3va / audio.php
Last active October 11, 2025 01:21
audio player of oga files in html page my javascript in php
<?php
// $files = glob("*.oga");
$files = glob('*.{oga,mp3}', GLOB_BRACE);
sort($files);
function formatSize($bytes) {
if ($bytes >= 1048576) return number_format($bytes / 1048576, 2) . ' MB';
if ($bytes >= 1024) return number_format($bytes / 1024, 2) . ' KB';
return $bytes . ' bytes';
}
@s3va
s3va / ServiceWithScope.kt
Created July 17, 2025 08:14
Coroutine Scope of Service (or something like this).
class YourService : Service() {
private val job = SupervisorJob()
private val scope = CoroutineScope(Dispatchers.IO + job)
fun foo() {
scope.launch {
// Call your suspend function
}
}
override fun onDestroy() {
@s3va
s3va / CrateBitmapWithCircleInIt.kt
Created November 26, 2024 10:54
Crate Bitmap With Circle In It
// https://stackoverflow.com/a/68228461/11798617
private fun drawCircle300(): Bitmap? {
var radius = 150f
val bitmap = Bitmap.createBitmap(
(radius * 2).toInt(),
(radius * 2).toInt(),
Bitmap.Config.ARGB_8888
)
@s3va
s3va / serializationtype.kt
Last active September 7, 2024 16:55
koltin serialization polymorphizm. "type" field in json
import kotlinx.serialization.DeserializationStrategy
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.*
import kotlinx.serialization.SerialName
@Serializable
@JsonClassDiscriminator("mytype")
sealed class ContentRequest
@s3va
s3va / JsoJsonPreProcessingAdapterFactorynPre
Created June 24, 2024 20:36 — forked from mypplication/JsoJsonPreProcessingAdapterFactorynPre
Gson TypeAdapterFactory to handle when API return empty array instead of null value
/**
* Usage : gsonBuilder.registerTypeAdapterFactory(JsonPreProcessingAdapterFactory())
**/
class JsonPreProcessingAdapterFactory : TypeAdapterFactory {
override fun <T> create(gson: Gson, type: TypeToken<T>): TypeAdapter<T>? {
if (!Object::class.java.isAssignableFrom(type.rawType) ||
Iterable::class.java.isAssignableFrom(type.rawType)
@s3va
s3va / readme.txt
Created February 5, 2024 11:20
a VIDEO not a SHORT
Just remove the 'shorts' from the URL and replace it with: 'watch?v='
E.g.: youtube.com/shorts/XXXXXXX into: youtube.com/watch?v=XXXXX
https://www.reddit.com/r/youtube/comments/um9p9u/comment/j7j7im2/
@s3va
s3va / AndroidManifest.xml
Created September 20, 2023 01:58
*#*#123123#*#*
<receiver
android:name=".MySecretReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.provider.Telephony.SECRET_CODE" />
<data android:scheme="android_secret_code" android:host="123123"/>
</intent-filter>
</receiver>
http://simonmarquis.github.io/Android-SecretCodes/
@s3va
s3va / mailactivity.kt
Created August 1, 2023 21:54
running line
findViewById<TextView>(R.id.running_text).isSelected=true
@s3va
s3va / timeclient37.pl
Last active April 6, 2023 22:49
perl script to get unix time (port 37)
#!/usr/bin/perl
use POSIX qw(strftime);
use IO::Socket::INET;
### binmode(STDIN);
$serverip = $ARGV[0];
if(not defined $serverip){
$serverip = '192.168.46.114';