Very Secure

TheFleet - Next Steps With Data Collection

April 3rd, 2020

So far TheFleet logged 52 out of 100 attempted networks.iI began logging another batch of 45 networks on Fleet2. Fleet3 is currently inactive and waiting for assignment.

Before giving Fleet3 its next assignment, I need to pay some technical debt. The programs I use to query the irc networks for their metadataii are poorly written and undocumented.

Channel-snagger, the program used for grabbing the list of all channels, needs to be rewritten. It currently keeps a cache of the list of channels for individual networks and never updates this cache. This made sense when I first used the program, but now the networks' channel lists are stale. I could simply clear the cache, but the better solution is to make the program more efficient and reliable so caching is not required at all.

Another quirk of the channel-snagger is the makeshift way it handles the ping/pong dance with the servers. Networks require a ping in response to their pongs every N seconds. As a half-hearted attempt to keep the connection alive, I hard coded channel-snagger to send one ping after 30 seconds. Otherwise channel-snagger has no ping/pong logic. So if it takes too much time to receive the channel list from the network, the connection may be dropped for failure to perform the ping/pong routine. This can be fixed by refactoring channel-snagger so that it extends ircbot, which implements a proper ping/pong thread.

The code that queries the network for its maximum number of channels allowed per nick also needs a rewrite. It currently exists as a disorganized clump of scripts. I plan to consolidate them into the channel-snagger.

The above components are ultimately needed for keeping an up to date pool of the next channels to assign for logging. The only other missing element I can think of is a process for removing networks/channels that have already been logged (or have been deemed unloggable) from this pool. Once I have a system I am content with for assigning the next channels to my VMs running TheFleet, I will plan how to analyze the collected data.

  1. For a network to be considered logged, at least 1 channel in the network was logged for 2 continuous weeks without any 1 interruption lasting more than 30 minutes. []
  2. Their list of channels and their max number of channels allowed per nick. []

The First Batch of TheFleet's Logs

April 1st, 2020

To view TheFleet's first batch of logs, setup postgres,i create a user named "thefleet", grant thefleet all privileges on schema public, and create a database named "fleetbotdb".ii Then download and load one of the two sql files that contain the collected data.

fleet2 sql tarball
fleet3 sql tarball

Instructions with commands:

Download the tar of the logs. (You can switch fleet2 to fleet3)

wget http://ztkfg.com/wp-content/uploads/2020/03/fleet2_mar_27_2020.sql.tar.gz
tar -zxvf thefleet2_mar_27_2020.sql.tar.gz; 

Create a home for TheFleet logs by creating a user and database.

su postgres
psql

create user thefleet;
create database fleetbotdb;
grant all privileges on schema public to thefleet;
\q
exit

Load the .sql file into the created db and test to make sure you have at least a couple million rows in the irclog table.

psql -U thefleet fleetbotdb < thefleet2_mar_27_2020.sql

psql -U thefleet fleetbotdb
select count(*) from irclog;
  1. For installing Postgres on Centos6 you can look at the relevant section in my guide to setting up logbot. Name your postgres user thefleet and your database fleetbotdb. []
  2. You can make your life easier by opening pg_hba.conf (found at /var/lib/pgsql/9.4/data/pg_hba.conf on my machine) and changing local connections so that they don't require a password by setting the last value in the column to "trust":

    # "local" is for Unix domain socket connections only
    local   all             all                                     trust
    # IPv4 local connections:
    host    all             all             127.0.0.1/32            trust

    []

Notes on Regular Expressions

March 31st, 2020

In my effort to increase my knowledge of the tools that comprise the linux command line, I've taken the time to review how to use regular expressions by reading a short guide written in 1991. Below are my notes.

***

Regular expressions are used to search for lines of text that match a specific pattern. RE's match text on a per line basis - they do not match patterns that start on one line and end on another.

Characters used for regular expressions can be placed into one of three categories: anchors, character sets, and modifiers.

Anchors are used to specify the position of the pattern in relation to a line of text. Character Sets match one or more characters in a single position. Modifiers specify how many times the previous character set is repeated.

I. Anchors

Two anchor characters are "^" and "$". They are used to match to the beginning and end of a line respectively.

The characters "\<" and "\>" are anchors as as well, see the modifier section below for their details.

II. Character Sets

A simple character set is "hello", this will match "hello" anywhere in the text.

The "." wildcard matches any character.

Characters inside square brackets "[]" match to a character if the character equals any 1 of the characters inside the square brackets.

^[012345689]$ will match a single digit that is not the digit 7.

Square brackets can be used with a shorthand range notation. This shorthand notation can include multiple ranges.

^[0-9]$ is equivalent to ^[0123456789]$

[A-Za-z0-9_] will match a single number, letter, or underscore.

Multiple character sets can be combined by placing them adjacent to each other. Placing a "^" before a character set matches to all characters *except* what is in the brackets.

[aeiou][^aeiou] matches a vowel followed by a non-vowel.

To include a "-" in a character set one can place "-" directly after the opening square bracket. To include a "[" or a "]" one can use an escape backslash.

[-0-9] will match a "-" or a digit.
[-\]] will match a "-" or a "]".

III. Modifiers

The asterisk "*" matches zero or more copies of the previous character set. To match one or more of the previous character set, one can repeat the character set before placing the asterisk.

[0-9][0-9][0-9]* will match a number with 2 or more digits.

To match a character set to text that repeats that character set within a specific range of times, one can use "\{" and "\}". Note that this is an example of when a backslash, normally used to escape characters, causes a character to have a function within a regular expression. Backslashes enabling a special function occurs when the backslash is placed before a "<" or ">" or "{" or "}" or "(" or ")" or a digit.i

[A-Z]\{3,5\} will match 3-5 upper case letters.

The possible values for x and y in \{x,y\} are 0-255. If the y value is omitted, the character set can be repeated x or more times. If the comma is also omitted then the character set must repeat exactly x times.

To search for words, character sets are placed between "\<" and "\>".

