Meta tags:
description= How to share everything easily;
Headings (most frequently used words):
the, splitwise, for, cacheable, new, posts, of, is, gem, in, integration, paytm, blog, get, via, email, archives, ask, my, roommate, owes, me, six, months, utilities, dark, mode, updates, so, how, much, does, bach, party, actually, cost, maintainer, super_diff, introducing, android, version, redesigned, simple, caching, methods, ruby, why, try, it, yourself, presenting, upgrades, to, our, paypal, mobile, resolved, v6, caused, bug, pagination, one, night, not, anymore, price, tag, revealed, seven, magic, number, bottom, line,
Text of the page (most frequently used words):
the (151), and (110), for (54), splitwise (52), our (36), #caching (34), that (32), you (29), this (21), with (21), was (19), code (18), #cacheable (17), your (17), cache (17), not (16), more (16), but (16), new (16), method (16), may (15), from (14), app (14), all (13), how (13), what (13), paytm (12), integration (12), has (12), android (12), key (12), can (12), blog (11), have (11), june (11), updated (11), methods (11), categories (10), author (10), 2018 (10), posted (10), logic (10), its (10), september (10), 2012 (10), 2013 (10), are (9), december (9), time (9), ruby (9), 2011 (9), now (8), march (8), were (8), here (8), paypal (8), use (8), which (8), data (8), group (8), gem (8), bach (8), 2026 (8), 2014 (8), comment (7), page (7), when (7), out (7), many (7), easy (7), balance (7), only (7), over (7), get (7), could (7), features (7), other (6), small (6), been (6), will (6), update (6), mobile (6), august (6), changes (6), made (6), rails (6), had (6), any (6), about (6), responsible (6), expenses (6), months (6), july (6), version (6), april (6), owes (6), his (6), mode (6), him (6), uncategorized (5), november (5), 2017 (5), continue (5), who (5), days (5), everything (5), work (5), october (5), ios (5), leave (5), know (5), easier (5), does (5), same (5), single (5), should (5), default (5), there (5), hard (5), enough (5), into (5), don (5), one (5), most (5), simple (5), share (5), look (5), forward (5), improvements (5), much (5), competing_price (5), end (5), feel (5), modern (5), elliot (5), party (5), shared (5), dark (5), 2015 (5), com (4), resolved (4), caused (4), reading (4), since (4), starting (4), dev (4), addition (4), github (4), make (4), open (4), source (4), back (4), found (4), think (4), aspect (4), oriented (4), these (4), maintain (4), without (4), month (4), test (4), also (4), good (4), decided (4), cache_key (4), class (4), cached (4), using (4), longer (4), metaprogramming (4), while (4), step (4), first (4), faster (4), costs (4), people (4), today (4), clean (4), redesign (4), updates (4), redesigned (4), support (4), groups (4), important (4), life (4), average (4), person (4), night (4), six (4), rent (4), comments (3), log (3), wordpress (3), bug (3), number (3), last (3), few (3), email (3), enabled (3), reflect (3), change (3), process (3), under (3), reliability (3), projects (3), love (3), aop (3), cost (3), maintenance (3), aspects (3), calculating (3), balances (3), tested (3), each (3), take (3), simply (3), began (3), read (3), review (3), easily (3), value (3), name (3), being (3), called (3), added (3), object (3), used (3), they (3), space (3), way (3), invalidation (3), own (3), makes (3), moved (3), built (3), even (3), conditional (3), better (3), user (3), need (3), across (3), like (3), product (3), full (3), clear (3), releasing (3), apps (3), iphone (3), 2019 (3), goal (3), interface (3), popular (3), screens (3), introducing (3), 2024 (3), keeping (3), super_diff (3), actually (3), through (3), parties (3), half (3), trips (3), per (3), plan (3), roommate (3), utilities (3), bills (3), living (3), february (3), january (3), post (2), content (2), sign (2), privacy (2), account (2), subscribe (2), posts (2), users (2), settled (2), payment (2), via (2), information (2), confident (2), expected (2), issue (2), newest (2), both (2), upgrades (2), ryan (2), laughlin (2), late (2), live (2), again (2), part (2), upgrade (2), several (2), weeks (2), web (2), excited (2), latest (2), believe (2), increase (2), presenting (2), instructions (2), repository (2), every (2), day (2), community (2), increased (2), try (2), let (2), programming (2), responsibilities (2), modules (2), able (2), increasing (2), stack (2), production (2), say (2), necessary (2), clarity (2), benefits (2), writing (2), became (2), encapsulated (2), trivial (2), add (2), additional (2), often (2), line (2), point (2), opinion (2), result (2), provide (2), instance (2), arguments (2), wasn (2), behavior (2), generated (2), put (2), created (2), associated (2), systems (2), run (2), based (2), would (2), conditionally (2), system (2), handle (2), things (2), gems (2), comes (2), amount (2), whether (2), because (2), unobtrusive (2), well (2), module (2), then (2), classes (2), extract (2), separately (2), too (2), responsibility (2), principle (2), reexamine (2), principles (2), specifically (2), still (2), tests (2), pay (2), memory (2), core (2), them (2), two (2), custom (2), yourself (2), designed (2), stress (2), doing (2), great (2), solve (2), rest (2), world (2), start (2), making (2), docs (2), approach (2), ourselves (2), complex (2), example (2), why (2), story (2), includes (2), utility (2), skip (2), applicationrecord (2), def (2), competitor (2), api (2), find_price (2), icon (2), tags (2), feature (2), jon (2), bittner (2), detailed (2), cover (2), photos (2), avatars (2), creation (2), flows (2), pro (2), homepage (2), logo (2), visual (2), identity (2), keep (2), refreshing (2), polished (2), team (2), felt (2), some (2), told (2), show (2), age (2), represent (2), throughout (2), enhanced (2), discoverability (2), rebuilt (2), style (2), include (2), launching (2), major (2), refresh (2), including (2), 2021 (2), quality (2), around (2), project (2), output (2), liz (2), hernandez (2), trip (2), bachelor (2), between (2), everyone (2), head (2), roughly (2), come (2), nightmare (2), attendees (2), seven (2), 100 (2), three (2), friend (2), access (2), toggle (2), settings (2), anything (2), set (2), ask (2), stressful (2), after (2), before (2), within (2), confidently (2), concessions (2), mess (2), stranger (2), mom (2), together (2), dear (2), 2016 (2), archives (2), must, logged, loading, collapse, bar, report, manage, subscriptions, view, site, reader, join, 314, subscribers, subscribed, next, pagination, zoe, chaves, upgrading, matching, their, ledger, potentially, affected, personally, contacted, becomes, available, disabled, working, week, released, glitch, 2nd, please, versions, alerted, companies, quickly, towards, resolution, roll, launch, date, early, belatedly, completed, once, usable, platforms, temporarily, unavailable, friday, 29th, seen, construction, message, button, during, remained, announce, upgraded, integrations, technology, usability, security, aaronatsplitwise, implementation, examples, wonderful, strongly, giving, abstraction, ready, box, didn, beforehand, learned, stumbled, onto, expert, foray, showed, useful, tool, reduce, allowed, separate, thus, behaviors, such, composing, thoroughly, reliably, independently, saves, avoiding, entirely, understand, independent, less, augment, risk, regression, victory, developers, productivity, happiness, happy, untangling, business, dropped, error, rate, order, magnitude, instead, handful, inconsistent, hits, recalculations, saw, fewer, noticed, soon, drying, getting, maintainable, modify, disparate, pulled, apart, isolated, peer, required, library, general, format, ease, modified, stores, undefined, allows, modification, where, overwritten, details, finally, depends, however, ability, specify, key_format, proc, invoking, fine, tuned, ties, state, activerecord, creates, updated_at, timestamp, database, fresh, old, combined, remove, least, recently, lru, values, effective, sidestep, problem, expiration, previously, create, clearing, unified, something, thorny, uses, interpreted, language, composition, accomplish, writes, deal, incredible, functionality, embrace, likely, encountered, knew, typically, case, extracted, dedicated, included, directive, initiate, wrap, indicated, checking, validating, populating, srp, primarily, applied, computing, continued, tweak, workarounds, clauses, avoid, race, conditions, problems, frustrating, extra, complicated, intended, experience, received, hidden, fee, correct, correctly, performance, improved, developed, smell, benefit, dry, repeat, noticing, occasional, inconsistencies, runtime, requiring, recalculation, overly, surprising, sharing, job, going, eventually, takes, non, calculate, total, want, server, taking, crunch, numbers, needed, speed, activity, classic, trade, off, recent, calculation, facilitate, normalize, proud, present, check, complete, welcome, enhancements, pull, requests, enter, switching, build, framework, reliable, various, parts, codebase, realized, shouldn, crufty, wrapping, blocks, harder, difficult, wanted, perform, cause, balloon, size, complexity, behind, building, significantly, helped, diagnose, bugs, help, scenarios, powerful, dynamic, generation, fetch, turns, taken, documentation, rebrand, 412834, 823989, simultaneously, significant, evolution, branding, incorporate, icons, huge, worldwide, colors, foremost, flagship, entire, platform, big, unequally, splitting, expense, presentation, greater, layout, speeds, task, completion, embraces, material, design, joe, stein, miss, glad, pursuing, best, thank, awesome, contributing, pleasure, reviews, educational, friendly, honored, passing, committed, welcoming, atmosphere, develop, asked, ownership, very, kindly, said, yes, find, home, repositories, winkler, announced, among, wrote, maintained, quite, helpful, greatly, clarifies, rspec, particular, failure, debugging, identifying, regressions, retiring, mcmire, maintainer, drawn, tens, thousands, 2025, identified, bachelorettes, creator, country, aggregated, anonymized, protect, hold, high, standard, insight, publish, rigorous, methodologies, continuously, collection, analysis, practices, minimize, bias, identify, anomalies, consistency, reporting, insights, readers, partners, broader, industry, trust, confidence, methodology, become, biggest, discretionary, social, twenty, thirty, somethings, difference, fun, chat, gone, cold, see, interactive, trends, bottom, followed, fact, busiest, year, far, summer, window, collectively, captures, annually, alone, accounts, suggests, lively, activities, logistical, right, magic, ranging, widely, exceeded, 500, upfront, communication, long, individual, airfare, figure, covers, usual, ubers, drinks, inevitable, pizza, tells, common, range, nearly, came, 300, 200, spent, 410, usd, price, tag, revealed, confirmed, just, affairs, lasting, anymore, call, stag, buck, pre, nuptial, celebration, quietly, transformed, blown, affair, millions, split, took, reveals, appearance, section, tab, choose, light, match, automatically, follow, device, preference, expanding, control, preferences, becca, rogers, conversation, weight, lifted, rooting, lastly, stay, top, moving, another, receiving, curious, boundaries, asking, talking, ideal, solution, agree, repayment, feeling, pressured, sitting, down, organize, statements, document, missing, payments, sure, reference, understanding, room, negotiation, money, conversations, awkward, ways, heading, discussion, remember, wrong, sounds, lot, accepting, short, changed, isn, legal, contract, agreement, though, uncomfortable, rights, enforce, someone, adding, equation, challenging, hasn, paid, constantly, nagging, haven, brought, talk, fast, later, needs, constant, reminders, shorts, leaves, finished, disappears, apartment, fall, finding, searching, internet, nice, seemed, reasonably, select, address, notes, citations, tax, calculator, faq, disclosure, special, thanks, translators, attributions, menu, widgets,
Text of the page (random words):
epting his mess and being short changed on rent but this person isn t your friend you have a legal contract with them through your shared living agreement and though it s uncomfortable it s well within your rights to enforce it before sitting down with him organize your shared bills review your statements and document everything he owes from missing rent payments to utility bills make sure everything is easy to reference and share so that he has a clear understanding of what he owes without room for negotiation it s also important for you to know what you re asking for before talking to him do you need the payment within a few days or a few weeks get clear on your ideal solution so you can confidently agree on a repayment plan without feeling pressured to make concessions that don t work for you lastly come up with a plan to stay on top of shared bills moving forward don t let another six months go by without receiving your share get curious about what systems work for him and set boundaries with what you need it may be stressful now but after the conversation you ll feel a weight lifted we re rooting for you splitwise posted on september 29 2026 author becca rogers categories uncategorized leave a comment on ask splitwise my roommate owes me for six months of utilities dark mode updates we ve been expanding dark mode support across our mobile apps and both android and ios now have a new in app toggle for even more control over your preferences how to set your preference head to the appearance section in your account tab and choose between light mode dark mode or match your system settings if you don t change anything splitwise will automatically follow your device s settings by default how to get access update to the latest version of the splitwise app to access dark mode the in app toggle and all the newest features posted on may 18 2026 may 18 2026 author liz hernandez categories uncategorized tags new features leave a comment on dark mode updates so how much does a bach party actually cost whether you call it a stag do buck s night or a bachelor party the pre nuptial celebration has quietly transformed into a full blown affair millions of friend groups plan and split costs on splitwise so we took a look at what the data reveals one night not anymore our data confirmed bach parties are no longer just one night affairs the average trip was three days with 92 lasting two days or longer the price tag revealed on average attendees spent 410 usd per person not including individual airfare that figure covers the usual shared expenses ubers drinks and the inevitable late night pizza run but the average only tells part of the story the most common range was actually 100 200 per person and nearly half of all trips came in under 300 with costs ranging widely roughly 1 in 4 trips exceeded 500 per person upfront communication about which expenses are shared can go a long way in keeping everyone on the same page seven is the magic number so how many people should come our data suggests that the average number of attendees is right around seven people enough for lively activities but small enough to not be a logistical nightmare the most popular month may followed by june and july in fact may alone accounts for roughly 15 of all bach trips making it the single busiest month of the year by far the summer window of may through august collectively captures over half of all bach parties annually the bottom line bach parties have become one of the biggest discretionary social expenses for twenty and thirty somethings the difference between a fun memory and a group chat gone cold keeping everyone on the same page about costs how does your bach party stack up to see head to our interactive bach party trends page methodology at splitwise we hold ourselves to a high standard when it comes to data quality every insight we publish is based on rigorous methodologies we continuously review our data collection and analysis practices to minimize bias identify anomalies and maintain consistency across our reporting our goal is simple to provide insights that readers partners and the broader industry can trust with confidence this data is drawn from tens of thousands of splitwise trip groups created in 2025 through 2026 groups were identified as bachelor bachelorettes by group name associated with the group creator s country and all data was aggregated and anonymized to protect user privacy posted on may 15 2026 june 25 2026 author liz hernandez categories uncategorized leave a comment on so how much does a bach party actually cost splitwise is the new maintainer of the super_diff gem in june elliot winkler mcmire on github announced that he is retiring from open source among other projects elliot wrote and maintained the ruby gem super_diff which we ve found quite helpful at splitwise it greatly clarifies rspec output in particular the test failure output which makes debugging tests and identifying regressions much easier and faster we love the gem so much that we asked elliot if we could take over ownership and continue to maintain it and he very kindly said yes you can find the repository at its new home here and the rest of splitwise s open source repositories here elliot made contributing to super_diff a pleasure his reviews were as educational as they were friendly we re honored that he s passing the project on to us and are committed to keeping this welcoming atmosphere as we maintain and continue to develop it elliot the open source world will miss you and your great work but we re glad you re pursuing your best life thank you for the awesome gems posted on september 11 2024 september 17 2024 author joe stein categories dev blog introducing splitwise for android version 5 0 today splitwise is launching a major refresh of our popular android app we ve rebuilt all the most important screens in a modern new style improvements include clean look and feel that embraces modern material design new layout that speeds up task completion updated balance presentation for greater clarity around who owes who and why better interface for unequally splitting an expense enhanced discoverability of important features small quality of life improvements throughout the app our goal for this redesign was to keep splitwise easy and simple to use while refreshing the interface to feel modern clean and polished the splitwise team felt and some of you told us that the android app was starting to show its age these changes represent a big step forward here s a detailed look at what s new continue reading introducing splitwise for android version 5 0 posted on april 5 2021 author jon bittner categories feature updates leave a comment on introducing splitwise for android version 5 0 splitwise redesigned today splitwise is launching a major refresh of our entire platform including our mobile apps homepage and logo first and foremost we re releasing splitwise for ios version 5 0 which is a full redesign of our flagship iphone app we ve rebuilt all the most important screens in a modern new style improvements and features include updated visual identity app icon colors default avatars custom cover photos for groups worldwide support for splitwise pro redesigned core screens faster group creation flows enhanced discoverability of popular features small improvements throughout the app our goal for this redesign was to keep splitwise easy and simple to use while refreshing the interface to feel modern clean and polished the splitwise team felt and some of you told us that the iphone app was starting to show its age these changes represent a huge step forward simultaneously we are releasing an updated version of our android app splitwise for android 4 6 is a significant evolution that includes support for the updated branding and all the same new features as the ios update group cover photos new default user avatars faster group creation flows and support for splitwise pro we ve also redesigned our homepage and web app to incorporate the new logo icons and visual identity here s a detailed look at what s new continue reading splitwise redesigned 41 823989 71 412834 posted on july 9 2019 july 9 2019 author jon bittner categories dev blog feature updates tags 5 0 android app icon iphone mobile apps rebrand redesign cacheable a simple gem for caching methods in ruby today we re releasing a new gem that makes it easy to add caching to any ruby code it s called cacheable the cacheable gem is an aspect oriented unobtrusive approach to caching it turns this example code taken from the rails caching documentation class product applicationrecord def competing_price rails cache fetch cache_key competing_price do competitor api find_price id end end end into this class product applicationrecord cacheable competing_price def competing_price competitor api find_price id end end and to help handle more complex caching scenarios cacheable includes many more powerful features too conditional caching dynamic cache key generation utility methods to skip and clear the cache and more you can read the full story behind cacheable here and start using cacheable by reading our docs on github building cacheable enabled us to clean up splitwise s balance caching code significantly and it helped us solve several hard to diagnose bugs in the process why cacheable at splitwise we found ourselves writing the same crufty caching code over and over again wrapping our code in caching blocks made it harder to read and more difficult to test and any time that we wanted to perform more complex logic in one of our cached methods for example conditional caching it would cause that method to balloon in size and complexity we decided to step back and reexamine our first principles specifically the single responsibility principle we realized that a method like product competing_price shouldn t be responsible for caching at all we began to think what if we could extract the caching logic from our cached methods what if each method was only responsible for its own logic and the caching could be tested and built separately enter aspect oriented programming aop by switching to an aspect oriented approach we were able to build a caching framework that was easier to use easier to test and much more reliable across the various parts of our codebase try it yourself we ve been using cacheable in production on splitwise for many months and today we re excited to share it with the rest of the world check out our docs on github for complete instructions on how to start using cacheable in your own ruby app we look forward to making additional improvements and we welcome enhancements and pull requests from the ruby community posted on december 6 2018 december 6 2018 author ryan laughlin categories dev blog 1 comment on cacheable a simple gem for caching methods in ruby presenting cacheable splitwise is proud to present cacheable a gem designed to facilitate and normalize method caching splitwise is designed to take the stress out of sharing expenses if people think we re doing a good job they re going to put more expenses in splitwise this is great but eventually a splitwise group has so many expenses that it takes a non trivial amount of time to calculate the total balance we don t want a server that is taking time to crunch numbers to increase stress so we needed to speed this process up since balances only change when there is activity in the group we decided to solve this classic space time trade off by caching the most recent balance calculation while our performance improved our code developed a smell caching logic had to be custom added into any method that could benefit from it not only was our code no longer dry don t repeat yourself we were noticing occasional inconsistencies at runtime requiring cache recalculation this was not overly surprising as we all know that cache invalidation is one of the two hard things but because correct balances are the core of splitwise we need them to work correctly all of the time we continued to tweak the caching logic built workarounds and even added conditional caching clauses to avoid race conditions but we still had problems as if this wasn t frustrating enough the extra caching code made our tests more and more complicated we had intended to pay for time a faster better user experience with space memory for cache but also received the hidden fee of increased maintenance costs there simply had to be a better way we decided to step back and reexamine our first principles specifically the single responsibility principle srp while it s primarily for modules and classes it can be applied to methods too our method for computing the balance should not be responsible for caching at all not checking validating or populating conditionally or not we began to think what if we could extract the caching logic from the method what if the method was only responsible for the balance and the caching could be tested and built separately as an interpreted language ruby makes method composition easy to accomplish with metaprogramming or code that writes code a good deal of the incredible functionality found in rails and other gems comes from ruby s embrace of metaprogramming if you ve used ruby for any amount of time you ve likely encountered metaprogramming whether you knew it or not because it is typically small unobtrusive and well encapsulated in our case we extracted the caching logic from our methods and moved it to a dedicated module this module can then be included in other classes and a single directive used to initiate the metaprogramming which will wrap the indicated methods with caching behavior previously each method in addition to calculating data and caching would not only create its own key to use in the cache but be responsible for conditionally clearing the cache how should a unified caching system handle something as hard and thorny as cache invalidation as with many things rails has an opinion rails uses key based cache expiration which ties the generated cache key to the object s state activerecord has a method called cache_key for this which creates the key from the object s class id and updated_at timestamp put simply when an object is created or updated in the database its cache key changes the fresh key has no value in the cache and the old cached value is associated with a key that is no longer generated when combined with many cache systems that remove the least recently used lru values over time or as they run out of space you get an effective way to sidestep the cache invalidation problem this was a good starting point as we had decided our caching library should have a general opinion on the format of the key for ease of use and that it should be easily modified by default the key under which a cacheable method stores its value is made up of the result of cache_key or the class name if undefined and the method being called this allows an easy point of modificat...
|