Sections

2019-02-10

Google+ shutting down, retiring Soundcloud, added altcoin addresses, trying to mine crypto

Just so that you know, I have made quite a major sidebar update.

Google+ links to my profile were removed because on 2nd April it will be stopped. I tried to use it for a while in 2015 before going back to Facebook. I couldn't make proper use of the Circles. In my newsfeed there are more photographs and less memes than on Facebook, so I suppose it's turned into some kind of Instagram for me. People will remember those times when Google+ profile was necessary to comment on YouTube. Exactly for these types of occasions when a service is going down I make these Fragments of * Philosophy. Instead of writing longer articles, I write shorter posts on Facebook in Czech, so this blog isn't getting much. Also most of the time it's enough just to update an existing post instead of writing new one. At some point it'll be beneficial to convert this blog to a simple static website that would load on almost anything. The Web can exist without bloat, there's no need to go back to Gopher, just kick out all the JavaScript libraries and replace ads with simple GIFs. Then maybe I wouldn't need to decrapify it with 122 868 network and 121 397 cosmetic filter rules in uBlock Origin. Google's now trying to break these kind of Chrome extensions so more people see their ads. But they won't build their Fiber in Prague so there's some bandwidth to spare for them. Remember, we're still on CETIN/O2 copper wires with 32 Mbps maximum effective download. There's UPC fibre with advertised 400 Mbps down, but it's horrendously expensive with probably even more horrendous aggregation (1 Gbps link partitioned over 6 apartments makes only 167 Mbps guaranteed for each) and they even don't give a public IPv4 address. I envy those with a true symmetric gigabit connection. Also there's no point in Huawei building their backdoored 5G network if people exhaust their few GB of cellular data in a few minutes on 4G, having their speed slowed down to dial-up levels, and that if the operator is benevolent. I got 32 kbps. Orange in Slovakia gives 128 kbps. It's a cartel in there.

SoundCloud account was retired because I have ran out of time limit while finally getting my ass off to upload the FL section of Just Beginnings Being Beginnings, so I had to remove some old Soredemo songs. You'll have to use BandCamp or ModArchive for these now. I have only 320 kbps MP3s, so they cannot be uploaded on BandCamp without shameful transcoding, even if to SoundBlaster Pro quality WAVs (8-bit 22050 Hz stereo), as BandCamp insists on lossless uploads. While I still have the .flp, I have since lost the samples and soundfonts I have used, so I can't reexport to a lossless format without it sounding somewhat different. I may try to resurrect some of these, but that'd be for another album, like Beginnings Revisited. On the other side, the OpenMPT section is a different story. I can upload them to Modarchive and export a new FLAC whenever I want, so I can upload it to BandCamp too. Also since OpenMPT is free and open source, I can even sell the music made with it, because I have ever used only a pirated version of FL. Nevetheless to do so "legally" requires a živnostenský list in Czechia, which is something like a Trade Certificate. This also brings many other obligations and some taxation, so grey market best market. For this reason I've not yet bothered to set up PayPal payments on BandCamp, so you have to enter 0, hope the traffic is under 100 downloads per month, and instead fully optionally and voluntarily send me some cryptocurrency supported by my blockchain.info wallet I made 5 years ago exactly for this purpose.