"\<[tT]he\>" will match the word "the" (but not to a word containing "the" such as "other".)

Backreferences - i.e. matching to a previously found pattern - are made using "\(,\)" and "\1".

"\([a-z]\)\1" will match two adjacent identical lower case letters.

Extended Regular Expressions

egrep and awk use extended regular expressions. ERE's do not have the characters whose special meaning are activated via backslash - "\{" , "\}", "\<", "\>", "\(", "\)" .

ERE's have two modifiers not found in basic regular expressions:

"?" matches to 0 or 1 instances of the character set before.
"+" matches to 1 or more isntances of the character set before.

Extended Regular Expressions have a special meaning for the "(" "|" ")" - these characters allow "or" functionaity - allowing one to match a choice of patterns.

"(From|Subject}" will match either "From" or "Subject".

===

After reviewing the guide I was left wondering: for basic regular expressions, how does one match a stringii that appears between x and y times in a row. For example:

Say I want to match to a line that contains 2-4 adjacent ha's and no more, i.e. either:

haha
hahaha
hahahaha

I discovered that one can combine the special characters "\(,\)" with the special characters "\{,\}"

A regex that matches the above three lines, and only the above three lines, is:

"^\(ha\)\{2,4\}$"

  1. This awful design comes from an effort to maintain backwards compatibility for old regular expressions that were written before these functions were introduced. []
  2. And not just a single character. []

TheFleet Test Run Results

March 29th, 2020

Over the past few weeks I attempted to log about 2,500 channels across 100 IRC networks. TheFleet ran on 2 VMs named Fleet2 and Fleet3.i Fleet2 was originally logging ~80 networks, but after about 9 days the program crashed from running out of memory. I restarted Fleet2, and to reduce the chance of the OOM problem repeating,ii I set Fleet2 to log only 35 networks.

The summary of the data collected:iii

VM 1 - "Fleet2"

Began logging on March 4th, 2020 at 23:42 UTC and ended logging on March 27th, 2020 at 21:42 UTC.

Logged 2,490,376 IRC messages.

Attempted to log 35 networks.iv

Managed to produce logs for 17 of the 35 attempted networks.

Joined 547 channels and succesfully logged 463.v

VM 2 - "Fleet3"

Began logging on February 21st, 2020 at 03:41 UTC and ended logging on March 28th, 2020 at 21:46 UTC.

Logged 5,160,930 IRC messages.

Attempted to log 65 networks.vi

Managed to produce logs for 35 of the 65 attempted networks.

