10,000 Matching Annotations
  1. Sep 2022
    1. Prefer alias when aliasing methods in lexical class scope as the resolution of self in this context is also lexical, and it communicates clearly to the user that the indirection of your alias will not be altered at runtime or by any subclass unless made explicit.

      reassurance of lack of possibility for run-time shenanigans

    1. If you want to replace many blobs, trees or commits that are part of a string of commits, you may just want to create a replacement string of commits and then only replace the commit at the tip of the target string of commits with the commit at the tip of the replacement string of commits.
    1. As of Git 1.6.5, the more flexible git replace has been added, which allows you to replace any object with any other object, and tracks the associations via refs which can be pushed and pulled between repos.
    2. Graft points or grafts enable two otherwise different lines of development to be joined together. It works by letting users record fake ancestry information for commits. This way you can make git pretend the set of parents a commit has is different from what was recorded when the commit was created.
    1. This hasn't yet been scheduled, but we're tracking it on our backlog as something we want to do this year. A few months ago, we arranged for additional capacity to address items like this that have waited for so long. Now that additional capacity is available, it's just a matter of scheduling based on relative priority. We're anxious to get this one done, and I hope to soon have a clearer date to post here.
    1. the AST version of the code is vastly superior IMHO. The knowledge about what constitutes an access modifier is already encoded in the system so it makes more sense to just call the method to test the type of node. The regexp solution may be expedient, but it's not as resilient to change -- if new access modifiers are added in the future it's very likely this code won't be updated, which will be the source of a bug.
    1. Shims are just tiny wrappers created by asdf that just forward execution to the real versioned executables installed by asdf. This way, asdf has a single shims directory added to your PATH and has no need of mangling the PATH for every installed version.
    1. For example, whereas C programmers have argued for years about where to put their brackets, and whether code should be indented with tabs or spaces, both Rust and Go eliminate such issues completely by using a standard formatting tool (gofmt for Go, rustfmt for Rust) which rewrites your code automatically using the canonical style. It’s not that this particular style is so wonderful in itself: it’s the standardisation which Rust and Go programmers appreciate.
    1. The single-line commit trailers ^Update-Info: *(.*) on version tagged commits are used to assemble a small changelog during update, which is presented to the user. The single line can contain important information/links to relevant fixes and changes.
    1. So when should you use rbspy, and when should you use stackprof? The two tools are actually used in pretty different ways! rbspy is a command line tool (rbspy record --pid YOUR_PID), and StackProf is a library that you can include in your Ruby program and use to profile a given section of code.
    1. Because rbspy is a sampling profiler (not a tracing profiler), it actually can't tell you how times a function was called -- it just reports "hey, I observed your program 100,000 times, and 98,000 of those times it was in the calculate_thing function". ruby-prof is a tracing profiler for Ruby, which can tell you exactly how many times each function was called at the cost of being higher overhead.
    1. However, as an interpreted language, Ruby is slow compared to compiled languages. The general solution adopted by Rubyists was to throw more hardware at the problem. “Hardware is cheaper than salaried engineers,” went the common maxim.
    1. Pipes Puzzles is a is a Unity Asset flip, what Valve calls a "fake game". The "developer", beans rolls (aka Simple Logic Games, beats rolls, Crewxaa etc), took a Unity pack for making a Pipe Mania ripoff, changed the name, and dumped the result onto Steam. They're attempting to scam people into buying this, so they can get your money for someone else's work. You can see the same game published by McGeeMind on Amazon's app store.beans rolls have shown a repeat pattern of unethically dumping other people's work onto Steam as a cheap, nasty cash grab. Here's some examples so you can see for yourself: "Starveling WayE" = 2D Roguelike Tutorial developed by Unity Technologies "Sniper GameE" = Advanced Sniper Starter Kit developed by Hardworker Studio "Air StrikeE" = Air Strike Starter Kit developed by Hardworker Studio "Bouncy CubeE" = Bouncy Cube 2d developed by Game HUB "BranchesE" = Branches developed by SgLib Games "Hit ConfirmedE" = Bullet developed by Lucas Lopes "InsipidE" = Color Picket Game developed by Daniel Buckley "Down The HillE" = Emoji Down The Hill developed by SgLib Games "Connect the DotsE" = Flow Free developed by bupisource.com "Connect the Dots 3DE" = J Connect Kit developed by Jun "Math GameE" = Math Game - Brain Workout developed by App Advisory "Moon DefenseE" = Moon Defense Game Kit - FREE developed by Azureda Games "Neon ArenaE" = Neon Space Fighter developed by Aleksa Racovic "vision\memory\mazeE" = Procedural Mazes developed by Denis Mustakimov "Winding RoadE" = Shape Change Complete Game developed by Ragendom "Spinner BreakerE" = Spin Breakout developed by SgLib Games "Pick The LockE" = Stop The Lock developed by App Advisory "Twin BallsE" = Twin Balls developed by SgLib Games "Wall to WallE" = Wall to Wall developed by soloo studio "Wavy TripE" = Wavy Trip developed by SgLib "Badlands RacerE" = X-Racer developed by Deer CatThe products that result from asset flips aren't "real" games. They lack depth and content, because they're just simplistic copies of demos or tutorials. In this case, "Color Picket Game" is just a basic demo/tutorial for making a minimalist color matching game, and doesn't have any merit as a proper, fully fledged PC game, so a copy+paste of it can't be recommended.

      .

    1.   high school kids vs. high-school kids (school kids on pot, or kids in high school)   one armed bandit vs. one-armed bandit (an armed bandit alone, or a bandit with one arm)   criminal law professors vs. criminal-law professors   small animal veterinarian vs. small-animal veterinarian   old boat dealer vs. old-boat dealer   bad weather report vs. bad-weather report   big business owner vs. big-business owner
    1. The False Promise of Liberal Order: Nostalgia, Delusion and the Rise of ...The False Promise of Liberal Order exposes the flaws in this nostalgic vision. The world shaped by America came about as a result of coercion and, sometimes brutal, compromise. Liberal projects - to spread capitalist democracy - led inadvertently to illiberal results. To make peace, America made bargains with authoritarian forces.
    2. The False Promise | The Project for a New American GovernmentThe false promise of freedom from consequences is baiting into hazard as ignoring consequences must necessarily result in destruction."—Andrew M Gilmour —"Marxism is the tooth fairy of political beliefs. You can't make a credible claim to being an adult and still believe in that nonsense."-Noah J Revoy
    1. Its a bit expensive and was a bit skeptical on purchasing at first but decided to try it and can honestly say its the best investment ive made it cools your seams down in a flash so no more waiting to power stretch allowing you to complete your jobs much faster than before and it also helps to fix a bowed pattern carpet allowing you to actually match your pattern also helps with peaked seams (when youre seam is flawless but then you go to stretch it and its now visible because the seam creates a little mountain) if this thing ever broke down on me i'd happily and easily buy it again and would never go to a jobsite without it, a must have for all carpet installers
    1. Right now without your help, without support from loyal readers, we will not be able to continue publishing. Since Google has decided to dominate online advertising and destroyed small ad agencies, ad rates for independent sites have diminished to a trickle. Please ask yourself: Have we helped you choose movies that are appropriate for your family? Then make sure we continue publishing by becoming a sustaining member for as little as $1 a month -- that's the price of a small coffee, only once a month. It's up to you.
    1. If a site tries to charge me for work others do for free I block them. They're not paying these people to review, there's no standard of quality for these reviews. It's not something that should be charged for. Or maybe I just overdo things, I even refuse to use the self-checkouts at stores because there's someone they can pay for that and unless I get a discount for my work I'm not doing it. People keep allowing companies to get away with crap like that and now stores will have 1 employee and 20 self-checkout stations
    2. Self checkouts should be giving us a discount for checking our own selves out. I've learned that you may put items under your cart and accidentally pay yourself by missing an item or two if you're in a pressured rush. Often I forget items in the store because I forget to bag them in a hurry. I figure the score is about even. I'm too lazy to go back and get what I forget by the time I get home. At least we should get a dollar off per $50 spent. It takes me 5 times as long to check myself out.
    1. if an invitee is invited to do business in a store and is injured snooping around in the private storage area, he does not have invitee status in that area. So if the invitee is snooping around in the dark, trips and falls on something, the land occupier is not liable since the snooper exceeded the consent given him/her
    1. If there is no database initialized when the container starts, then a default database will be created. While this is the expected behavior, this means that it will not accept incoming connections until such initialization completes. This may cause issues when using automation tools, such as docker-compose, which start several containers simultaneously. If the application you're trying to connect to MySQL does not handle MySQL downtime or waiting for MySQL to start gracefully, then putting a connect-retry loop before the service starts might be necessary.
    1. the problem with docker builds is the made-up concept of "context". Dockerfiles are not sufficient to define a build, unless they are placed under a strategic directory (aka context), i.e. "/" as an extreme, so you can access any path (note that that's not the right thing to do in a sane project either..., plus it makes docker builds very slow because docker scans the entire context at start).
    1. This is telling the browser that the width of #header should be 100% with a padding of 30px. Since padding is not counted into the width, the actual width ends up to be 100% + 60px. So, in order to make sure this fits into the page, you need to subtract 60px (30px to the left + 30px to the right) from the 100% width and it will fit into the browser. Luckily you are easily able to do this with CSS: #header{ padding: 30px; width: calc(100% - 60px);
    2. Thats because you have both width and padding set to one element. And by default padding is added on top of width. (Making it 100% + 2*30px of width). #header{ padding: 30px; width: 100%; } Either remove padding and add it to an inner element with no width set, or use: box-sizing: border-box; Which makes the width calculation include padding. :)
    1. some kudos for not doing review manipulation to get fake positive reviews, and also kudos for not doing an asset flip. No matter how bad this is, it's their original work, and that's (more or less) a good thing in this age of Russian asset flip garbage.
    1. TREE(3) is surprisingly large.TREE(1) = 1 and TREE(2) = 3, but then TREE(3) is suddenly vastly beyond comprehension.But once you know that TREE(3) is too big to grok, there’s not a lot left to be said about TREE(n) for specific n > 3; surely they’re bigger. In fact, they are probably so much bigger that even TREE(4) will dwarf TREE(3) to a much greater extent than TREE(3) dwarfs our familiar numbers. But that isn’t surprising once you know about TREE(3).In principle, of course, there is no reason you have to stop. You could consider, for example, TREETREE(TREE(3)) (3), where you start by plugging 3 into TREE, then plug that into TREE, and keep going through a total of TREE(TREE(3)) iterations. That would definitely be a (disturbingly, in my opinion) large number. But it’s not particularly interesting, as large numbers go.
  2. Aug 2022
    1. We definitely want to have a way to monitor this "queue" as a follow-up with a Prometheus counter. This counter could be used to create alerts in case the queue grows significantly, for example: the scheduled (every 1 minute) worker cannot keep up with the deletions.
    2. Each commit should meet the following criteria: Have a well-written commit message. Has all tests passing when used on its own (e.g. when using git checkout SHA). Can be reverted on its own without also requiring the revert of commit that came before it. Is small enough that it can be reviewed in isolation in under 30 minutes or so.
  3. www.pingidentity.com www.pingidentity.com
    1. Diversity, Equity & Inclusion Diversity enables the innovation and creativity needed to move the world forward. We are committed to creating an inclusive culture that is welcoming, respectful and provides equal opportunities for all.
    1. 2) The kanji are organized in chapters with wide themes (respectively: world, food, animals, people, body, spirit, power, learn, tools, places, journey). These chapters are in turn divided up into mini-themes dealing with each chapter (for example, different animals and ideas associated with them). This helped me a lot in mentally organizing kanji and their meanings.
    1. Water your lawn deeply about once a week, or when the grass looks slightly wilted, providing about an inch (2.5 cm.) of water each time. Avoid frequent, shallow irrigation which results in weak roots that can’t tolerate summer heat. Don’t water if the lawn doesn’t need it.

      watering

    1. Water deeply but only when the grass shows signs of stress; deep, infrequent irrigation creates strong, drought-tolerant roots. Never water every day; watering too frequently encourages shallow, weak roots and unhealthy grass. For a healthy lawn and sturdy roots, wait as long as possible before waterin

      watering

    1. Indeed, judging from the accounts of the many employees who have now gone on record about this issue, the “debates” that have been happening at Basecamp are precisely the kinds of conversations that happen when you have a diverse workforce. Different issues affect different people differently, and being able to speak freely about those differences is the hallmark of a healthy culture. But by framing these discussions as “acrimonious debates” rather than “challenging conversations,” Hansson has positioned himself not as a peacemaker, but as a tyrant hell-bent on taking his toys and going home; shutting down discussions rather than holding space for growth and discovery.
    2. If Hansson and Fried had been able to tolerate the dissenting opinions of their own employees, they might have been in for a difficult few weeks or months, but the long-term benefit of cultivating an atmosphere of trust would have been invaluable. Instead, they decided to make their tantrum international news. In doing so, they have all but dismantled the positive reputation they spent more than a decade carefully crafting.
    1. You are not currently logged in. This can be for a number of reasons: The system is temporarily unavailable You haven't logged into the system yet The Username or Password provided is not valid You may not have the required access level You didn't do anything for 30 minutes

      unusual to explain why "You are not currently logged in" -- esp. when you first land on a page and of course haven't even signed in yet.

      Would be more common to explain how you got signed out (assuming you were at one time signed in).

    1. Sure, you can try to solve that problem by using a one-word alternative for any multi-word phrase, but that's not always possible. Instead of relying on luck, being at the mercy of copy writers, and artificially limited to only allowing one-word items, IMHO you would be better off finding a general design solution that works even for multi-word phrases. Adjusting the letter-spacing and margin between items in your list isn't that hard
    1. Don’t make claims unless you can cite documentation, formalized guidelines, and coding examples to back those claims up. People need to know why they are being asked to make a change, and another developer’s personal preference isn’t a good enough argument.
    1. It would completely change how I view mint.com. It would become a powerful mechanism for opening up my own access to my own financial data which is currently being locked away by my banks, credit card companies and other providers. All I get is a crappy UI from those places. Mint's UI is much better, but an API would completely change the game.
    1. I also wanted to include the link format in case others had trouble locating the exact settings screen; hopefully this link format works for others.1) https://admin.google.com/ [YOUR DOMAIN HERE] /AdminHome?fral=1#MobileSettings:section=setup&flyout=setup (replace [YOUR DOMAIN HERE] with your own, no spaces)

      providing the link, nice!

    2.         4a. There will be a blue link there that says 'Set up Google Management   -Click ItStep 5. (your header will now say Mobile Management) Scroll down until you see the word 'Custom' it should have a blue dot next to itStep 6. You should see the word 'Android' and it should say 'Basic' to the right of it. There's a drop down box/arrow there, click it and select 'Unmanaged' and that will clear up the lock screen issues.

      solution

    3. How do I turn off the requirement to have a lock screen?Today, I'm suddenly unable to use any Google related apps on my phone, because I am now REQUIRED to set up a lock screen on my phone. I get that you want to be super-secure for businesses using enterprise devices. I am not a business. I'm some guy who just happens to have a domain name. My only "employee" is me. I have a two email addresses: My real first name, and the shorter version that most people call me. I do NOT want a lock screen on my phone. I don't want to be forced to give myself permission to use apps on my phone. Why am I now required to add all this bull$%^? Nobody is hacking my interwebs. Give me a f#$%^& break! I don't need a lock screen. I've been using this account for everything (gmail, youtube, etc) for over five years now. I'm not interested in deleting it and going back to my gmail.com account. I'm also not interested in being forced to click multiple times just to use my phone. Let me disable it.So, how do I turn this garbage off?