That brings me to those extra crypto wallets I added. Back in 2014 the only relevant altcoin was Litecoin (maybe Dogecoin but that one died as quickly as the meme) and blockchain.info supported only Bitcoin. Since then, support for Ethereum, Bitcoin Cash, and Stellar was added. The wallet addresses for these other ones were somewhat hidden, I had to open the "request" dialog. No donation came ever to the Bitcoin one since the time it was created and the address put around various places. Only since I started mining CryptoTab something started to pour in. Therefore maybe no one uses Bitcoin for mere donations now and I should try some altcoins instead. Probably I should look more into Monero as this one is way more anonymous and is currently the most profitable to mine on CPUs, which were considered obsolete for mining with those ASIC-able algorithms some time ago. My old GTX 660 isn't supported, neither by CryptoBrowser nor BetterHash, so I have to use NiceHash Miner Legacy. But in my laptop, there's a MX150 that is supported, so while mining on laptops isn't a good idea due to the cooling, this one Acer Aspire 5 has ultrabook parts in a more traditional 15.6" form factor and copper heatpipes can be seen from the vents under, so if placed correctly to allow heat to travel upwards, it should be fine. In fact, I'm getting around 700 H/s on i7-5820K and around 400 H/s on i7-8550U+MX150 in CryptoBrowser. They say it mines Monero really, but don't know which kind of CryptoNight it's using because the hashrate is too high for what I'm getting on NiceHash in V8. Also for the GPU side, X16R used for Ravencoin seems to be the most profitable somehow. Both CryptoNight and X16R are designed to be ASIC-resistant. Cryptonight relies on fast 2 MB of cache needed for each thread, which is too expensive to provide for many of them, but is readily available in any modern CPU. Certainly not those 2008 Meltdown-resistant Atoms without L3 cache and measly 512k of L2. I have 2 of those. Guess by not having something, the system turns out to be more secure. Take notes, Intel. X16R alters 16 different algorithms including CryptoNight based on the hash of the previous block, which sounds quite silly but it works, because it requires either programmability or 16 different sections for each subalgorithm. Nevertheless, as RISC-V is shaping up and ARM is going places, leaving power-hungry MIPS and unsuccessful PowerPC forgotten in time, there can be viable and mainly reusable mining clusters based on these, like people build with Raspberry Pis, especially coupled with FPGAs, which GPUs are essentially becoming. There's still a concern with the power draw and too expensive electricity. Offgrid mining from renewable resources is the way to go and should be invested in more. You can profitably mine ongrid only if you happen to get a "promotional" electricity tariff or actually get paid to consume the surplus during the "duck belly" from all the solar power plants, or as in China's case, export and import restrictions. Many governments and banks are investing in crypto, occasionally banning, taxing, or discouraging them to have as much as possible for themselves and as little as possible for the cizizens. USA typically instead of blocking access to Silk Road, they just made a raid and seized around 114 kBTC. At least these raids don't affect that many people, unlike blocking sites with content not in line with the propaganda. Turkey can never join EU if Erdogan keeps blocking stuff. But in USA there are blockings not caused by having a different opinion than the government, but by sharing copyrighted or producing patented material. It goes against what we were taught as kids, that is to share, especially when making a copy of a file is that easy. It curbs communication, making people more hikikomori, and limits technological progress. I actually condone when Chinese break some intellectual property and manufacture a decent ripoff, because that means there's a competition. But I still condemn the Great Chinese Firewall, the Tiamannen massacre, the Falun Gong pursuit, the way Tibet and Hong Kong are being treated etc. No side, be it USA or China (formerly USSR), is holy infallible great utopia. Both government methods have flaws. And that's where cryptoanarchism should step in.

2019-01-21

Programovací jazyky Č/Č++ a ZVUKSI

Mnoho čecháčků má s programováním problém v tom, že syntax je anglicky. Proto jsem se rozhodl přeložit BASIC a C do češtiny. Pro Slováky by byl vhodný ČOBOL, ale na mém slovenštinu bude poznat, že to dělal Čech, takže to přenechám Slovákům samotným.



ZVUKSI

Začátečníkův VšeÚčelový Kód Symbolických Instrukcí

V BASICu jsem neprogramoval ani nepamatuju, a taky se mi nechce obcházet určité elegantnosti v návrhu Pythonu, takže ZVUKSI je víc pseudokód než Č. Podle úrovně symbolického myšlení je možné místo BUDIZ, ROVNO, NEROVNO, JE, NENI, VETSI, MENSI, NEVETSI, NEMENSI apod. používat odpovídající znaménka, ale to by COBOLovitost ZVUKSI tolik nevynikla. Taky by se měl ZVUKSI dát psát na české klávesnici, kde některá znaménka cílová skupina nemusí najít, nebo AltGr nefunguje.

Vyhrazený slovníček podle QBASIC 1.1 a VB.NET (todo):

DO...LOOP, END, EXIT, FOR...NEXT,
IF...THEN...ELSE, GOSUB...RETURN,
GOTO, ON...GOSUB, ON...GOTO,
SELECT CASE, STOP, SYSTEM
 
CONST, DATA, DIM, ERASE, OPTION BASE,
READ, REDIM, REM, RESTORE, SWAP,
TYPE...END TYPE
 
CALL, DECLARE, EXIT, FUNCTION, RUN,
SHELL, SHARED, STATIC, SUB
 