Joined 1929 channels and successfully logged 578.vii

  1. You may be curious as to what happened to Fleet1. I had a problem with digitalocean's service. I lost the ability to SSH into my machine and could not recover access. I never started logging with TheFleet on this VM, so I gave up trying to regain access and instead created a new VM. []
  2. I still do not have an understanding of what causes/caused my program to spike in memory usage. I plan to continue with my band-aid solution of logging fewer networks per VM while I work to increase my understanding of how my program and computers in general manage memory. []
  3. To count a channel as successfully logged I allowed for an unlimited number of disconnections as long as each of them individually did not last more than 30 minutes. []
  4. MaddShark, LunarIRC, LUGS, Langochat.net, KewlFun, Italian-Amici, IRDSI, IrcWorld, IRCstorm, IRCnet.gr, ircHax0r, IRCFreakz, IRC2, IRC-Ban.de, IndoGaul, Immortal-Anime, IdleChat, Hub4Ever.Org, homo.net, Griefplay, GreekIRC, GreekChat, Gotham, Global-Irc.Org, GIMPnet, GigaIRC, German-Elite, Genscripts, GeekShed, GeekNode, FyreChat, Futuragora, FreeUniBG, ForumCerdas, ForeverChat []
  5. Networks where TheFleet joined at least 1 channel but in the end was not able to successfully log any channel: IRDSI, IRCnet.gr, GreekIRC

    Successfully logged channels:

    GeekNode: #bitcoin, #troll-gloo, #vdmbot, #pr0nfactory, #RMLL2014-mpl, #aigris, #ffdn-mastodon, #testtest, #aprilchat, #marsnet, #edmsio, #quadrature-ops, #gresille, #34c3, #cfai-lr, #fleurix, #ffdn-suivi, #ffdn-dn42, #alternatives87, #gixopdop, #louvilug, #iloth-ca, #neocade, #fdn-projets, #style-python-dev, #3wa-staff, #lae, #monodon, #minecraft_chiantos, #rezine, #lau, #TERRORIMSE, #Midways-Network, #planete-ASM, #AuvernIX, #adipolab, #vlsk, #ilerouge, #homomachinus, #esigetel, #Midway, #ph7net, #geekfault, #dadazedazeaz, #ldn, #tilima, #hivane, #partipirate, #Troll, #franciadmin, #alternp, #joron, #sudix, #manip, #fromagiens.net, #Magellan, #ceriz-admin, #pouetpouet, #cuisine, #larevolutionrousse, #thinkcode, #axinite-staff, #globenet, #chadoc, #freebsd, #zebulon.fr, #sporthi, #elament, #SCANI, #fosdem, #style-potins, #nniiiaaaaaa, #funlab, #hadoly, #ffdn-formation, #octogen, #evilirc, #hackerspacerouen, #style-python, #vic, #duchesse, #hmm-la-bd, #ppmp, #fdn2, #illyse-admin, #rmllbe, #42admin, #picnat, #arn, #united, #Aqualitad, #RPG, #Chikoumi, #ewo, #ffdn-bistro, #yolorandom, #pp-ektek, #april, #wireless-fr, #RadioAutiste, #Latex, #axinite, #RMLL_2018, #exe-dev, #miricorps, #LaboLyon, #sameswifi, #CnedSIO, #geeknode, #capitole, #betaseries, #Jeanne_D'Hack, #lockpicking-fr, #cryptoloutre, #rmll-noc, #igwan, #tdn, #annarx, #labriqueinter.net, #pe, #pan, #gitoyen-tech, #virtualisation, #42, #staffwm, #wdntw, #testwm, #pclight, #extrifusstory, #ndh, #geeknodecamp, #grenode, #naivart, #Tealer, #pp_ploire, #franctest, #mycelium, #francinet, #AuverNET

    German-Elite: #secnews, #aspies, #meinchan, #drehtür, #Nasu_gaming, #reallife, #talk, #shizetag, #german-elite, #magick, #quizfueralle, #QQQQQQQQQQQQQQ, #eule, #serienjunkies, #radio-tekula.de, #Mathematik, #schwanz, #leechomatics, #lecters-cafe, #joschi, #kontrolle, #maniacommunity, #platinum, #talk-signal, #informatik, #Dexit.Party, #subcentral, #hive, #ru2, #music, #soso, #german_alliance, #brains-sub-chan, #froschinger, #beastarium, #hoerbuch, #, #bsd, #froschi, #wbc-exil, #FrinkC, #rcbintern, #kde-kirigami, #nerds, #shadowlamb, #mo, #Nachhilfe, #planetopia, #Unique-Board, #windows, #diamonds, #alietsche, #radio4us.de, #debian, #fotografie, #konsoleros, #hackers, #debianforum.de, #coding, #klagemauer, #linux, #helper

    FreeUniBG: #belene, #manutd, #test, #balchik, #Sexy, #Bulchat, #irc.Gorna.net, #juventus, #plovdiv, #Game, #kex, #viva, #cska, #bourgas, #FreeZNC, #Bulgaria, #svalki, #Jambol, #irc.telnet.bg, #starazagora, #OnlineDJRadio, #5on5, #Dimitrovgrad, #youtube, #metal, #extreme, #shell, #breakdance, #debian, #welcome, #lamerzone, #gotham, #teteven, #Linux, #pleven, #real, #sofia, #IRC, #chatpat, #Rakovski, #alcoholic, #30-40, #Sladur, #London, #svishtov, #lovech, #ignore, #NorthSide, #realchat, #tyrnovo, #Sliven, #sex, #Varna, #burgaz, #burgas, #linuxhelp, #IRCHelp, #ruse, #irc.sabo.bg, #refresh, #novazagora, #empire, #radio, #shivachevo, #velingrad, #20-30, #doom, #Sweet, #overwatch, #BestShells, #VIP

    Italian-Amici: #TriviaTime, #IRCHelp, #chatitalia, #Divx-Italia, #InFiniTY, #eggdrop, #amici-radio, #vhost, #services, #amici-radio-staff

    Genscripts: #WRnet, #Mapantz, #Genscripts, #speedy

    Futuragora: #ajuda, #cosmos, #zeitgeist, #tecnoponics, #lobby, #IRCBrasil, #opers, #fadev, #feed, #radio, #futuragora, #tvp

    Langochat.net: #langochat, #SpamFilter, #aide

    FyreChat: #kosekroken, #kosebakken, #help, #vana-commits, #!stats@fyrechat.net, #fyrechat, #sandbox

    ForeverChat: #rto, #attractmode, #emuchina, #tosecdev, #MFM, #redump, #MFM-dev, #tosec2.0, #roms4italy, #tosec, #wii-rush, #castroom, #rawdump, #PRCows, #oldemuisos, #foreverchat, #aumame, #RomShepherd, #emulab, #gipsforfun, #collectors, #romvault, #retrofe, #retrogamers, #ut99redirect, #retrodatorer, #therealconacrew, #rivalroms, #mame, #RocketLauncher, #gaming.tombstones, #NGC-PAL, #CAX_hackathon, #vgm, #ssotk, #discord, #darkwater, #uconn

    IRC2: #bit-tech, #insane, #gettoduma, #muhely, #zirc, #V1X, #linux, #autocad, #depresszo, #civil3d, #pc-muhely, #tarskereso, #carp-kviz, #asd, #blender, #30_feletti

    Griefplay: #empireoftanks, #wh40k, #worstheap, #thedancefloor, #irchelp, #ff14, #hearthstone, #starbound, #eve-online, #failheap, #RasberryPi, #griefplay

    IRCFreakz: #ninja, #idlerpg, #australia, #eggdrops, #SaD, #sydney, #Trains, #jedstars.net, #Melbourne, #cncirc, #pc-talk, #ircfreakz, #quiltchat, #axon

    ircHax0r: #servers, #irpg, #sec

    KewlFun: #War, #kewlfun, #Yahtzee, #Profiles, #seen, #truelies

    ForumCerdas: #black_sky, #makassar, #satu, #jakartashells, #Yogyakarta, #ForumCerdas, #dsnnet, #abocy, #games, #makmur, #dago25, #depok, #alowaini, #malang, #bitcoin, #medan, #ukhuwah, #game, #batu, #smart, #rusuh, #mp3, #irene, #waroeng, #bot, #our, #jogjakarta, #kediri, #radio

    Global-Irc.Org: #egghelp, #formula1, #GlobaL-CreW, #syslog, #eggies, #idlerpg, #mp3passion-chat, #services, #worldofwarcraft, #hhchat, #friends, #twitter, #opers, #vhost, #speelhal, #walhalla, #movieplanet, #digitalcity, #cservice, #monitoring

    Hub4Ever.Org: #Rock_in_Roll, #brasil, #Linux, #DreaMule-German, #ahummm, #denis, #, #minasgerais, #DreaMule-English, #hub4ever, #Offtopic-Spanish, #Rodrigo, #DreaMule-French, #Games, #Ajuda, #idle, #Bots []

  6. UniBG, ShadowWorld.Net, QuickFox, DarkerNet, DALnet, Cognet, freenode, IRCsource, Chatters, Blafasel, Black-Cell.net, ZwergenIRC, Zoite, zeolia, Xerologic, WNet, UplinkIRC, UKChatBox, TwistedNet, Tweakers, TripSit, TransAdvice, tm-irc, Teepi, tchattons.com, synIRC, swissIRC.net, SwiftIRC, SurrealChat.net, Subluminal, Striked, SoundsNWaves.net, Snyde, SlashNET, SKYROCK, SiberChat.Org, ShadowFire, SceneP2P, SA-IRC, RootWorlD, RisposteInformatiche, RelicNet, RelaxedIRC, Recycled-IRC, PurpleSurge, PSIGenix, Powers.cl, PowaNet, PIRC.pl, Pilgerer, paranode.net, P2PChat, P2P-NET, oz.org, out-dated.net, Otaku-IRC, Omninet, NFNet, Netrusk, mircphantom.net []
  7. Networks where TheFleet joined at least 1 channel but in the end was not able to successfully log any channel:
    NFNet, TwistedNet, WNet, MagicStar, DALnet, ZwergenIRC, zeolia, UniBG, Mibbit, mircphantom.net, PurpleSurge, Pilgerer, P2P-NET, SA-IRC, Tweakers, Subluminal, SwiftIRC, tchattons.com, Zoite, Snyde, PowaNet, out-dated.net, PIRC.pl, synIRC, IRCsource, oz.org, Otaku-IRC

    Successfully logged channels:

    ShadowFire: #slow, #deathrow, #greytower, #ham.ee, #otc, #triumvirate, #chat, #chase, #hack, #selfharm, #shadowfire, #chucknorris, #americas_army, #warble, #finsprite, #avatarshq, #eve, #bandofbrothers, #monkeybong, #programming, #GTClassroom, #ut, #warez, #tatsi, #insolence, #diablo2, #pimpsanonymous, #non-bus, #wow, #afrikaans, #myadsl.co.za, #jeffftest, #guildwars, #weezel, #tempus-test, #elsewhere, #compsci, #tempus, #avatars, #obliq2, #Dent-O-Soft, #zagamers, #tce, #home, #jefff

    DarkerNet: #net.goth

    tm-irc: #de.wikipedia.huggle, #en.wikipedia.huggle, #irc, #simple.wikipedia.huggle, #serviceslog, #es.wikipedia.huggle, #no.wikipedia.huggle, #GrumpyChat, #konnectirc, #support, #meta.wikimedia.huggle, #area51, #opers, #petan, #staff, #pt.wikipedia.huggle

    Recycled-IRC: #KAISHII-FANSUB, #ANIMES-XDCC, #kigen, #linux, #Mangas-Arigatou, #Help-Fansub, #R0bust, #azk-vip, #honeypot04, #TEAM_OHZORA, #GENSOTEAM, #slam_dunk_fansub, #waazaa, #ZEROFANSUB, #Chuushin-Equipe, #help, #g-corp, #ASGARD-PROJECT, #zero-absolu, #frenchzfourtout_chat, #gabou, #ARCADIAN-PROJECT, #honeypot06, #APPLEFIELD_PROJECT, #MOONLIGHT_PROJECT, #shareyuken, #frenchzfourtout, #loups-garous, #roswell, #SFTD.requests, #SFTD.invite, #disku, #news, #oxygene, #Nyawko, #SOT, #ebooks, #pornparadise, #share-movies, #nt3, #foret, #ah-work, #YYH_Fansubs, #enjoy-hosting, #issekigan-animes, #AONOSCANTRAD, #staff-mirage, #p-claymore, #mibu-fansubs, #tenebreuse, #mangaart, #PREDISTRO-TF, #S&T, #honeypot20, #honeypot23, #ouifm, #JOHNNY-SUBS, #sokaoa, #YU-GI-OH!_FANSUBS, #MIRAGE-STAFF-BAKUMAN, #AH-SECRET, #honeypot21, #honeypot22, #honeypot25, #honeypot24, #honeypot27, #honeypot26, #honeypot29, #honeypot28, #TG, #Soumission-Dressage-Esclave, #numero_du_slot, #inulogic, #TOUCH_PRODUCTIONS, #soai-no-naka, #epoke, #honeypot14, #honeypot15, #honeypot16, #honeypot10, #honeypot11, #honeypot12, #honeypot13, #honeypot18, #honeypot19, #irf, #Eden, #Team_25, #ogs-team, #SASALAND, #INFECTIOUS, #RNK-FANSUBS, #honeypot09, #honeypot08, #honeypot03, #honeypot02, #honeypot01, #honeypot07, #honeypot05, #moches, #extAsia, #SUB-NO-NAKAMA, #honeypot17, #NEMESIS, #Briggs, #silex, #scripts, #neoryu-team, #tglobe, #mft, #oldies-fansub, #potos&co, #korben, #azk-check, #pcm, #shinsekai_STAFF, #SPACE, #Asgard-private, #Nemesix, #mofo, #azk-team, #pangya-fr, #EIEN-NO-KIMOCHI, #honeypot30, #The_Eden, #ANIME-HEART, #iNFEXiOUS-ViP, #nt3-staff, #sexe, #wtf, #workforce, #geekeries, #irf-test, #azk-recrute, #issekigan-staff, #SHINSEKAI, #hayakutrad, #darkside

    Chatters: #gatherstyle, #ppm, #jokes-gr, #rock-cafe, #linux, #cs.gather, #test123, #chatters, #enforcers, #uno, #Zougla-ops, #sex

    RootWorlD: #RocK-HeLP, #ATOLLO-FRIENDS, #irchelp

    TransAdvice: #tss, #ops, #stuff, #politics, #opers, #social, #lobby, #geeks, #bopm, #wiki, #support, #420, #mtf, #lobby-nsfw

    P2PChat: #German, #shareaza-french, #Shareaza-Portuguese, #Shareaza-Dutch, #shareaza-Italian, #Trivia, #shareaza-dev, #thebighack, #shareaza-chat, #diapergals, #shareaza-Arabic, #sharelin, #xdcc, #botpark, #Shareaza-Russian, #Shareaza-Polish, #help, #stux-notes, #p2pchat, #shareaza, #crawler, #Morpheus, #Shareaza-Spanish, #alternative, #razaops, #operhelp

    Netrusk: #agelidProd, #linux62, #wafonly, #cul, #heroeschronicles, #terrasse, ##linux, #services, #dehors, #blabla, #Saloon, #jdr, #clan_drows, #poissonrouge, #backroom, #templars, #aide, #sp4nk-test, #secret, #agelidTest, #PUC, #fsmsb, #marchéspublics, #yevon, #privanst, #maps, #linux, #blatest, #yop, #secrets, #anst, #celibataire-fr

    RisposteInformatiche: #Risposte_Informatiche, #raccontieros, #capre, #CAH, #caiusmaximus, #IRCHelp, #ADeltaX, #libera_chat, #olga, #vHost, #Enrico, #Minecraft, #largodellosvago, #mangaring, #Dragone2, #risoluto, #PA, #PokeMMO

    RelaxedIRC: #doghouse, #movies4earth-chat, #Freedom-zone-chat, #tv-caps, #Freedom-zone, #LimitLessChat, #movies4earth, #siosios

    Black-Cell.net: #zavislaci-admins, #zavislaci, #bcserv4, #bcserv5, #the-lounge

    QuickFox: #4paws, #ash-fox, #Reakt0r, #SIN, #psystra, #gimpgirl, #insilico, #insilico.bots, #Quickfox, #void, #cumboys, #insilico.north, #IceRealm, #yiffle, #subnova, #help, #looney, #IS.East.1, #IS.East.2, #exodus

    Powers.cl: #Metal, #linux

    TripSit: #tripsit.me, #tripsit1, #tripsitters, #welcome

    SoundsNWaves.net: #dj-ops, #justicequest, #frozzbozz, #awesomeradio, #One_Day_At_A_Time

    UKChatBox: #help, #UKChatBox

    Striked: #starburst, #d&d, #xenophase, #boobies, #rawr, #ashtear, #unreal, #idle

    SlashNET: #newtotse, #skulserve, #perlmonks, #lp301, #CriticalFailures, #lp201, #xkcd-music, #pugglewump, #mineraft, #xkcd-sciencefiction, #offtopic, #m-ei, #newrepublic, #innercircle, #newswire, ################################, #kotkamafia, #SETI@home, #zotsluts, #tagmods, #sex, #死, #☭, #paforums_tf2, #boringman, #bucketlog, #pax_gw2, #nricciar, #geohashing, #xkcd, #REDinfo, #idiots-club, #shakespeare, #jupiter, #retrocomputing, #gmg.minecraft, #thegentlemanloser, #codelove, #help, #xkcd-gaming, #xkcd-coding, #eccentric, #LTI_OTR, #℻, #omgcheckplease, #xkcd-signal, #secret-channel, #compsci, #pax_ffl, #twowords, #death, #urination_fans

    ShadowWorld.Net: #ZZZzzzz, #sanctuary, #AAaasstt, #_zzZZZzzz, #cybex.bots

    Teepi: #tribu, #musique, #pcinpact-linux, #asw, #aide, #cab, #wic, #teepi

    UplinkIRC: #minecraft, #UplinkCorp, #jgkamat_, #defcon, #multiwinia, #darwinia, #usurper, #xplice, #wow

    swissIRC.net: #just4fun, #newnigma2, #newnigma2-np, #oscam, #linux, #!/bin/sh, #schaildisoft, #2k5, #newnigma2-team, #Hilfe, #ump, #Treffpunkt

    Xerologic: #ux-chat, #COSMIC, #apps, #MP3JAROCHOS, #ultra-xero, #MASTERWAREZ, #TH3D3N, #zuul-central-xdcc, #pwnd, #scorpio, #xboxland, #1warez, #warez, #moviegods, #toonland, #tdz, #beast-xdcc, #UX-BOTS, #console-world, #search, #psp-moviez, ##COSMIC-BOTS, #MP3GROSEROS, #xboxland-mp3, #MP3GHOSTZ, #xboxland~boobies~bits, #hidd3n-zauberbude, #attrition, #the-club, #cracks, #xvids, #psp-world, #all-new-movies, #movies-r-us, #sb-movies, #mp3, #warez.net

    MauriceRadioLibre: #hopm

    RelicNet: #lobby

    Blafasel: #pybottest, #support, #, #w, #flipdot, #perl, #EstrBny, #test123, #apollo, #cccamp, #go, #freifunk, #fubbi, #unix, #iridium-messages, #33c3, #Badewanne, #ffmuc, #WakeUpFpletz, #game-on

    Omninet: #caleb, #omnomirc, #sorunome, #nspire-lua, #knexflux, #private, #SWLing, #games, #radio, #thebot, #programming, #prizm, #~#withgznc, #br330t, #digital, #lgbt

    MeFalcon: #Das_gebluemelte_Sofa, #Northsman, #Smugglers-BaR, #mefalcon, #radio-hilfe, #quizz, #blubb, #susi, #help, #News, #miroos-privaty, #radio, #DeichMupfel, #neurobeat, #party

    MindForge: #entre_nubes_

    Cognet: #acknak, #dc, #void, #food, #cats, #ccdc, #nomail, #uiuc.notlosers, #SHADOWRUN, #matrixtest, #matrix, #dorks, #tamulug-officers, #minecraft

    SKYROCK: #irc

    PSIGenix: #maplestory, #fitegaem, #aethera, #nwifi, #sushi, #pfalzerwald, #frotzbotdev, #test, #oscuro-destiny, #support, #bottestlab, #coperia3, #deep13, #, #spellbound, #ddb, #rtfo, #gamemusic, #s3pmemag, #werwerwer, #j-poop

    paranode.net: #thelounge, #test, #medusa, #geek, #jungletrain

    SurrealChat.net: #Diagnostics

    []

