19,551 Matching Annotations
  1. Last 7 days
    1. And SHAW should absolutely be helping, it's as simple as providing the correct server details that you enter into your email client software/app. They don't have to support the software or tell you how to do it, but at the very least should inform their customers this is the likely problem and then provide the link to their help page.
    1. I got no actual help from my long Verizon Support chat session and I kept asking if there is a block list they use that they could check (or a whitelist I could be added to...but fat chance) my IP for, since that is clearly what the error is calling out, but they never acknowledged that particular part of my questions, just ignored it.
    2. I found that there was an entry for our external IP, which may well be the problem. I thankfully had the ability to change the external IP our internal postfix server NATs to to something else, and voila! the messages go through just fine. I know not everyone has that flexibility to select another IP
    1. Unlike traditional search engines that rely on keywords, Perplexity AI focuses on understanding your intent. It analyzes your query, the context of your previous interactions, and your overall knowledge base to determine what you're truly seeking. 
    1. I ran across an AI tool that cites its sources if anyone's interested (and heard of it yet): https://www.perplexity.ai/

      That's one of the things that I dislike the most about ChatGPT is that it just synthesizes/paraphrases the information, but doesn't let me quickly and easily check the original sources so that I can verify (and learn more about the topic by doing further reading) the information for myself. Without access to primary sources, it often feels no better than a rumor — a retelling of what someone somewhere allegedly, purportedly, ostensibly found to be true — can I really trust what ChatGPT claims? (No...)

    1. Perplexity AI's biggest strength over ChatGPT 3.5 is its ability to link to actual sources of information. Where ChatGPT might only recommend what to search for online, Perplexity doesn't require that back-and-forth fiddling.
    1. As it competes with generative AI search features from established tech titans like Google and Microsoft, Perplexity has another factor working in its favor: novelty, Friedman said. “I think many people are rooting for Perplexity because they represent the new player, the new paradigm, the new product,” he told Forbes. And if its quick growth and popularity among some of tech's highest profile people indicates anything, it looks like that novelty has some staying power.
  2. Apr 2024
    1. Strong organization sets a great example for your team at work and shows that you mean business. Keeping things in order ensures less stress, a greater sense of control, and sets you up for success. 
    2. Asking questions ensures they fully understand whatever it is they’re doing. They don’t go into projects blindly or assume anything. They ask probing questions to gain a complete understanding of what it is they’re trying to accomplish, why they’re working towards that goal, and everything else in between. Having an analytical mind ensures that they don’t let any details slip through the cracks.
    3. Some may mistake their numerous, detailed questions as a trait of a perfectionist, which can be the case, but not always. Accuracy can be misinterpreted as perfection. If you’re detail-oriented, don’t let the fear of appearing as a perfectionist keep you from doing quality work.
    4. Then, they reread it and check it for typos and grammatical errors, put it down, check it for context and completion, and repeat. They may do this again and again until they arrive at a product they feel good about. 
    1. Why do they follow these nouns? Sometimes it is imperative for them to follow the nouns they modify. For example, in your example, there's a difference between "proper reptiles" and "reptiles proper"
    1. It's definition 6 from Merriam-Webster: 6 : strictly limited to a specified thing, place, or idea

      Thanks for pointing to this! There are so many different meaninsg/senses of "proper". That's the one!

    2. It means the booth specifically, without any extra bits. By way of example: "Times Square" might often be used to refer to the area around Times Square, but may include things which are not actually part of the Square. To narrow such a usage, one might say "I mean only the actual Times Square" or "I mean Times Square proper."
    1. Unfortunately, regex syntax is not really standardized... there are many variants, which differ among other things in which "special characters" need \ and which do not. In some it's even configurable or depends on switches (as in GNU grep, which you can switch between three different regex dialects).
    1. Your concern over whether or not I care about a couple of characters is weird: I observed that the sed expression worked both with and without /P2/q on my system; that's it. I was curious about something and wanted to share what I found.
    1. if a mail system automatically unsubscribes recipient mailboxes that have been closed or abandoned, there can be no interaction with a user who is not present

      I had not thought of that use case...

    2. To prevent accidental unsubscriptions, senders return landing pages with a confirmation step to finish the unsubscribe request. A live user would recognize and act on this confirmation step, but an automated system would not. That makes the unsubscription process more complex than a single click.
    3. But when the unsubscribe action is combined with a user junk report, there is no direct user interaction with the mailer's website.
    4. but the process of identifying trustworthy mailers and notifying them does not scale well to large numbers of small mailers

      bias against small players?

    1. The standard difference operator (-) returns day-based results for both date, timestamp and timestamp with time zone (the former returns days as int, the latter two return day-based intervals): From the day-based intervals you can extract days with the extract() function: select current_date - '2017-01-01', extract(day from now()::timestamp - '2017-01-01 00:00:00'), extract(day from now() - '2017-01-01 00:00:00Z');
    1. select count(*) filter (where year <= 1945) as pre1945, count(*) filter (where year between 1946 and 1964) as period2, count(*) filter (where year between 1965 and 1974) as period3, ... from ... where ...;
  3. Mar 2024
    1. it normally describes a category of literature, music, or other forms of art or entertainment, based on some set of stylistic criteria
    2. "its structure is somewhat superior to…those that have come after, fundamentally flawed as they are by their inclusive and hierarchical taxonomy, which each time immediately brings the whole game to a standstill and produces an impasse"
    3. Taxonomy allows for a structured classification system of genre, as opposed to a more contemporary rhetorical model of genre.

      Meaning...? Genre isn't a taxonomy because taxonomy requires more structured classification?

    4. However, more ambitious efforts to expand the tripartite system resulted in new taxonomic systems of increasing scope and complexity.
    5. This taxonomy implies a concept of containment or that an idea will be stable forever.

      What do you mean? This taxonomy? which? Does this contradict that it's an intangible taxonomy?

    6. In literature, genre has been known as an intangible taxonomy.
    1. Geeks often enjoy aspects of pop culture, sometimes with an intellectual focus, alone or with friends. This can include things like board games, film (including favorite directors, composers, or key grips), tech gadgets, hacking, and techno music.
    2. Nerds often enjoy aspects of "high culture" and intellectual pursuits, usually alone. Chess, classical music, go, and fine art are examples. Solitary pursuits, like programming and solo gaming, are also common.
    1. If you want to write an awk script, which portable to any awk implementations and versions (gawk/nawk/mawk...) it is really hard, even if with --posix (gawk)
    1. The function body can be any compound command, not just a group command ( {} ). Use a sub-shell: is_hello_world() ( shopt -s nocasematch [[ "$1" =~ "hello world" ]] )
    2. foo () {...} just looks so natural, you never think that the braces aren't part of the function syntax, rather than the mostly commonly used compound command.
    3. The reason it works when using one statement is that local swallows the return type of the right hand side (e.g. local foo=$(false) actually returns the zero status code); that's one of bash's many pitfalls.
    4. I suppose it would be easy to make a pushshopt function like there is a pushd, and use bash arrays to remember previous option before setting them. Like pushshopt +extglob -nocasematch and popshopt
    1. have extensively criticized both companies (and generative AI systems in general) for training their models on masses of online data scraped from their works without consent. Stable Diffusion and Midjourney have both been targeted with several copyright lawsuits, with the latter being accused of creating an artist database for training purposes in December.
    1. Autodesk Flex is a pay-as-you-go option that lets you pre-purchase tokens to access any product available with Flex for a daily rate. Rates vary based on the product used. Flex is a great option for team members or individuals who want to try a product or only need occasional access.
    1. Integrate ArmorPaint into existing 3D software using the live-link plugins. Blender, Unreal Engine and Unity plugin previews are available for download.
    1. Its a powerful software, Adobe is a Horrid company though, and they make everything subscription base, Buy out and monopolize software sweets whenever they can, Generally they are the absolute worst. I recommend learning how to use blender painting or the open source software ARMORPAINT as soon as its available so you don't have to support this scumwater company.In the mean time its the only thing that is widely supported, The united states just needs better consumer protection laws. it all comes down to america's horrid consumer protection laws that make companies like this possible.
    1. without science; in the manner of quacks.

      What on earth? How can this word, which in my experience describes precisely the manner that makes something science, at the same time have a meaning that means "without science" and in the manner of a charlatan? I'd never heard of this meaning before...

    1. The other budgeting tool is the Spending Plan. Most of it flows out of transactions you’ve imported and categorized. This tool takes your income after bills, subscriptions, transfers, and savings are deducted, and subtracts planned spending, which can be one-time purchases or monthly expenses that fluctuate, like groceries and gas.
    2. When you add to or withdraw from a goal you’ve created, the app doesn’t move funds between your accounts. You do that yourself. But the affected accounts’ balances will reflect the funds that are earmarked for a savings goal.
    3. You can also see underlying transactions for each income and spending area. 
    4. The app’s developers and early users found that people spend discretionary money differently each month, making it difficult to create a workable budget.

      budgeting = difficult

    5. Some apps, such as Credit Karma and  Credit Sesame, suggest users open a new savings account that's affiliated with the app (but usually run by a bank) to help them put money toward savings. Simplifi doesn't offer any affiliated bank accounts, but it will do the bookkeeping for you if you want to set and contribute to savings goals. 
    6. You can split transactions among multiple tags or categories and exclude them from reports and the Spending Plan.
    1. I just wanted to clarify that Simplifi uses the "Appears on your statement as..." info to apply Payee Rules to downloaded transactions. This is the info that is provided by the bank, not the renaming logic that Simplifi uses. If you have a Payee Rule setup with certain keywords, Simplifi will look for those in the "Appears on your statement as..." info, and then apply the Payee Rule instead of using renaming logic.
    1. I agree with the majority of users, that Mint should have just started charging a modest fee. The Mint migration to CK is a train wreck. I can't wait to see the numbers on the backlash..... somebody is going to get fired.
    2. Empower doesn't allow you to import legacy data from other sources (like Mint) or input manual transactions such as cash. The latter isn't important to me, but the former certainly is. I have 16 years of transaction data in Mint that I want to preserve.
    3. The transaction does not show as two transactions on the transaction list post split. Instead, the transaction shows as split.

      I think it's okay/reasonable, but am curious now how MM might be doing it even better...

    4. I found this strange too. I de-linked all the bills and subscriptions from the budget (spending plan) in Simplifi and added them to the planned expense section. After that, the budget is more Mint like for me.
    5. I tried Simplifi a little bit more and I agree: their budgeting feature does not make sense to me. They separate bills and subscriptions from the spending plan, making it impossible to see every planned expense against my projected income. It also doesn’t offer an easy way to cover overspending by transferring available money from other categories.
    6. It seems better now but I don't like how it you can't easily roll with the punches if you go over something. It's not as easy as taking from another category and applying the funds you can only increase the current category. So you don't really know how much you have to spend.
    7. From what I looked, Simplifi does everything (but Forecast) Monarch does ( goals is even better) with a less pleasant layout, $29.

      .

    8. Simplifi's account connection is just faster. Simplifi provides real time updates every time you refresh, while Monarch's update rhythm is much slower and it's often unclear why some accounts are more updated than others.
    9. Nested categories. If I click into a spending group on Simplifi, I can see the breakdown of all categories within that group. Somehow I cannot do this on Monarch. I can only view by group or category as a whole. There's no nesting.
    1. Monarch Money recognizes that every couple has unique financial management styles. It offers users the flexibility to select which accounts and transactions should be included in the shared household overview, accommodating different preferences and needs.
    2. Yes, Monarch Money allows couples to view accounts and transactions of each other. It allows the invitation of additional household members to join. Each member receives their own login while gaining visibility into the collective household finances.
    3. While this simplicity is appealing to users who prefer an uncomplicated budgeting experience, it lacks the depth of customization provided by Monarch Money. Simplifi’s straightforward design is excellent for quick budget planning but may not satisfy those who need more nuanced financial management tools and a customized spending plan.
  4. www.monarchmoney.com www.monarchmoney.com
    1. Our diagrams and charts make it easy to see where every dollar of your hard-earned money is flowing, so you can track your spending patterns at a glance.
    2. Invite a partner or financial advisor to collaborate at no extra cost. They'll get their own login, and you'll both get a shared view of what's happening with your money.
    3. Monarch uses AI to clean your transactions, and gets smarter over time. If you want more control, you can use transaction rules to predictably update merchant names, categories, tags, notes, and more to keep everything organized.
    1. The best place to keep sinking funds is often a high-yield savings account.
    2. If you’re saving for several different expenses, it’s worth checking with your financial institution to see if they offer savings accounts with customized buckets. This way, you only have one account to keep track of, but you’re still using the sinking fund strategy to save for specific future expenses.
    1. Prepare for those inevitable expenses. When you see those tires are wearing thin, start saving for new ones. If you know the house you just bought has an old roof, start saving for a new one. These aren’t emergencies yet, and if you start saving up now, they never will be!
    1. There’s also an extra perk: If you use an out-of-network ATM, Ally doesn’t charge a fee. If the ATM provider does, Ally will reimburse those fees up to $10 per month.
    1. So with that in mind, the best option for sinking funds tends to be a high-yield savings account
    2. You can create a sinking fund for any financial goal or expense you have. These can be ongoing expenses that occur irregularly, like car insurance that you pay every six months or once a year, or a big one-time expense, like a wedding.
    3. Predictable expenses that you pay monthly, like your utilities, should remain part of your monthly budget.
    1. Then it automatically withdraws money you can safely save and deposits it in the Oportun account you specify—either the Oportun savings or retirement account. Funds from your Oportun accounts can be moved back to your linked account at any time.
    1. Honeydue is a financial app for couples. You may prefer Honeydue over Simplifi if you're looking for a free budgeting app that helps you see individual and shared expenses.
    1. Another simple way is to set up automatic deposits from your checking account into your savings account. Set the deposits to occur on the same day each month (like the day after your paycheck hits the account). This way, you’ll be saving a fixed amount of money regularly without even giving yourself the chance to use it for something else.
    1. You can’t split anything, so that charge at the gas station is all gas, even if you spent a little in the food mart.
    1. In fact, fully anonymized data may carry little to no value to your business, which makes data collection and processing completely irrelevant.
    2. Striking a balance between data anonymization and data utility is crucial yet very challenging.
    1. Furthermore, there is compelling evidence that obtaining consent can result in bias, which, in certain circumstances, can affect the outcome of the analysis. Introducing bias into data would not be in the interest of any of the stakeholders.
    1. In this case, the DPA ruled that the anonymization of personal data can be used to meet the law’s data deletion requirement.
    2. however, choose to anonymize additional personal information (last name, first name, and address) so the data could be used in ongoing analytics projects.
    3. And, does the PI actually need to be completely deleted or can some or all of the PI be anonymized?
    1. If you’ve got some technical savvy, the open-source tool Privacy Bot can send mass data deletion requests from your email address.
    2. Other companies ignore requests, hide forms or require unreasonable proof of identity — one company in Consumer Reports’s data opt-out study asked a participant to submit a notarized affidavit, Mahoney said.
    3. But according to the EFF’s Tsukayama, de-identified personal data is an oxymoron. She pointed to studies — like this one from researchers in Europe — that have found ways to re-identify large percentages of individuals in anonymized data sets.
    4. Additionally, CCPA doesn’t require companies to delete personal data that has been aggregated or “de-identified.” That means if they combine your data with data from other people in a way that obscures which data comes from whom, they’re allowed to keep it.
    5. Lo said the whole process felt like an exercise in futility.
    6. Does submitting a request mean my data will get deleted?Nope. Deletion requests are subject to some broad exemptions. Some companies — like financial services — have to hold on to certain data for legal compliance and reporting. The CCPA also allows companies to keep your data if they’re using it for security, debugging or fraud protection, or “to enable solely internal uses that are reasonably aligned with the expectations of the consumer based on the consumer’s relationship with the business.”
    7. What if I don’t live in California?Only California residents have the right to data deletion under CCPA. (Why companies have the right to your data and you do not is another story. And here’s another. And another.)But some companies have said they’ll honor deletion requests no matter where you live. Spotify, Uber and Twitter said they treat deletion requests from any geographic location the same. Netflix, Microsoft, Starbucks and UPS have also said they’ll extend CCPA rights to all Americans.
    8. The company will probably ask for you to send over additional information or set up an appointment to verify your identity — that’s so no one can pretend to be you and steal or delete your data. To verify, you may need to confirm your account username and password, provide a piece of data like your phone number for the company to cross-check, or, rarely, show your government-issued ID. You should never be required to set up an account to get your data deleted, according to CCPA.
    9. The companies behind six of the 11 apps, including Southwest Airlines and Twitter, were not sharing how many requests they’d received and honored. Twitter said it plans to add the information.
    10. People have to verify their identities before companies can delete data, which poses an extra obstacle.
    11. or were left with no idea whether it worked
    1. Nobody can see deleted accounts - not even developers. Deleted accounts are fully deleted. There's nothing to see basically by definition.
    2. There is no active user with that ID, so you cannot search by it. The whole point of deleting an account is to make it inaccessible, unreferenced, and unlinked. We're not going to implement "soft" account deletion.
    3. You cannot. And you're not supposed to. When an account is deleted, it is disassociated from all existing posts by design.
    1. I am currently working with a system presently where every table has a Deleted flag for soft-delete. It is the bane of all existence. It totally breaks relational integrity when a user can "delete" a record from one table, yet children records which FK back to that table are not cascade soft-deleted. Really makes for trash data after time passes.
    2. Don't worry about performance too early though - it's more important to get the design right, and "right" in this case means using the database the way a database is meant to be used, as a transactional system.
    3. The only issue left to tackle is the performance issue. In many cases it actually turns out to be a non-issue because of the clustered index on AgreementStatus (AgreementId, EffectiveDate) - there's very little I/O seeking going on there. But if it is ever an issue, there are ways to solve that, using triggers, indexed/materialized views, application-level events, etc.
    4. Udi Dahan wrote about this in Don't Delete - Just Don't. There is always some sort of task, transaction, activity, or (my preferred term) event which actually represents the "delete". It's OK if you subsequently want to denormalize into a "current state" table for performance, but do that after you've nailed down the transactional model, not before. In this case you have "users". Users are essentially customers. Customers have a business relationship with you. That relationship does not simply vanish into thin air because they canceled their account. What's really happening is:
    5. Now you have something with all of the benefits of soft-deletes but none of the drawbacks:
    6. The truth is that both of these approaches are wrong. Deleting is wrong. If you're actually asking this question then it means you're modelling the current state instead of the transactions. This is a bad, bad practice in database-land.
    7. In any system even remotely tied to money, hard-deletion violates all sorts of accounting expectations, even if moved to an archive/tombstone table. The correct way to handle this is a retroactive event.
    8. So, soft delete is better, right? No, not really: Setting up cascades becomes extremely difficult. You almost always end up with what appear to the client as orphaned rows. You only get to track one deletion. What if the row is deleted and undeleted multiple times? Read performance suffers, although this can be mitigated somewhat with partitioning, views, and/or filtered indexes. As hinted at earlier, it may actually be illegal in some scenarios/jurisdictions.
    1. The industry’s first standard for handling user data deletion requests
    2. This is the first technical standard of its kind for the digital advertising industry
    3. Avoiding one-off, proprietary builds per partnership and policy, or just as bad, manual processes to reach out to partners for deletes, can save the industry real money and reduce room for error.
    1. I find it ridiculous that we spend energy on debating whether an alternate spelling is "correct" - real people, not English professors and dictionary authorities, are the authorities on English-as-used, and will ultimately make the distinction irrelevant.

      Point: there is no "authority" on which spelling is correct, because normal people using the language are the ones who decide

    1. It's like someone creating a new List and a new Set, printing their size(), and then asking what's the difference. Of course, there is none: The size is 0 for both.
    1. nowadays many people work with docker containers. Most default docker images do not have bash and something like [[ $string == *foo* ]] will not work.
    2. It's not so much a criticism as the preference of a more universal solution over a more limited one. Please consider that, years later, people (like me) will stop by to look for this answer and may be pleased to find one that's useful in a wider scope than the original question. As they say in the Open Source world: "choice is good!"
    3. if [[ $string == *"My long"* ]]; then
    4. Please use $needle in a $haystack idiom in your example. It's much easier to read and understand.
    1. When you need to publish multiple packages and want to avoid your contributors having to open PRs on many separate repositories whenever they want to make a change.
    2. when projects want to keep strict boundaries within their code and avoid becoming an entangled monolith. This is for example the case for Yarn itself, or many enterprise codebases.
    3. This pattern is often called monorepo when used in conjunction with a repository.
    1. Given that we historically didn't release many majors, some people have started to colloquially call "Yarn 2" everything using this new codebase, so Yarn 2.x and beyond (including 3.x). This is incorrect though ("Yarn 2" is really just 2.x), and a better term to refer to the new codebase would be Yarn 2+, or Yarn Berry (which is the codename I picked for the new codebase when I started working on it).
  5. Feb 2024
    1. if (!stat(worktree_git_path(wt, "rebase-apply"), &st)) { if (!stat(worktree_git_path(wt, "rebase-apply/applying"), &st)) { state->am_in_progress = 1; if (!stat(worktree_git_path(wt, "rebase-apply/patch"), &st) && !st.st_size) state->am_empty_patch = 1; } else { state->rebase_in_progress = 1; state->branch = get_branch(wt, "rebase-apply/head-name"); state->onto = get_branch(wt, "rebase-apply/onto"); } } else if (!stat(worktree_git_path(wt, "rebase-merge"), &st)) { if (!stat(worktree_git_path(wt, "rebase-merge/interactive"), &st)) state->rebase_interactive_in_progress = 1; else state->rebase_in_progress = 1; state->branch = get_branch(wt, "rebase-merge/head-name"); state->onto = get_branch(wt, "rebase-merge/onto"); } else return 0; return 1;

    1. The purported reason seems to be the claim that some people find "master" offensive. (FWIW I'd give that explanation more credence if the people giving it seem to be offended themselves rather than be offended on behalf of someone else. But whatever, it's their repo.)
    2. git remote set-head origin -a

      Resolved the problem I had where I mistakenly deleted this [local tracking branch]?

      ls .git/refs/remotes/origin/HEAD ls: cannot access '.git/refs/remotes/origin/HEAD': No such file or directory

    3. I think the above answers what you actually wanted to know, but to go ahead and answer the question you explicitly asked...
    1. This is for those who purchased our Humble Bundle at the Tier 1 level ($1). First, click add to cart. Do not remove this item from your order - it will also be discounted to $0.Once this is added to the cart, it will automatically add the appropriate products. Enter the coupon you were given in your Humble Bundle receipt to get 100% off.  Be sure to use normal checkout. PayPal, Apple Pay, and Google Pay will not work with the coupon code.  On the checkout page, scroll all of the way down and the coupon code field is on the bottom right. You will not have to enter any card information as the coupon code you were given from Humble Bundle takes 100% off and removes the card information fields. If you are asked to enter card information, something was done incorrectly.
    1. for pathname do

      Not quite what I was looking for, though it may help some cases. It said pathname was /dev/stdin, when I expected it to be a line from stdin.

      Replaced with: while IFS= read -r line; do echo "line: $line" done

    2. Your "driver" (wrapper, really) script
    3. #!/bin/sh if [ "$#" -eq 0 ]; then set -- /dev/stdin fi for pathname do gawk -f awk_prac.awk "$pathname" done
    4. if [ "$#" -eq 0 ]; then cat else printf '%s\n' "$@" fi |
    1. if [ "$#" -ne 0 ] then printf '%s\n' "$1" else cat fi |
    2. if (( ${#} == 0 )) ; then while read -r __my_function ; do my_function "${__my_function}" done else target_utility "${@}" fi

      I like it pretty well, in many ways more than G-Man's answer. I like the use of while read. I'd probably prefer non-recursive solution most of the time though, esp. if instead of a function we would be spawning a subshell (script) to achieve the recursion, like in ...

    3. Also unclear why the answer is criticized for providing a "more general case" since the OP said "You are right, this [base64] was just used as an example, though.
    4. target_utility
    5. The lonesome cat isn’t useless.  UUOCs are typically characterized by having exactly one filename argument; this one has none.  It connects the input to the function (which is the input of the if statement) to the output of the if statement (which is the input to the base64 –decode statement)
    6. Well, here’s a non-recursive solution in which the main commands appear only once:
    7. resolved through use of recursion
    8. (It seems reasonable to assume users are often expected to occasionally adapt answers rather than expect to use them verbatim.)
    9. This answer is one of various possible solutions for a "Bash function that accepts input from parameter or pipe" since the OP indicated [in a comment] that base64 was not the actual problem domain. As such, it makes no attempt to assure input is able to be directly read from a file.
    10. but in a different situation target_utility "${@}" could represent more complex code
    11. Though the OP's issue may not present a problem ideally resolved through use of recursion, other reader's problems may benefit from using it, or, from considering use of an wrapper function:
    12. Duplicating non-trivial code in both the if and in the else could create unnecessary issues.
    13. If one had to deal with the drain of such critique for every answer, perhaps site usage would go down. People have lives to lead and the OP is apparently already happy. IMO, it is time to move on.