CLS, CSRLIN, INKEY$, INP, INPUT,
KEY (Assignment), LINE INPUT, LOCATE,
LPOS, LPRINT, LPRINT USING, OPEN COM,
OUT, POS, PRINT, PRINT USING, SPC,
SCREEN Function, TAB, VIEW PRINT,
WAIT, WIDTH
 
CIRCLE, COLOR, GET (Graphics), LINE,
PAINT, PALETTE, PCOPY, PMAP, POINT,
PRESET, PSET, PUT (Graphics),
SCREEN Statement, VIEW, WINDOW
 
CHDIR, KILL, MKDIR, NAME, RMDIR
 
CLOSE, EOF, FILEATTR, FREEFILE
GET (File I/O), INPUT, INPUT$,
LINE INPUT, LOC, LOCK, LOF, OPEN,
PUT (File I/O), SEEK Function,
SEEK Statement, UNLOCK, WRITE
 
CLEAR, FRE, PEEK, POKE
 
ASC, CHR$, HEX$, INSTR, LCASE$, LEFT$,
LEN, LSET, LTRIM$, MID$ Function, MID$
Statement, OCT$, RIGHT$, RSET, RTRIM$
SPACE$, STR$, STRING$, UCASE$, VAL
 
ABS, ASC, ATN, CDBL, CINT, CLNG, COS,
CSNG, CVDMBF, CVSMBF, EXP, INT, LOG,
RANDOMIZE, RND, SGN, SIN, SQR, TAN,
TIME$ Function
 
COM, ERDEV, ERDEV$, ERL, ERR, ERROR,
KEY (Event Trapping), ON COM, ON ERROR,
ON KEY, ON PEN, ON PLAY, ON STRIG,
ON TIMER, PEN, PLAY (Event Trapping),
RESUME, RETURN, STRIG, TIMER Function,
TIMER Statement


AddHandler AddressOf Alias And
AndAlso As Boolean ByRef
Byte ByVal Call Case
Catch CBool CByte CChar
CDate CDbl CDec Char
CInt Class Constraint Class Statement CLng
CObj Const Continue CSByte
CShort CSng CStr CType
CUInt CULng CUShort Date
Decimal Declare Default Delegate
Dim DirectCast Do Double
Each Else ElseIf End Statement
End <keyword> EndIf Enum Erase
Error Event Exit False
Finally For (in For…Next) For Each…Next Friend
Function Get GetType GetXMLNamespace
Global GoSub GoTo Handles
If If() Implements Implements Statement
Imports (.NET Namespace and Type) Imports (XML Namespace) In In (Generic Modifier)
Inherits Integer Interface Is
IsNot Let Lib Like
Long Loop Me Mod
Module Module Statement MustInherit MustOverride
MyBase MyClass Namespace Narrowing
New Constraint New Operator Next Next (in Resume)
Not Nothing NotInheritable NotOverridable
Object Of On Operator
Option Optional Or OrElse
Out (Generic Modifier) Overloads Overridable Overrides
ParamArray Partial Private Property
Protected Public RaiseEvent ReadOnly
ReDim REM RemoveHandler Resume
Return SByte Select Set
Shadows Shared Short Single
Static Step Stop String
Structure Constraint Structure Statement Sub SyncLock
Then Throw To True
Try TryCast TypeOf…Is UInteger
ULong UShort Using Variant
Wend When While Widening
With WithEvents WriteOnly Xor
#Const #Else #ElseIf #End
#If = & &=
* *= / /=
\ \= ^ ^=
+ += - -=
>> Operator >>= Operator << <<=


Euklidův algoritmus v ZVUKSI:

----------------------------------------

VYPIS ""
VYPIS "NSD a Bezout 2 celých čísel."
VYPIS ""

ROZMER r JAKO CELE()
VSTUP "a := ", r(0)
VSTUP "b := ", r(1)

ROZMER k BUDIZ 1 JAKO CELE
ROZMER q JAKO CELE()
POZN Jednotková matice
ROZMER x BUDIZ (1, 0) JAKO CELE(2)
ROZMER y BUDIZ (0, 1) JAKO CELE(2)

ZATIMCO r(-1) NEROVNO 0 DELEJ
    q(k) BUDIZ r(k-1) DEL r(k) ' q je o 1 pozadu
    r(k) BUDIZ r(k-1) ZB r(k) ' názorné modulo
    x(k) BUDIZ x(k-1)-q(-1)*x(k)
    y(k) BUDIZ y(k-1)-q(-1)*y(k)
    k BUDIZ k + 1