The Costa Rican Government Has Closed All Beaches and Banned The Sale of Alcohol

March 24th, 2020

The Costa Rican government has announced "Ley Seca" - i.e. temporary prohibition - in response to the coronavirus hysteria.

drylaw-10

But when there's a Will there's a way. The booze black market is alive and well.

drylaw-11

In addition to banning alcohol, the CR government has also mandated that all beaches be closed to the public. Playa Junquillal is always deserted, so I'm not sure how the law applied in this location is supposed to help stop the spreading of a contagious virus.

Anyways, I heard reports that police were calling surfers out of the water so I decided to investigate how the sand ban is being enforced. I took the rav4 for a spin to see if they had closed off any entrances to the beach.

This beach access is open, the sign is a warning for rip currents.
drylaw-5

There's no one on the beach, but again, this is normal for Junquillal.
drylaw-2
drylaw-3

Another beach access point, also open. I checked all of the entrances off the main road so to save time I stayed in my car to take the rest of the pictures.
drylaw-6

Another open access point.
drylaw-7

Alas, we arrive at evidence of the beach ban. Hey dog! Where are you going? Didn't you get the memo?

drylaw-8
drylaw-9

Surfing Localism

March 22nd, 2020

Today I was nearly assaulted while surfing the break five minutes walking distance from where I reside. The fight began shortly after I unwittingly found myself next to a surfer gang. I paddled for the same wave as someone else. I conceded the wave, but apparently even considering going for the wave was a crime and the surfer's buddy started cursing me out. The pack of 3-4 surfers told me to leave the area.

