If you are not sure if the website you would like to visit is secure, you can verify it here. Enter the website address of the page and see parts of its content and the thumbnail images on this site. None (if any) dangerous scripts on the referenced page will be executed. Additionally, if the selected site contains subpages, you can verify it (review) in batches containing 5 pages.
favicon.ico: atevans.com - atevans  - Home.

site address: atevans.com redirected to: atevans.com

site title: atevans - Home

Our opinion (on Thursday 13 August 2026 16:04:54 UTC):

GREEN status (no comments) - no comments
After content analysis of this website we propose the following hashtags:



Meta tags:
description=blog from andrew evans;
author=;

Headings (most frequently used words):

in, for, the, ruby, wrap, xlsx, security, up, notes, xml, where, to, find, soelim, binary, macos, aws, textract, results, dependabot, not, playing, nice, with, yarn, roo, parsing, invalid, value, integer, argumenterror, setting, egpu, preferences, epic, games, boopable, snoots, jenv, and, java, versioning, three, months, from, october, 2017, events, fukuoka, night, curses, terminal, apps, longer, story, investigating, raw, modifying, an, file, fun, profit, developing, fix, upstreaming, code, quality, scaling, teamwork, technical, challenge, deadlines, learning, initialize, main, render, loop, teardown,

Text of the page (most frequently used words):
the (346), and (182), for (79), that (70), this (62), you (53), was (45), java (44), with (43), from (41), like (36), get (36), code (36), end (35), ruby (34), but (33), error (33), roo (32), file (31), #curses (30), can (30), gems (28), have (27), not (27), lib (27), are (25), some (25), version (25), could (24), all (23), number (23), had (22), out (22), your (22), jenv (21), xml (21), when (20), users (20), make (20), versions (20), stats (19), block (19), they (19), how (18), into (18), just (18), window (17), there (17), security (17), command (17), app (16), will (16), class (16), time (16), should (16), cell (16), what (15), other (15), messages (15), excelx (15), pretty (14), one (14), def (14), new (14), see (14), about (14), our (14), each (13), has (13), add (13), also (13), set (13), type (13), more (13), fix (13), build (13), xlsx (13), agius (13), rbenv (13), lines (12), been (12), lot (12), using (12), where (12), since (12), need (12), stack (12), yarn (12), which (11), refresh (11), way (11), open (11), than (11), use (11), something (11), request (11), openjdk (11), method (10), program (10), data (10), any (10), now (10), line (10), good (10), didn (10), things (10), full (10), work (10), test (10), push (10), cask (10), install (10), value (10), nokogiri (10), terminal (9), table (9), text (9), down (9), string (9), last (9), top_sections (9), don (9), seemed (9), name (9), only (9), wanted (9), integer (9), sheet (9), empty_sheet (9), tree (9), dependabot (9), soelim (9), most (8), empty (8), them (8), header (8), case (8), example (8), their (8), games (8), jdk (8), local (8), got (8), bad (8), epic (8), check (8), nil (8), next (7), here (7), screen (7), handle (7), right (7), main (7), call (7), then (7), why (7), true (7), think (7), object (7), pos (7), guess (7), language (7), project (7), directory (7), system (7), game (7), figured (7), bounty (7), probably (7), company (7), real (7), running (7), want (7), might (7), sure (7), brew (7), repo (7), via (7), github (7), output (7), files (7), trying (7), spreadsheet (7), results (7), zip (7), unzip (7), development (6), having (6), exit (6), basically (6), used (6), tty (6), manager (6), tried (6), working (6), did (6), store (6), input (6), initialize (6), three (6), whole (6), half_width (6), site (6), found (6), kinda (6), library (6), take (6), find (6), would (6), getting (6), binary (6), enough (6), really (6), fixes (6), quickly (6), run (6), page (6), doesn (6), able (6), thought (6), mapbox (6), homebrew (6), ran (6), element (6), children (6), merged (6), trace (6), issue (6), package (6), textract (6), parent (6), simple (5), wrap (5), back (5), scroll (5), manually (5), addstr (5), two (5), require (5), through (5), bit (5), learning (5), matz (5), team (5), little (5), message (5), compile (5), server (5), cool (5), bug (5), bounties (5), easy (5), both (5), every (5), vulnerability (5), let (5), usually (5), particular (5), means (5), even (5), important (5), less (5), those (5), worth (5), made (5), numbers (5), adoptopenjdk (5), reddit (5), url (5), egpu (5), pull (5), invalid (5), dir_name (5), output_filename (5), sys (5), row (5), x86_64 (5), darwin (5), node_set (5), sheet_doc (5), recursive (5), dependency (5), rel (5), wrong (4), stuff (4), maybe (4), came (4), called (4), teardown (4), gem (4), rendering (4), buffer (4), array (4), such (4), well (4), render (4), keyboard (4), idea (4), still (4), while (4), isn (4), long (4), come (4), clear (4), sections (4), top (4), paint_messages (4), unless (4), half_height (4), web (4), overall (4), writing (4), after (4), based (4), help (4), its (4), own (4), before (4), often (4), needed (4), without (4), developers (4), much (4), python (4), rather (4), thing (4), interesting (4), because (4), google (4), similar (4), hackers (4), over (4), vulnerabilities (4), least (4), seeing (4), months (4), these (4), big (4), node (4), different (4), else (4), patch (4), either (4), once (4), per (4), though (4), weird (4), written (4), going (4), projects (4), read (4), off (4), change (4), slightly (4), config (4), machine (4), try (4), seem (4), usr (4), base (4), macbook (4), specified (4), curl (4), json (4), structure (4), problem (4), setting (4), instead (4), built (4), monkey (4), added (4), locally (4), expected (4), parse (4), above (4), kind (4), tag (4), self (4), cells (4), zipdir (4), argv (4), bin (4), worksheets (4), return (4), cast_float (4), 2023 (4), dep (4), vm2 (4), npm (4), vulnerable (4), ids (4), indent (4), blocks_map (4), common (4), hope (3), worked (3), mode (3), calls (3), windows (3), same (3), ascii (3), cursor (3), never (3), wrote (3), update (3), verse (3), show (3), methods (3), updates (3), alert (3), mostly (3), getch (3), myself (3), default (3), bunch (3), may (3), maxx (3), setpos (3), key (3), keys (3), being (3), 2017 (3), tools (3), errors (3), compatible (3), core (3), developer (3), improve (3), shiny (3), point (3), lightweight (3), architecture (3), runtime (3), whatever (3), went (3), fukuoka (3), max (3), high (3), process (3), old (3), features (3), support (3), feature (3), hackerone (3), companies (3), community (3), comes (3), email (3), inbox (3), manage (3), notes (3), events (3), look (3), script (3), start (3), legacy (3), throwing (3), level (3), engineering (3), patching (3), failed (3), people (3), technical (3), parsing (3), strings (3), who (3), know (3), front (3), better (3), aws (3), write (3), rails (3), everything (3), seems (3), engineer (3), installed (3), javavirtualmachines (3), home (3), shell (3), unrecognized (3), option (3), create (3), virtual (3), fatal (3), exception (3), occurred (3), wasn (3), java_home (3), init (3), plugin (3), 2019 (3), info (3), https (3), com (3), buildconfig (3), sample (3), bot (3), images (3), boopablesnoots (3), together (3), parser (3), blah (3), testing (3), pro (3), graphics (3), borderlands3 (3), helps (3), luck (3), condition (3), maintainers (3), rspec (3), production (3), float (3), inspect (3), couldn (3), reproduce (3), quick (3), nearly (3), valid (3), sheets (3), tags (3), zipped (3), print (3), include (3), sheet1 (3), spreadsheets (3), numeric (3), inside (3), were (3), cell_value (3), coordinate (3), 234 (3), updated (3), react (3), native (3), encountered (3), vulnpackage (3), visualize (3), walk (3), blk (3), relationships (3), ended (3), pages (3), openldap (3), clears (2), user (2), larger (2), gets (2), handle_keyboard_input (2), tables (2), paint (2), range (2), past (2), during (2), position (2), far (2), character (2), editor (2), tries (2), beyond (2), first (2), too (2), many (2), behavior (2), onto (2), interface (2), loop (2), needs (2), anything (2), panel (2), print_msg (2), yes (2), waiting (2), nodelay (2), keypad (2), tons (2), yourself (2), hard (2), ago (2), performance (2), accessible (2), cols (2), basic (2), strftime (2), resize (2), width (2), to_a (2), rows (2), hits (2), msg (2), echo (2), attr_reader (2), module (2), below (2), does (2), left (2), side (2), pane (2), post (2), traffic (2), shows (2), bottom (2), logs (2), took (2), documentation (2), tutorials (2), nice (2), apps (2), runs (2), newer (2), huge (2), aug (2), said (2), goal (2), personally (2), auto (2), complete (2), duck (2), trees (2), separate (2), sounds (2), frustrating (2), talked (2), checking (2), catch (2), fully (2), backwards (2), building (2), tooling (2), specifically (2), languages (2), move (2), avoid (2), single (2), arduinos (2), another (2), turns (2), night (2), talks (2), talk (2), note (2), 500 (2), paying (2), expect (2), risk (2), reduce (2), attack (2), surface (2), product (2), consider (2), keeping (2), aren (2), low (2), reason (2), hacking (2), slow (2), difficult (2), day (2), awesome (2), resources (2), operate (2), respond (2), reports (2), place (2), conference (2), hired (2), leave (2), around (2), neat (2), limited (2), job (2), until (2), ton (2), lower (2), unicode (2), pick (2), ops (2), jump (2), framework (2), knowledge (2), science (2), fixing (2), deep (2), feels (2), tests (2), compliance (2), systems (2), somebody (2), causing (2), deadlines (2), years (2), fun (2), challenges (2), animation (2), scale (2), dig (2), git (2), sometimes (2), very (2), someone (2), teamwork (2), chat (2), teams (2), crappy (2), review (2), internal (2), monitor (2), already (2), scaling (2), rest (2), scripts (2), deployed (2), understand (2), keep (2), list (2), coworkers (2), joined (2), intranet (2), doing (2), tool (2), apr (2), rant (2), anyway (2), sdk (2), android (2), contents (2), workspace (2), environment (2), 0_212 (2), b03 (2), mixed (2), please (2), homebrewers (2), prefer (2), uses (2), successfully (2), extend (2), remove (2), java8 (2), commands (2), creates (2), sadly (2), enable (2), zsh (2), libexec (2), export (2), multiple (2), looks (2), caskroom (2), kit (2), macos (2), compilebuildconfig (2), starting (2), samples (2), public (2), subdirectory (2), versioning (2), snoots (2), boop (2), download (2), sends (2), response (2), says (2), stdin (2), xargs (2), returned (2), field (2), previous (2), stdout (2), publicly (2), click (2), search (2), slideshow (2), arguments (2), finder (2), gpu (2), fixed (2), external (2), folder (2), menu (2), shared (2), puts (2), card (2), steps (2), debugging (2), feel (2), internet (2), others (2), boot (2), possible (2), approach (2), itself (2), done (2), format (2), values (2), source (2), style (2), exact (2), path (2), followed (2), investigation (2), excel (2), generate (2), closing (2), generated (2), irb (2), shutil (2), usage (2), len (2), raw_input (2), 2016 (2), given (2), dir (2), original (2), unzipping (2), knowing (2), reference (2), k58 (2), workbook (2), _rels (2), raw (2), each_row_streaming (2), looked (2), opened (2), clearly (2), initial (2), determine (2), console (2), longer (2), cast_int (2), create_numeric (2), upto (2), 235 (2), levels (2), cell_from_xml (2), 172 (2), argumenterror (2), opening (2), dependbot (2), available (2), removed (2), ready (2), lock (2), snyk (2), appcenter (2), sep (2), making (2), print_tree (2), chld (2), to_s (2), indent_txt (2), txt (2), document (2), geometry (2), block_id (2), bag (2), elements (2), client (2), located (2), pdfs (2), emails (2), groff (2), contains (2), attempts (2), man (2), gitlab (2), mastodon, helpful, model, head, laid, useful, resets, non, visual, wants, quit, ensure, handles, interrupt, signal, calculated, collection, prints, within, moves, boundaries, keeps, printed, variable, representing, scrolled, advance, characters, hide, columns, draw, provide, dealing, scrl, loops, takes, actions, checks, log, stat, tells, active, assignment, wouldn, scrolling, wonky, save, trouble, pad, initially, panes, proved, complication, actual, benefit, provided, boost, subwin, sets, listening, represent, stdscr, initialization, close_screen, update_stats, section, update_top_sections, slice, split, wrapping, count, translate, function, constants, entered, noecho, invisible, curs_set, init_screen, logwatch, logger, step, explain, cleared, arrow, vim, addict, hit, frequently, screenshot, stays, monitors, logfile, crack, small, somewhat, lacking, combining, adapter, standard, moved, ncurses, decade, grain, salt, progress, continues, solid, future, skeptical, ctags, inferencing, mentioned, saving, definitions, manual, tweaking, potentially, requiring, hints, strict, typing, boilerplate, rigamarole, bonus, inference, devs, evolve, breaking, changes, fundamental, shifts, focus, happiness, drastically, say, bored, counter, dead, meme, largely, quagmires, php, shooting, 3x3, nier, automata, spiffy, ps4, chef, replacement, distributed, mitamae, raspberry, iot, platforms, mruby, fast, embeddable, ultra, compiled, libraries, linked, interpreted, hadn, heard, seen, impressive, friday, prefecture, taking, interest, fostering, tech, startup, scene, japan, brought, evening, coinbase, cso, payout, proxy, marker, mature, afford, recently, raised, 000, natalie, silvanovich, zero, themes, management, general, plotting, roadmap, allocating, spend, cleaning, dependencies, date, hurting, anyone, burden, love, rid, lowering, surprised, reputation, jobs, addition, pursuing, treat, freelance, gig, pursue, quickest, profitable, skip, rep, imagine, energy, research, hey, willing, dedicate, managing, successful, triaged, paid, sitting, forever, frustrates, parties, discourages, greater, theoretically, ideally, disclosure, policy, lets, safely, report, software, give, warning, aways, week, vouch, thanks, invite, corner, oct, october, blast, forward, brings, hopeful, pulling, tricks, days, madness, world, deal, rate, cron, finds, notifies, conventions, functioning, computers, networks, peculiar, handling, tack, ehlo, http, requests, flood, recorded, network, occasionally, redis, caching, unhandled, edge, frontend, felt, urgency, outside, penetration, audits, legal, financial, behind, rce, nginx, scramble, identify, affected, starts, measurable, damage, malicious, purposes, lulz, live, consumer, facing, fake, ship, sprint, deadline, referred, folks, voyager, mission, comparison, operations, occasional, slowly, incrementally, urgent, dealt, 175, planetary, alignment, plenty, filling, forms, resetting, passwords, permissions, showing, password, managers, exactly, rocket, surgery, posture, satisfying, 100k, reads, min, faced, nothing, encode, makes, subsequently, automate, repos, entropy, challenge, empathy, patience, jerk, blocking, deploy, dumping, busy, communicate, experience, previously, specialist, anywhere, understanding, pushing, coding, iteration, cycle, wall, between, closely, pair, special, definitely, rarely, size, hbase, metrics, likely, handled, tweaks, overhauls, maintain, automations, 200, loc, lambda, spaghetti, rewrite, scratch, necessary, multi, year, monoliths, poodr, watch, searls, scales, plans, unexpected, turn, upside, refactoring, regularly, velocity, quality, differences, noticed, variety, backgrounds, dev, sysadmin, researcher, tend, angle, lead, corrected, pentester, scan, thousand, 404, hour, ddos, switch, primarily, engineers, secure, collaborators, consultants, evangelists, educators, industry, leaderers, thinkfluencers, roughly, ten, crud, form, always, mildly, paranoid, highly, interested, delighted, offered, 2018, intellij, studio, monstrous, knows, hell, goooooood, times, succeeded, retrospect, obvious, prefixes, realized, adoptopenjdk8, 212, farking, thank, finally, wtf, srsly, forgot, jeebus, suck, apparently, perfectly, cromulent, confusion, dozens, named, asking, funnily, except, oracle, torpedoed, embrace, extinguish, playbook, thus, licensing, issues, insanity, latter, actually, tap, java11, separately, quite, env, var, andrewevans, openjdk64, eval, release, sharing, 69cfe15208a647278a19ef0990eea691, net, fb4372174a714e6b8c52526dc134031e, 396, 4mb, 64b, blob, master, casks, artifacts, generic, artifact, mon, smh, normal, gradlew, gradle, daemon, subsequent, builds, faster, task, username, gen, src, cannot, access, final, modules, lang, appears, correct, classpath, current, filter, posted, recent, posts, putting, saves, filesystem, filename, contained, meta, following, parallel, pool, workers, etc, drills, returns, flag, removes, quoting, iterates, across, outputting, feed, forwards, body, www, threw, exposes, endpoint, browsers, sign, oauth, api, trivial, imgur, giphy, dingus, couple, preferably, image, nov, boopable, solved, passed, argument, additional, retained, unplugging, plugging, clobbered, few, mobile, honking, loud, industrial, strength, pipes, launch, benchmarks, markedly, improved, plugged, checkbox, explained, box, apple, article, select, disk, space, calculator, daisydisk, notice, plug, borderlands, smoothly, fps, medium, settings, benchmark, drops, 20fps, stutters, becomes, port, broken, heart, follow, 2020, preferences, learned, questions, comments, free, social, media, fallen, cliff, lately, best, programmers, loved, ghosted, reviewed, converted, diff, unit, cover, branch, essentially, cloned, suite, minitest, pile, naming, scheme, harness, upstreaming, specs, put, verified, verify, produced, modifications, factoring, easier, later, rescue, overworked, short, extremely, submitting, meeting, expectations, ancillary, considerations, forth, weeks, wait, directly, bundle, relevant, exported, along, reproducing, developing, revealed, reporting, kendo, angular, problems, blame, falls, horrible, reinventing, wheel, javascript, stab, generating, close, bingo, scientific, proof, make_archive, incorrect, elif, import, created, modified, purpose, stored, extension, specifying, prompt, gsheets, compress, objects, python2, edited, edits, desired, extracted, posting, goes, guide, zipping, modifying, profit, blow, gasket, googling, theory, n26, checked, instances, l58, specific, deduce, gone, stump, filesize, duping, sharedstrings, int, indicates, column, appear, ones, tabs, quote, scope, yup, super, readable, reverse, reading, restaurant, content_types, rels, snip, documents, indicated, conversion, mis, encoded, investigating, calling, osx, uploading, pose, huh, swallowing, somehow, pry, magic, global, lots, 0x00007f8982913580, 0x00007f8982913148, 0x00007f8982912ea0, bugsnag, truncated, downloaded, proper, saw, nomethoderror, story, drop, initializer, producing, error_values, frozen_string_literal, hasn, addressed, bummer, happens, contribute, implement, 224, extract_cells, 101, 114, create_cell_from_value, considered, unfixable, shaker, stubborn, simply, managed, situation, difference, immediately, affecting, lockfile, although, pinned, specification, saying, upgraded, eventually, mitigation, rare, allay, alerts, superagent, required, microsoft, attempt, mitigate, maintainer, decided, discontinue, sandbox, escape, track, cve, supply, chain, included, broad, upgrade, constraints, explanation, including, especially, playing, analysis, play, tested, deployment, integration, leiu, nicer, great, properties, visualization, clutter, overwrite, functionlaity, belongs, pola, violation, awesome_print, block_type, length, elsif, easily, extractors, parents, lived, gave, reasonable, fancier, functionality, fancy, sort, grep, child, uninspiring, functions, recurse, html, land, dom, result, however, blocks, identified, confidence, paginated, reconstruct, hierarchy, became, critical, information, word, medical, programmatic, receive, contain, medicine, encounter, bypass, compilation, digging, turned, simpler, barrier, stackoverflow, duckduckgo, heck, colleagues, finding, answer, slack, somewhere, searchable, downloads, older, configures, compiles, installs, sane, unfortunately, glue, associated, universal, missing, ldap, entering, man1, sed, ldversion, 127, sbin, slapadd, slapd, correctly, dec, ǝlqɐʇ, atevans,