SMYCKA

VYPIS ""
VYPIS "NSD(", a, ", ", b, ") = ", r(k), " = ", x(k), " * ", r(0), " + ", y(k), " * ", r(1)
VYPIS ""

JESTLI r(k) ROVNO 1 TAK
    VYPIS "Čísla jsou nesoudělná."
    VYPIS ""
KONEC JESTLI

VYPIS "Koncový stav: " ' mezivýpočty
VYPIS ""
VYPIS "q = ", q
VYPIS "r = ", r
VYPIS "x = ", x
VYPIS "y = ", y
VYPIS "k = ", k
VYPIS ""

KONEC

----------------------------------------



Č/Č++

Pro tuhle modifikaci jsem kdysi dal dohromady hlavičku plnou #defineů. Mám ji na starém netbooku. Tahle implementace by mohla doopravdy fungovat. Nevýhodou je, že původní vyhrazená slova jsou stále vyhrazená. Také názvy funkcí standardních knihoven by měly být přeloženy, ale nechce se mi. Také nejde psát na české klávesnici.

Je to také příležitost pro konzistentnější typový systém, který snese rozšíření. Používá to HolyC, Zig, Kotlin, Rust a kdeco ještě.
C jako celé, N jako nezáporné, Z jako znak, P jako plovoucí. Číslo za ním označuje počet bitů. K plovoucím lze přidat ještě R jako rozšířený rozsah za cenu nižší přesnosti. Zpravidla se jedná o 2x delší typ s useknutou mantissou, aby končila v půlce. Takové typy se objevují ve strojovém učení. Nejkratší je furt napsat int/cele nebo float/plov, když nechceme řešit, jak velký typ je potřeba. Pythonu stačí 4: bool, nafukovací int, nafukovací float, str.

C8    N8    N0   Z8
C16   N16   N1   Z16
C32   N32   P32  Z32
C64   N64   P64
C128  N128  P80

signed char  unsigned char       void         char
short        unsigned short      bool         char16_t
int          unsigned            float        char32_t/wchar_t
long         unsigned long       double
long long    unsigned long long  long double

Poslední dobou se používají různé druhy plovoucích čísel, což se hodí do typového systému zanést:

P##p - přesné - P(##/2) s mantissou prodlouženou o ##/2 bitů
P## - standardně podle IEEE
P##r - rozšířený rozsah - P(##*2) s mantissou useknutou o ##/2 bitů

IEEE nestandardizuje 8-bitový plovoucí formát, takže P16p není z čeho odvodit, a z 8-bitových jde jenom P8r. Často se uvádí P8 jako 1-4-3, což je jen 1 vyměněný bit od P8r. Pak jsou tu ještě posit čísla, která se určují počtem bitů a rozsahem, ale v těch se nevyznám.

Vyhrazený slovníček (* pouze v C++, ** přibylo v C++11 až C++20):