I held my ground water. While I respect the lineup hierarchy, I'm not about to leave a break because some punks tell me to. One of the brazen shitwads paddled up to me and started splashing at me while saying something like, "Get the hell out of here, I already told you to leave." I told him to go fuck himself and in response he got off his board and began to swim at me.

He grabbed my surf board and told me he was going to rip out my fins and then attempted to do so. I was wondering whether I was going to have to go to blows with him. But I wasn't going to be the one to start an aquatic fist fight. I just stared and cursed at him as he tried to pull the fins out of my board. I'm not sure why he thought he was going to be successful - most fins are screwed on tightly and mine are no exception.

After the cunt gave up trying to pull my fins out, I slightly distanced myself from the gang. They were chatting and didn't notice when the current pulled them out of the spot they were previously attempting to defend. So I enjoyed quite a few great waves right where I had originally wanted to surf.

After the session I discussed the events with taxi-driver-turned-amigo over lunch. He said I should have gone and gotten a machete + raised a gang myself and waited for the punks on the beach. While this sounds fun, unfortunately I do not have time to get myself involved in surfer territory wars.

A Short Trip Through Paradise with Friends of Over Ten Years

March 18th, 2020

Before I begin the tale of a wonderful journey with two of my closest friends, I will first introduce the gallo pinto. El gallo pinto, or "the spotted rooster", is the typical breakfast in Costa Rica. The base is rice and beans. In a home environment these are leftovers from the previous day's casado. This base is often mixed with natilla, a sour cream that's not so sour. The other ingredients are a combination of bread, eggs, sausage, cheese, and plantains. It seems like quite a heavy dish to start the day, and it is. Those new to Costa Rica often shy away from this breakfast, but once one has eaten it a few times the meal gets added to the list of reasons to get up in the morning.