Text of the page (random words):
u read stuff like poodr and watch talks by searls because it s important your code scales with the team features change plans change users do something unexpected and now your architecture needs to turn upside down it s worth refactoring regularly to keep velocity high in security sure it s still important the rest of the team can read and maintain your code but a lot of your work is one off scripts or simple automations whole projects might be less than 200 loc and deployed as a single aws lambda even if you write spaghetti code at that point it s simple enough to understand and rewrite from scratch if necessary fixes to larger legacy projects are usually tweaks rather than overhauls so there s not much need to consider the overall architecture there either scaling definitely less important than in full stack development internal tooling rarely has to scale beyond the size of the company so you re not going to need hbase you might need to monitor logs and metrics but those are likely going to be handled already teamwork teamwork is if anything more important in security than it was in full stack development previously i might have to chat with data science front end or a specialist for some features in security we need to be able to jump in anywhere and quickly get enough understanding to push out fixes even if we end up pushing all the coding to the developers having a long iteration cycle and throwing code over the wall between teams is crappy it s much better if we can work more closely pair program and code review to make sure a fix is complete rather than catch this special case you also need a lot of empathy and patience sometimes you end up being the jerk who s blocking code or a deploy often you are dumping work on busy people it can be very difficult to communicate with someone who doesn t have a lot of security experience about a vulnerability in a legacy project written in a language you don t know technical challenge i m used to technical challenges like how do we make the ui do this shiny animation or how do we scale this page to 100k reads min the technical challenges i ve faced so far have been nothing like that they ve been more like how do we encode a request to this server such that when it makes a request to that server it hits this weird parsing bug in node and subsequently how do we automate that test or how do we dig through all our git repos for high entropy strings it s not all fun and games though there s plenty of work in filling out compliance forms resetting passwords and permissions and showing people how why to use password managers while not exactly rocket surgery these are important things that improve the overall security posture of the company so it s satisfying that way deadlines most deadlines in consumer facing engineering are fake we want to ship this by the end of the sprint is not a real deadline i often referred folks to the voyager mission s use of a once per 175 years planetary alignment for comparison in operations you get some occasional the site is slow down but even then the goal was to slowly incrementally improve systems such that the urgent things can be failed over and dealt with in good time in security the urgency feels a bit more real working with outside companies for things like penetration tests compliance audits and live hacking events means real legal and financial risk for running behind new rce vulnerability in nginx found means a scramble to identify affected systems and see how quickly we can get a patch out we have no idea how long we have before somebody starts causing measurable damage either for malicious purposes or just for the lulz learning in full stack engineering ops i would occasionally need to jump into a different language or framework to get something working usually i could get by with pretty limited knowledge patching redis into a data science system for caching or fixing an unhandled edge case in a frontend ui i felt like i had a pretty deep knowledge of ruby and some other core tools and i could pick up whatever else i needed there s a ton of learning any time you start at a new company usually a new language a new stack legacy code and conventions but throwing that out i ve been learning a ton about the lower level functioning of computers and networks node and python s peculiar handling of unicode how to tack an ehlo request onto an http get request and how to pick particular requests out of a flood of recorded network traffic also seeing some of the methods of madness that hackers use in the real world that thing you didn t think would be a big deal because it s rate limited they ll script a cron job and let it run for months until it finds something and notifies them wrap up it s been a blast and i look forward to seeing what the next three months brings i m hopeful for more neat events more learning and maybe pulling some cool tricks of my own one of these days notes from october 2017 events oct 31 2017 security notes i went to hackerone s security conference last week and can vouch that it was pretty cool thanks to hackerone for the invite and to hired for leave to go around the corner from our building for the day my notes and main take aways the name of the conference comes from an email inbox that every company should theoretically have ideally you d have a real vulnerability disclosure program with a policy that lets hackers safely report vulnerabilities in your software but not every company has the resources to manage that so at least having a security email inbox can give you some warning as a company you probably should not have a bug bounty program unless you are willing to dedicate the resources to managing it to operate a successful bug bounty you need to respond quickly to all reports and at least get them triaged you should have a process in place to quickly fix vulnerabilities and get bounties paid if hackers have reports sitting out there forever it frustrates both parties and discourages working with the greater bounty community i was surprised during the panel with three of hackerone s top hackers by bounty and reputation on their site two of them had full time jobs in addition to pursuing bug bounties they seemed to treat their hacking like a freelance gig on the side pursue the quickest most profitable bounties and skip over low rep or slow companies personally i find it difficult to imagine having the energy to research other companies for vulnerabilities after a full day s work but hey if that s your thing awesome natalie silvanovich from google s project zero had a really interesting talk on how to reduce attack surface it had a lot of similar themes to good product management in general consider security when plotting a product s roadmap have a process for allocating time to security fixes and spend time cleaning up code and keeping dependencies up to date it s easy to think that old code and old features aren t hurting anyone the support burden is low the code isn t getting in the way and 3 of users love this feature so why take time get rid of it lowering your attack surface is a pretty good reason coinbase s cso had an interesting note the max payout from your bug bounty program is a proxy marker for how mature your program is if your max bounty is 500 you re probably paying enough bounties that 500 is all you can afford they had recently raised their max bounty to 50 000 because they did not expect to be paying out a lot high risk bounties fukuoka ruby night last friday i also went to the fukuoka ruby night i guess the fukuoka prefecture is specifically taking an interest in fostering a tech and startup scene which is pretty cool they had talks from some interesting developers from japan and sf and they also brought in matz for a talk overall a pretty cool evening matz and another developer talked a bunch about mruby the lightweight fast embeddable version of ruby it runs on an ultra lightweight vm compiled for any architecture and libraries are linked in rather than interpreted at runtime i hadn t heard much about it and figured it was a thing for arduinos or whatever turns out it s seen some more impressive use yes arduinos raspberry pi s and other iot platforms mitamae a lightweight chef replacement distributed as a single binary nier automata a spiffy game for ps4 and pc matz didn t have as much to say about ruby 3 he specifically called out that if languages don t get shiny new things developers get bored and move on i guess ruby 3 will be a good counter point to the ruby is dead meme ruby 3 will be largely backwards compatible to avoid getting into quagmires like ruby 1 9 python 3 and php 6 they are shooting for 3x the performance of ruby 2 x the ruby 3x3 project one way the core ruby devs see for the language to evolve without breaking changes or fundamental shifts such as a type system is to focus on developer happiness building a language server into the core of ruby 3 is one example that could drastically improve the tooling for developers he also talked about duck inference an 80 compile time type checking system this could potentially catch a lot more type errors at compile time without requiring type hints strict typing or other code boilerplate rigamarole bonus it would be fully backwards compatible i m a little skeptical i personally find ctags and other auto complete tools get in the way about as often as they help for duck inferencing matz mentioned saving type definitions and message trees into a separate file in the project directory for manual tweaking as needed sounds like it could end up being pretty frustrating guess we ll see matz said the team s goal is before the end of this decade but to take that with a grain of salt good to see progress in the language and that ruby continues to have a solid future ruby curses for terminal apps aug 2 2017 curses is a c library for terminal based apps if you are writing a screen based app that runs in the terminal curses or the newer version ncurses can be a huge help there used to be an adapter for ruby in the standard library but since 2 1 0 it s been moved into its own gem i took a crack at writing a small app with curses and found the documentation and tutorials somewhat lacking but after a bit of learning and combining with the verse and tty gems i think it came out kinda nice here s a screenshot of the app which basically stays open and monitors a logfile there are three sections the left side is a messages pane where the app will post traffic alert and alert cleared messages the user can scroll that pane up and down with the arrow keys or h j if they ve a vim addict on the right are two tables the top one shows which sections of a web site are being hit most frequently the bottom shows overall stats from the logs here s the code for it and i ll step through below and explain what does what require curses require tty table require logger module logwatch class window attr_reader main messages top_sections stats def initialize curses init_screen curses curs_set 0 invisible cursor curses noecho don t echo keys entered lines pos 0 half_height curses lines 2 2 half_width curses cols 2 3 messages curses window new curses lines half_width 0 0 messages keypad true translate function keys to curses key constants messages nodelay true don t block waiting for keyboard input with getch messages refresh top_sections curses window new half_height half_width 0 half_width top_sections refresh stats curses window new half_height half_width half_height half_width stats stats stats refresh end def handle_keyboard_input case messages getch when curses key up k pos 1 unless pos 0 paint_messages when curses key down j pos 1 unless pos lines count 1 paint_messages when q exit 0 end end def print_msg msg lines verse wrapping new msg wrap messages maxx 10 split n paint_messages end def paint_messages pos 0 messages clear messages setpos 0 0 lines slice pos curses lines 1 each line messages line n messages refresh end def update_top_sections sections table tty table new header top section hits rows sections to_a top_sections clear top_sections setpos 0 0 top_sections addstr table render ascii width top_sections maxx 2 resize true top_sections addstr n last refresh time now strftime b d h m s top_sections refresh end def update_stats stats table tty table new header stats rows stats to_a stats clear stats setpos 0 0 stats addstr table render ascii width stats maxx 2 resize true stats addstr n last refresh time now strftime b d h m s stats refresh end def teardown curses close_screen end end end initialize on initialize we do some basic initialization of the curses gem this will set up curses to handle all rendering to the terminal window curses sets up a default curses window object to handle rendering and listening for keyboard input accessible from the stdscr method this is where curses lines and curses cols come from and represent the whole terminal i initially tried using the default window s subwin method to set up the panes used by the app but that proved to add a whole bunch of complication for no actual benefit long ago it may have provided a performance boost but we re well past that i think also tried using the curses pad class so i wouldn t have to handle scrolling myself but that also had tons of wonky behavior rendering yourself isn t that hard save the trouble to handle keyboard input we set keypad true on the messages window we also set nodelay true yes one is a method call the other is assignment no idea why so we can call getch but still update the screen while waiting for input the two stats windows we initialize mostly empty then call refresh on all three to get them set up on the active terminal main render loop the class that loops and takes actions is not the window manager but the interface is pretty simple there s a loop that checks for updates from the log file updates the stats data store then calls the two render methods for the stat windows it also tells the window manager to handle any keyboard input and will call print_msg if it needs to add an alert or anything to the main panel the main way to get text onto the screen is to call addstr or on a curses window then call refresh to paint the buffer to the screen the window has a cursor and it will add each character from the string and advance that just like in a text editor it tries to do a lot of other stuff if you add characters beyond what the screen can show it will scroll right and hide the first n columns if you draw too many lines it will scroll down and provide no way to scroll back up i tried dealing with scrl and scroll methods and such but could never get the behavior working well in the end i did it manually i used the verse gem to wrap lines of text so that we never wrote past the window boundaries the window manager keeps an array of all lines that have been printed during the program and a position variable representing how far we ve scrolled down in the buffer on ...
Thumbnail images (randomly selected): * Images may be subject to copyright.GREEN status (no comments)
  • logwatch demo gif