alignas**           zarovnat
alignof**           zarovnani
asm*                symbolickeprikazy symprik
atomic_cancel**     nedelitelnezrus nedelzrus
atomic_commit**     nedelitelneposli nedelposli
auto                promenna prom funkce fun
bool*               priznak
break               prerus
case                pripad
catch*              chytni zachyt chyt
char                znak
char8_t**           znak8
char16_t**          znak16
char32_t**          znak32
class*              trida
concept**           pojem
const               stala stale staly st
consteval**         stalevyhod stvyh
constexpr**         stalyvyraz stvyr
continue            pokracuj
decltype**          prohlasdruh prohldruh
default             vychozi
delete*             smaz
do                  delej
double              realny realna realne
else                jinak
enum                vycet
explicit*           narovinu
export*             vyvez
extern              vnejsi
false*              lez
float               plovouci plov
for                 pro
friend*             soudruh pritel
goto                jdina
if                  jestli kdyz
inline              samodosad vradku
int                 cely cela cele
long                dlouhy dlouha dlouhe
mutable*            menitelny menitelna menitelne
namespace*          prostor
new*                novy
noexcept**          bezvyjimky
nullptr**           nic
operator*           operace
private*            soukromy soukroma soukrome
protected*          chraneny chranena chranene
public*             verejny verejna verejne
register            registr
return              vrat
short               kratky kratka kratke
signed              znamenkovy znam
sizeof              velikost
static              stojaty
static_assert**     stojatevynuceni stojvyn stvyn
struct              struktura
switch              prepni
template*           sablona
this*               toto tohle tento sebe se
thread_local**      vlaknuvlastni
throw*              vyhod
true*               pravda
try*                zkus
typedef             definujtyp deftyp
typeid*             indetifikacetypu identtypu idtypu
typename*           jmenotypu jmtypu
union               jednota
unsigned            neznamenkovy nezaporny nezap kladny
using*              pouzivaje pouzij
virtual*            virtualni mysleny myslena myslene
void                prazdno procedura proc
volatile            nestaly
wchar_t             sirokyznak
while               zatimco behem
override**          prerizeni pretizeni
final**             konecny konecna konecne
audit**             proverka
axiom**             dogma
#if                 jestli kdyz
#elif               jinakjestli jinakkdyz
#else               jinak
#endif              konecjestli koneckdyz
#ifdef              jestlistan kdyzstan
#ifndef             jestlinestan kdyznestan
#define             stanov
#undef              zrus
#include            zahrn
#line               radek
#error              chyba
#pragma             ucin prekl prekladac
#defined            stanoveno
#__has_include**    mazahrnuto
#__has_cpp_attribute** mavlastnost
_Pragma**           prekladac


Euklidův algoritmus v Č:

----------------------------------------

#include "cz.h"
zahrn <stdio.h>
zahrn <stdlib.h>

stanov PUV_KAP 16

// Co to je za jazyk, když si musím psát vlastní vypisování pole?
procedura vypispole(cele* pole, cele velikost){
    jestli(velikost > 0 && pole){
        printf("[%d", pole[0]);
        pro(cele i = 1; i < velikost; ++i){
            printf(", %d", pole[i]);
        }
        puts("]");
    }
}

cele hlavni(){
    cele a, b, k = 1, kap = PUV_KAP; cele *q, *x, *y;
    x = malloc(PUV_KAP);
    y = malloc(PUV_KAP);
    x[0] = 1; x[1] = 0; // jednotková matice
    y[0] = 0; y[1] = 1;
    printf("a := "); scanf("%d", &a);
    printf("b := "); scanf("%d", &b);

    zatimco(r[k] != 0){
        q[k] = r[k-1]/r[k]; // q je o 1 pozadu
        r[k] = r[k-1]%r[k]; // názorné modulo
        x[k] = x[k-1]-q[k]*x[k];
        y[k] = y[k-1]-q[k]*y[k];
        ++k;
        jestli(k >= kap){
            kap *= 2;
            y = realloc(y, kap);
            x = realloc(x, kap);
        }
    }

    printf("\nNSD(%d, %d) = %d = %d * %d + %d * %d\n\n", a, b, r[k], x[k], r[0], y[k], r[1]);

    jestli(k == 1){
        puts("Čísla jsou nesoudělná.");
    }

    puts("Koncový stav:"); // mezivýpočty
    printf("q = "); vypispole(q, k);
    printf("r = %d\n", r);
    printf("x = "); vypispole(x, k);
    printf("y = "); vypispole(y, k);
    printf("k = %d\n", k);

    free(x); free(y);
    vrat 0;
}

----------------------------------------

Povolené Unicode znaky v identifikátorech podle C18:
00A8, 00AA, 00AD, 00AF, 00B2–00B5, 00B7–00BA, 00BC–00BE, 00C0–00D6, 00D8–00F6, 00F8–00FF, 0100–167F, 1681–180D, 180F–1FFF, 200B–200D, 202A–202E, 203F–2040, 2054, 2060–206F, 2070–218F, 2460–24FF, 2776–2793, 2C00–2DFF, 2E80–2FFF, 3004–3007, 3021–302F, 3031–303F, 3040–D7FF, F900–FD3D, FD40–FDCF, FDF0–FE44, FE47–FFFD, 10000–TamToStejněNikohoNezajímajá