arieljamie-66

Anyways, two week ago two of my friends from Stuyvesant High Schooli travelled to Costa Rica from the US and Paris. One is about to begin residency for head and neck surgery, the other is 1-2 years away from completing a dual Ph.D. in Physics. The former went to Princeton for undergrad and is finishing med school at NYU this year. The latter escaped the hell of Chicago University to complete his degree in an exchange program in Paris at Sorbonne Universite.

The amigos stayed for the first few nights in Playa Negra Hotel. The hotel is a tad expensive owing to its location right on the beach. It contains a gated area with a bunch of isolated cabinas. The hotel also has a restauraunt (to my right in the picture) which serves a great gallo pinto albeit at about triple the usual price.

The transition from the hotel to the beach is seamless.

jamiespics-2

On the first day of my friends' visit we fixed the 1st of 2 flat tires the rav4 received during the trip. I had read and took notes on all the steps in my car's manual and watched an instructional video to prepare for this moment. But alas I had not done a practice run. As expected, I encountered an unexpected problem. The lug wrench did not fit easily around the nuts of the wheel, it was so difficult to use the tool that I figured I had the wrong wrench and called a tico surfpal for help.

He rolled up with a car full of surf groupies that were perhaps impressed as he saved the day. After examining the situation surfpal assured us we had the right sized lug wrench and used a makeshift hammer to bang it onto the nuts. After putting on the spare tire we patched the flat tire at the mechanic, ordered a new tire for the next day, and then headed to Tamarindo where I gave my friends a surf lesson.

The forecast had predicted large waves for the day, but the water in Tamarindo was flattissimo. This made the lesson difficult and, unlike Adam, my friends struggled to catch their first wave. But in the end they both got to stand up for at least one ride.

Tamarindo has a pop up night market on Thursdays. It was Thursday, so we went. The market has all sorts of goodies: essential oils, shiny rocks, mixed drinks, and tasty food - some of which is infused with thc.

A tasty delight that I must mention is the acai fruit. Acai is not grown locally,ii but it is sold commonly here. The night market has a food truck that specializes in "Acai, smoothies, y mas"

jamiespics-1

As I am writing this up while admiring the picture of the most delicious acai bowl I've ever tasted, I realize the woman lying on my bed is the same one in the tank top in the background. We met the night this picture was taken. My friends had chatted with her and her Argentinian friend while I was somewhere else catching up with old Tamarindo acquaintances. My friends later introduced me to her and friend. My friends are good friends.

After the night market we went to go jam with the surfpal who had helped us fix the flat. He has a kitten named THUNDER who roams around his house. THUNDER likes to accompany people on walks and demonstrate his ability to climb various trees.

arieljamie-35

I dropped off my friends at Playa Negra Hotel and then returned the next morning to eat breakfast with them at the hotel's restaurant. When I arrived I looked at the ocean and oh-my-god the best waves I've seen since I returned to CR in October were going off one after another. My buddies told me that they were exhausted from travel and invited me to skip breakfast and go catch some of the 1-2m waves that were breaking over the coral reef. I didn't have a leashiii with me, but I went to the surf shop and bought one just so I could surf this morning. Luck was with me as someone was on the beach to catch on camera the waves I caught on water.