Verified site has: 15 subpage(s). Do you want to verify them? Verify pages:

1-5 6-10 11-15


Top 50 hastags from of all verified websites.

Supplementary Information (add-on for SEO geeks)*- See more on header.verify-www.com

Header

HTTP/1.1 301 Moved Permanently
Connection close
Content-Length 162
Server GitHub.com
Content-Type text/html
Location htt????/atevans.com/
X-GitHub-Request-Id 6BFA:195C42:67D5C:6F4B7:6A7DEB26
x-github-edge-region uksouth
Accept-Ranges bytes
Age 0
Date Thu, 13 Aug 2026 16:04:54 GMT
Via 1.1 varnish
X-Served-By cache-lcy-egml8630080-LCY
X-Cache MISS
X-Cache-Hits 0
X-Timer S1786637094.472775,VS0,VE82
Vary Accept-Encoding
X-Fastly-Request-ID 8b87fda2168f9e3145f1b16ef9304841af78c71b
HTTP/2 200
server GitHub.com
content-type text/html; charset=utf-8
last-modified Sat, 23 Dec 2023 06:31:52 GMT
access-control-allow-origin *
etag W/ 65867ed8-195a1
expires Thu, 13 Aug 2026 15:33:39 GMT
cache-control max-age=600
content-encoding gzip
x-proxy-cache MISS
x-github-request-id 7C42:5FB97:501D6:55F70:6A7DE17A
x-github-edge-region uksouth
accept-ranges bytes
age 0
date Thu, 13 Aug 2026 16:04:54 GMT
via 1.1 varnish
x-served-by cache-lcy-egml8630032-LCY
x-cache HIT
x-cache-hits 0
x-timer S1786637095.581859,VS0,VE88
vary Accept-Encoding
x-fastly-request-id d2fa34d6bdfc1a13f1cfb92e3ebde563c83d5b40
content-length 26571