Takže nepovolené znaky jsou: ¡¢£¤¥¦§©«¬®°±¶»¿×÷ ᠎           ‎‏‐‑‒–—―‖‗‘’‚‛“”„‟†‡•‣․‥…‧ ‰‱′″‴‵‶‷‸‹›※‼‽‾⁁⁂⁃⁄⁅⁆⁇⁈⁉⁊⁋⁌⁍⁎⁏⁐⁑⁒⁓⁕⁖⁗⁘⁙⁚⁛⁜⁝⁞  [šipky, rovnítka, APL a OCR] [pseudografika, dingbats] [další šipky, braillovo písmo, další rovnítka, alchymistické symboly] [další interpunkce]  、。〃〈〉《》「」『』【】〒〓〔〕〖〗〘〙〚〛〜〝〞〟〠〰 [náhradní páry, soukromé užití] ﴾﴿ [neznaky FDD0~FDEF] ﹅﹆ [neznaky FFFE a FFFF]

Další znaky nepovolené na začátku: 0300–036F, 1DC0–1DFF, 20D0–20FF, FE20–FE2F

To jsou jenom diaktitická kombinační znaménka a kombinační ligatury



ČOBOL (TODO)

No tak můžu to zkusit, ale těch slov je hodně, takže se to protáhne.

Vyhrazený slovníček podle IBM na z/OS:

ACCEPT
ACCESS
ADD
ADDRESS
ADVANCING
AFTER
ALL
ALPHABET
ALPHABETIC
ALPHABETIC-LOWER
ALPHABETIC-UPPER
ALPHANUMERIC
ALPHANUMERIC-EDITED
ALSO
ALTER
ALTERNATE
AND
ANY
APPLY
ARE
AREA
AREAS
ASCENDING
ASSIGN
AT
AUTHOR
BASIS
BEFORE
BEGINNING
BINARY
BLANK
BLOCK
BOTTOM
BY
CALL
CANCEL
CBL
CD
CF
CH
CHARACTER
CHARACTERS
CLASS
CLASS-ID
CLOCK-UNITS
CLOSE
COBOL
CODE
CODE-SET
COLLATING
COLUMN
COM-REG
COMMA
COMMON
COMMUNICATION
COMP
COMP-1
COMP-2
COMP-3
COMP-4
COMP-5
COMPUTATIONAL
COMPUTATIONAL-1
COMPUTATIONAL-2
COMPUTATIONAL-3
COMPUTATIONAL-4
COMPUTATIONAL-5
COMPUTE
CONFIGURATION
CONTAINS
CONTENT
CONTINUE
CONTROL
CONTROLS
CONVERTING
COPY
CORR
CORRESPONDING
COUNT
CURRENCY
DATA
DATE-COMPILED
DATE-WRITTEN
DAY
DAY-OF-WEEK
DBCS
DE
DEBUG-CONTENTS
DEBUG-ITEM
DEBUG-LINE
DEBUG-NAME
DEBUG-SUB-1
DEBUG-SUB-2
DEBUG-SUB-3
DEBUGGING
DECIMAL-POINT
DECLARATIVES
DELETE
DELIMITED
DELIMITER
DEPENDING
DESCENDING
DESTINATION
DETAIL
DISPLAY
DISPLAY-1
DIVIDE
DIVISION
DOWN
DUPLICATES
DYNAMIC
EGCS
EGI
EJECT
ELSE
EMI
ENABLE
END
END-ADD
END-CALL
END-COMPUTE
END-DELETE
END-DIVIDE
END-EVALUATE
END-IF
END-INVOKE
END-MULTIPLY
END-OF-PAGE
END-PERFORM
END-READ
END-RECEIVE
END-RETURN
END-REWRITE
END-SEARCH
END-START
END-STRING
END-SUBTRACT
END-UNSTRING
END-WRITE
ENDING
ENTER
ENTRY
ENVIRONMENT
EOP
EQUAL
ERROR
ESI
EVALUATE
EVERY
EXCEPTION
EXIT
EXTEND
EXTERNAL
FALSE
FD
FILE
FILE-CONTROL
FILLER
FINAL
FIRST
FOOTING
FOR
FROM
FUNCTION
GENERATE
GIVING
GLOBAL
GO
GOBACK
GREATER
GROUP
HEADING
HIGH-VALUE
HIGH-VALUES
I-O
I-O-CONTROL
ID
IDENTIFICATION
IF
IN
INDEX
INDEXED
INDICATE
INHERITS
INITIAL
INITIALIZE
INITIATE
INPUT
INPUT-OUTPUT
INSERT
INSPECT
INSTALLATION
INTO
INVALID
INVOKE
IS
JUST
JUSTIFIED  
KANJI
KEY  
LABEL
LAST
LEADING
LEFT
LENGTH
LESS
LIMIT
LIMITS
LINAGE
LINAGE-COUNTER
LINE
LINE-COUNTER
LINES
LINKAGE
LOCAL-STORAGE
LOCK
LOW-VALUE
LOW-VALUES
MEMORY
MERGE
MESSAGE
METACLASS
METHOD
METHOD-ID
MODE
MODULES
MORE-LABELS
MOVE
MULTIPLE
MULTIPLY
NATIVE
NATIVE_BINARY
NEGATIVE
NEXT
NO
NOT
NULL
NULLS
NUMBER
NUMERIC
NUMERIC-EDITED
OBJECT
OBJECT-COMPUTER
OCCURS
OF
OFF
OMITTED
ON
OPEN
OPTIONAL
OR
ORDER
ORGANIZATION
OTHER
OUTPUT
OVERFLOW
OVERRIDE
PACKED-DECIMAL
PADDING
PAGE
PAGE-COUNTER
PASSWORD
PERFORM
PF
PH
PIC
PICTURE
PLUS
POINTER
POSITION
POSITIVE
PRINTING
PROCEDURE
PROCEDURE-POINTER
PROCEDURES
PROCEED
PROCESSING
PROGRAM
PROGRAM-ID
PURGE
QUEUE
QUOTE
QUOTES
RANDOM
RD
READ
READY
RECEIVE
RECORD
RECORDING
RECORDS
RECURSIVE
REDEFINES
REEL
REFERENCE
REFERENCES
RELATIVE
RELEASE
RELOAD
REMAINDER
REMOVAL
RENAMES
REPLACE
REPLACING
REPORT
REPORTING
REPORTS
REPOSITORY
RERUN
RESERVE
RESET
RETURN
RETURN-CODE
RETURNING
REVERSED
REWIND
REWRITE
RF
RH
RIGHT
ROUNDED
RUN
SAME
SD
SEARCH
SECTION
SECURITY
SEGMENT
SEGMENT-LIMIT
SELECT
SELF
SEND
SENTENCE
SEPARATE
SEQUENCE
SEQUENTIAL
SERVICE
SET
SHIFT-IN
SHIFT-OUT
SIGN
SIZE
SKIP1
SKIP2
SKIP3
SORT
SORT-CONTROL
SORT-CORE-SIZE
SORT-FILE-SIZE
SORT-MERGE
SORT-MESSAGE
SORT-MODE-SIZE
SORT-RETURN
SOURCE
SOURCE-COMPUTER
SPACE
SPACES
SPECIAL-NAMES
STANDARD
STANDARD-1
STANDARD-2
START
STATUS
STOP
STRING
SUB-QUEUE-1
SUB-QUEUE-2
SUB-QUEUE-3
SUBTRACT
SUM
SUPER
SUPPRESS
SYMBOLIC
SYNC
SYNCHRONIZED
TABLE
TALLY
TALLYING
TAPE
TERMINAL
TERMINATE
TEST
TEXT
THAN
THEN
THROUGH
THRU
TIME
TIMES
TITLE
TO
TOP
TRACE
TRAILING
TRUE
TYPE
UNIT
UNSTRING
UNTIL
UP
UPON
USAGE
USE
USING
VALUE
VALUES
VARYING
WHEN
WHEN-COMPILED
WITH
WORDS
WORKING-STORAGE
WRITE
WRITE-ONLY
ZERO
ZEROES
ZEROS



2019-01-06

1. 5letka je za námi, soudruzi!


Tentokrát bude výroční příspěvek česky, protože anglicky mluvící země si ještě socialismus nevyzkoušely, aby zjistily, že není lepší než jiné formy státismu. Pojem 5letka pro ně proto nic neznamená. Pro ně byl výroční článek o 4. výročí, což je délka volebního mandátu.

Přibývání nových článků je čím dál tím pomalejší, že už by se mohlo vyplatit z toho udělat statickou stránku v jednoduchém HTML, která by se načítala rychle i po vyčerpání datového balíčku, případně v zemích, kde neplatí síťová neutralita.

ANSI grafy jsou úžasné.



MĚSÍČNĚ:

19+█