srufpicsquality-2
srufpicsquality-4
srufpicsquality-5
srufpicsquality-6
srufpicsquality-7
srufpicsquality-8
srufpicsquality-9
srufpicsquality-10
srufpicsquality-11
srufpicsquality-12
srufpicsquality-13

After my surf session we went and prepared the car for the road trip by checking its vitals, replacing the patched tire, and filling it up with gas.

We left the next morning for the Selina in Nosara. I've been to a few Selina's throughout Latin America - all of which are nice - but this one was by far the best in terms of the aesthetics of its design. The hostel wonderfully integrates the buildings with the surrounding nature to give its guests the feeling they're in the best tree house complex ever made.

jamiespics-3

Before partying at Selina we went to the beach, Playa Guiones, where my friends practiced surfing in the white water as I selfishly paddled out alone to score a second epic session. In Guiones the waves break over sand instead of reef, so there are rarely barrels or steep sections. The plus side of this is there are many peaks so you don't have to compete with as many surfers for a wave. I surfed, got lunch with the amigos, and the surfed again until sundown. When I paddled to shore I was so tired that it felt as though I was pushing through wet cement instead of water.

Had I planned the trip for myself I would have stayed in Guiones. Selina's was fantastic and the rule of the surfing lifestyle is once you find good waves you don't move. But in retrospect I am happy that my friends wanted to travel to see the scenic inland of Costa Rica. After our one day in Nosara we hit the road towards Monteverde.

As has become common occurence in my life, I was punished for not listening to Diana Coman's advice. I did not study the map from Nosara to Monteverde, and Google Maps tried to save us 1-2 minutes by taking us off the high way and sending us through a "shortcut" that required (1) driving on a road in bad condition by CR standards (2) driving through a river. Only once I came face to face with the river did I give up on the "shortcut." We had to retrace our steps to get back on the highway. This fun pot hole filled detour added about 30-40 minutes to the drive.

We arrived in Monteverde. If you have a desire to breathe some of the freshest air the universe has to offer, come here. The climate is perfect and boy does the breeze feel nice. The mountainous area is a lush green during the heart of the dry season. We spent the evening and the following day hiking through the cloud forest and viewing a butterfly garden.

Please note little birdy.

arieljamie-100

Anteater looking dude who tico surfpal informed me is not actually an anteater

arieljamie-106

This was some weird foam that was on the side of the tree. Plox for comments explaining what/why this is.

arieljamie-132

arieljamie-133
arieljamie-150

I am not quite sure what these bags are for, "Concentrados Nutricion Animal" ... so someone is providing food for animals in the rain forest?

arieljamie-158
arieljamie-159
arieljamie-160
arieljamie-167

We ate breakfast at a restaurant that has a garden where the waiting staff places fruit out to attract exotic birds for the pleasure of the patrons as they eat their gallo pinto. We met a squirrel who has recently gone into modeling. We tried to warn him that if he keeps eating all the food meant for the birds he is going to get fat and lose his job.

jamiespics-10

jamiespics-6
jamiespics-8
jamiespics-10

arieljamie-200

Sigh, he didn't listen.

arieljamie-211

arieljamie-212

jamiespics-7

arieljamie-225

This massive bird occasionally let the other birds eat some fruit as well.

arieljamie-232
arieljamie-234

arieljamie-258

jamiespics-9

arieljamie-254

The butterfly garden had an introductory presentation on various bugs in Costa Rica. Our lecturer kept laughing nervously after discussing various aspects of bug sex life. But he was comfortable picking up all sorts of critters, from scorpions to beetles with pincers.

arieljamie-264
arieljamie-289
arieljamie-315
arieljamie-292
arieljamie-305
arieljamie-319
arieljamie-320

Both sunrises at our Airbnb in Monteverde were blessed with a moon set and a multi-hued sky.

arieljamie-187

arieljamie-342
jamiespics-5

For the last day of our adventure we drove around Arenal Lake to see the Arenal Volcano and La Fortuna Waterfall. The drive was beautiful - more windyiv roads that offered a great view of the lake. We stopped for gallo pinto at a little restauraunt that had closed before we arrived but happily reopened to serve us breakfast.

arieljamie-353

When we arrived to a national park near Arenal, I stupid'd and locked us out of the rav4. The problem was resolved in 45 minutes with the help of 40,000 colones. On the bright side I learned what are the tools required for breaking into a car.

arieljamie-362
arieljamie-363
arieljamie-365

We did a 2-3 hour hike through a forest next to the volcano. This time we saw some interesting animals including an ostrich type bird with a yellow beak that bobbed its head back and forth as it walked.

arieljamie-386

Colorful lizard dude.

arieljamie-395

A tree with some interesting roots.

arieljamie-429

The path to a 400-year-old tree.

arieljamie-400
arieljamie-427

The 400-year-old tree tree.

arieljamie-404
arieljamie-406
arieljamie-405
arieljamie-416

The volcano.

arieljamie-432

arieljamie-434

whaack

jamiespics-11

At one point during the trip one of my friends said something along the lines of, "why don't you put away the camera and enjoy the moment?" I share the same sentiment, it bothers me quite a bit when people are cam whoring.v But ztkfg has greatly increased the amount I value photos, and I find myself taking way more photos than I did before. I am doing my best to get the balance of photo / no photo right. Since bringing my camera to La Fortuna meant hindering the experience of swimming by the waterfall, I decided to leave it in the car.

But before I put away the camera, I took a shot of important La Fortuna rules.

arieljamie-442

The morning we had to drive back to Junqui we had to fix our 2nd flat tire. I realized hammering the lug onto the nuts was not necessary. I just needed to clean the area around the nuts before attempting to attach the lug. Derp.

arieljamie-445

We got back to Junqui, had a relaxing evening at my beach, and the next morning I dropped my buddies off at the airport. The day before they left Trump announced the travel ban to Europe. My friend from Paris was able to get back home just before the grace period ended.