Meta Tags

title="atevans - Home"
charset="utf-8"
http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"
name="description" content="blog from andrew evans"
name="author" content="andrew 'agius' evans"
name="viewport" content="width=device-width,initial-scale=1"
name="application-name" content="atevans.com"
name="msapplication-TileColor" content="#FFFFFF"
name="msapplication-TileImage" content="htt????/atevans.com/logos/mstile-144x144.png"
name="msapplication-square70x70logo" content="htt????/atevans.com/logos/mstile-70x70.png"
name="msapplication-square150x150logo" content="htt????/atevans.com/logos/mstile-150x150.png"
name="msapplication-wide310x150logo" content="htt????/atevans.com/logos/mstile-310x150.png"
name="msapplication-square310x310logo" content="htt????/atevans.com/logos/mstile-310x310.png"
property="og:image" content="htt????/atevans.com/logos/favicon-96.png"
property="og:title" content="Home"
property="og:site_name" content="atevans.com"
property="og:url" content="htt????/atevans.com/"
property="og:type" content="blog"
name="msapplication-notification" content="frequency=30;polling-uri=htt???/notifications.buildmypinnedsite.com/?feed=htt????/atevans.com/feed.xml&id=1;polling-uri2=htt???/notifications.buildmypinnedsite.com/?feed=htt????/atevans.com/feed.xml&id=2;polling-uri3=htt???/notifications.buildmypinnedsite.com/?feed=htt????/atevans.com/feed.xml&id=3;polling-uri4=htt???/notifications.buildmypinnedsite.com/?feed=htt????/atevans.com/feed.xml&id=4;polling-uri5=htt???/notifications.buildmypinnedsite.com/?feed=htt????/atevans.com/feed.xml&id=5;cycle=1"

Load Info

page size26571
load time (s)0.253107
redirect count1
speed download105023
server IP 185.199.110.153
* all occurrences of the string "http://" have been changed to "htt???/"