18+▒
17+▒
16+▒
15+▒
14+▒
13+▒
12+▒
11+▒
10+▒
09+▒█
08+▒▒
07+▒▒
06+▒▒
05+▒▒█  ██                                      █  █
04+▒▒▒█ ▒▒███    █ █       █    █               ▒  ▒  █
03+▒▒▒▒█▒▒▒▒▒ █ █▒█▒██    █▒█   ▒             ██▒  ▒ █▒
02+▒▒▒▒▒▒▒▒▒▒█▒█▒▒▒▒▒▒█  █▒▒▒   ▒█   █  █  █  ▒▒▒  ▒ ▒▒     █  █  ██
01+▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██▒▒▒▒█ █▒▒█  ▒  ▒  ▒██▒▒▒  ▒█▒▒█    ▒  ▒█ ▒▒
00+▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒█▒▒▒▒██▒▒█▒██▒▒▒▒▒▒██▒▒▒▒▒████▒██▒▒█▒▒
   123456789ABC123456789ABC123456789ABC123456789ABC123456789ABC12345
   |  2 0 1 4  |  2 0 1 5  |  2 0 1 6  |  2 0 1 7  |  2 0 1 8  |2019

led 2014 - Backport facebookových poznámek
dub 2016 - 1. měsíc bez článků
led 2016 - 10000 celkových zobrazení
zář 2016 - 1. 2 měsíce za sebou bez článků
srp 2017 - Změna barev, přidán štítek "Code"
zář 2017 - 50000 celkových zhlédnutí
říj 2017 - 5 článků v 1 měsíci, naposledy v červenci 2014
čer~zář 2018 - 4 měsíce bez článků
dub 2019 - robotům vstup zakázán, blog zazálohován



ČTVRTLETNĚ:


33+███

32+▒▒▒
  /
14+▒▒▒
13+▒▒▒   ███
12+▒▒▒███▒▒▒
11+▒▒▒▒▒▒▒▒▒
10+▒▒▒▒▒▒▒▒▒      ███
09+▒▒▒▒▒▒▒▒▒   ███▒▒▒                              ███
08+▒▒▒▒▒▒▒▒▒   ▒▒▒▒▒▒      ███                     ▒▒▒
07+▒▒▒▒▒▒▒▒▒███▒▒▒▒▒▒      ▒▒▒               ███   ▒▒▒
06+▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██████▒▒▒               ▒▒▒   ▒▒▒
05+▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒███            ▒▒▒███▒▒▒███
04+▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒   ███      ▒▒▒▒▒▒▒▒▒▒▒▒         █
03+▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒███▒▒▒   ███▒▒▒▒▒▒▒▒▒▒▒▒      ███▒
02+▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒███▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒   ███▒▒▒▒
01+▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒   ▒▒▒▒▒▒▒
00+▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒███▒▒▒▒▒▒▒
    1  2  3  4  1  2  3  4  1  2  3  4  1  2  3  4  1  2  3  4  1  2
   |  2 0 1 4  |  2 0 1 5  |  2 0 1 6  |  2 0 1 7  |  2 0 1 8  |2019



ROČNĚ:

2014: █████████████████████████████████████████████████████████████████████████ 67

2015: ██████████████████████████████ 31

2016: ████████████████████ 20

2017: █████████████████ 17

2018: ████████████████ 16



Celkem za 1. 5letku bylo zveřejněno 151 příspěvků, průměrně 30,2 na rok, 7,55 na čtvrtletí a 2,51667 na měsíc. Také bylo nabráno zhruba 75000 celkových zhlédnutí, průměrně 15000 na rok, 3750 na čtvrtletí a 1250 na měsíc.

Komentářů je i za těch 5 let i s možností komentovat anonymně moc málo na to, aby se s nimi dala dělat nějaká statistika. 14 komentářů, z toho 5 spamů.

Přispěno v BTC: 0.00000000. Vy fiaťáci jedni, asi si sem dám reklamy. Nebo bych si moh založit nějaké altcoinové peněženky. Číslo fiatového účtu sem fakt dávat nebudu.


Možné nové štítky:
Meta - pro ohlášení jako toho
ANSI - pro příspěvky používající pseudografiku a potřebující pevnou šířku
GeSeL - pro příspěvky o nebo v GeSeLu
Greentext - pro zelené historky
Memes - podkategorie ZOMFGWTFBBQ
OC - zaručený originální obsah