I am grateful and proud to be friends with my two visitors. As a teenager I certainly didn't have the capacity to wisely choose who to surround myself with, but the dice roll of high school social life landed in my favor.vi Today there are a few political issues where we don't see eye to eye, as polite conversation during our last dinner revealed. Regardless, I expect our bond to remain forever strong.

  1. Their names can be discovered by examening the pictures in this article. []
  2. I believe it is imported from Brazil. []
  3. Which I don't like to use in general, but since there was a crowd and the waves were big and surrounded by rocks a leash was ~mandatory. []
  4. I mean windy as pronounced with both a long and short "i" vowel. []
  5. Especially when the "camera" being used is a dumb phone. []
  6. I can't say the same for MIT. While I have a few friends there the connection that I have with my high school friends is substantially stronger. []

The Better Surfer Has The Right of Way

March 4th, 2020

The right of way on a wave belongs to whoever is higher in the lineup's pecking order. This remains true despite the rules kooks hallucinate exist. Their imagined rules come from general guidelines at best and dangerous misconceptions at worst. Let's go through a few of them and point out their problems.

The most ridiculous imagined rule is you got the last wave, so I get the next one. This is socialist surfing mentality. It's not the job of every surfer to be tallying the number of waves every other surfer in the water has ridden. If a beginner finds himself in a spot where a crowd of surfers catch all the waves in a set and return before the next set arrives, the beginner should move to a different break.

The most common and most dangerous imagined rule is the surfer who catches the wave closer to the peak gets the right of way. There is some merit to the principle behind this. The surfer who begins the wave on the peak gets a faster and longer ride than one who catches the wave on its shoulder. However, very often the best position to catch the wave is past the peak with the intent to ride towards the peak and cross it. With the right wave and proper form, crossing the peak will result in getting barreled. Kooks are scared to approach the peak and consistently catch waves too wide on the shoulder; they can't fathom that the wave can be caught from the other side of the peak. So when catching their own wave they assume surfers on the other side of the peak will ride in the direction away from them. The kook finds himself in the situation where he thinks he has the right of way, because no one is betweeen him and the peak, but then is surprised as the more experienced surfer comes flying out of a barrel full speed in his direction.

The last imagined rule for examination is, snaking is not allowed. Snaking is when a surfer paddles behind and around another surfer while that surfer is paddling for a wave.i Kooks whine about being snaked when what usually happened is through their own lack of awareness they missed the surfer as he paddled into a position better than theirs.

The right of way belongs to the better surfer. Take waves from those who fall, give waves to those who surf with grace.

  1. The term snaking has different a different meaning depending on who you ask. Some use it to mean the general act of snagging another's wave. []

Learning The Linux Command Line

March 1st, 2020

Knowledge of the linux command line lets one write powerful, concise programs. Every time one learns a command, they acquire a new tool for solving certain types of problems. Individual commands can then be used as well understood components in larger programs. Creating these programs is done via piping, a syntax that feeds the output of one command into the input of another. With piping, the benefit of using the command line increases combinatorically in relation to the number of commands one masters.

Following the footsteps of others, I have set a goal to improve my ability to wield the weapons the command line offers. I aim to learn one command per week starting with curl, awk, sed, and grep. Learning individual commands will be supplemented with reading a text that provides a holistic understanding of the command line. I will publish annotations of the programs I writei for review on ztkfg.

  1. Along with annotations of others' programs []

Building a Local Bitcoin OTC Network in Guanacaste

February 25th, 2020

I would like to build a well connected btc otc network in Guanacaste.

The main reason for building this network is to meet intelligent, self-reliant individuals who live near me. It's dubious whether searching for people interested in trading btc is the best way to accomplish this, but hopefully it's a step in the right direction. Should I meet a few like minded people, I will try to bring them together once a month for coffee or an event similar to jfw and dorion's Junto.

I want to form an otc network also for a straightforward reason - to have more options for trading bitcoins for fiat and vice versa. I have some virtual fiat in the US, and I'm expected to get some more in the next couple of months. I would like the fake money there to turn into fake money here. The steps to do this are: find someone selling btc in the US, venmo/square/paypal/bankxfer fiat to them for the btc, and then buy colones here with a portion of the acquired btc. Voila, en esta manera el dinero llega aqui sin el gobierno de los EEUS tomando ni una gota.

Finding people who trade btc around here is tricky. Guanacaste is a province of small rural towns/villages; it does not have a highly populated city.i However, should I manage to find some btc traders lurking in the jungle, my value as an otc hub will likely be greater than if I lived in a major city.

I've asked lord hanbot for advice on how to build the network.

hanbot_abroad: http://logs.ossasepia.com/log/trilema-hanbot/2020-02-18#1001398 << this is probably kinda challenging where you are, but the expat presence may help. regularly search for bitcoin-related events (i'd bet there's a liberia group that meets to derp around, for instance), attend them, talk to everyone there, ask who's trading, etc. ask all the people you're paying bills to if they accept coin. look for any small business
ossabot: Logged on 2020-02-18 15:38:50 whaack: My goal is to build contacts rather than to satisfy an immediate need for a trade.
hanbot_abroad: es that do accept btc, coffee shops etc, and ask to talk to the manager, see if they want to buy or know someone who does.

The only person I pay bills to is my landlord and given her older age I have not bothered to ask if she accepts coin. I checked for meetups in Liberia but so far have found none. I messaged the 8 businesses listed within 3 hours driving distance on coinmap.org.ii

I looked for real estate being sold for btc. I found exactly one listing and I contacted the broker. He is the only person so far who seems promising. Although he is not currently looking to trade now it seems he may be interested in the future.

My next step is to contact potential btc traders in San Jose and ask them if they know anyone who trades btc in Guanacaste.

  1. According to population.city, Guanacaste has a population of ~327,000 and Liberia is its largest city with a population of ~52,000 []
  2. I've received 2 responses that stated they accept btc for their services but are not interested in trading btc. []