For the non-riders, ATGATT means "All The Gear, All The Time". I wince whenever I see some young kid and his girlfriend riding with t-shirt, short pants, and sandals. Human erasers on donor cycles :(
HN user
BareNakedCoder
By day, I'm a corporate IT drone. By night, I get naked and code, code, code!
The Dickey Amendment[0] frightened the CDC from doing just that. Lobbied for by the NRA and added to a spending bill by a Republican congressman. "Although the Dickey Amendment did not explicitly ban it, for about two decades the CDC avoided all research on gun violence for fear it would be financially penalized." The CDC had budgeted $2.6M to study the problem. This was stopped and, in addition (as "punishment" perhaps?), exactly $2.6M was diverted to something else. Willful ignorance. What can you do?
My method is super simple but does require a wee bit of self discipline. I "HALT!". I even have "HALT!" written on a post-it on my monitor. Whenever I notice that my (valuable) attention is wandering, I yell "HALT!" in my head or out loud (depending who is nearby). This makes me snap out of it, to break the pattern. Ideally, I return to what I should be doing but very often I can only do the minimum. The minimum being sitting there doing nothing, thinking of nothing (except the thing I should be doing), until I get bored and want to do something ... but only allowing myself to do what I should be doing otherwise I must continue to sit doing nothing (being halted). It's often too hard to halt AND switch do what I should be doing, so this method breaks it into two steps. Halting alone is much easier to force myself to do since doing nothing is easy. Once in halt-state, the only possible exit is to the proper do-state.
Oh, I just noticed something. HALT!
Made https://securemypw.appspot.com so I could securely share passwords with my wife (for bank, investment, biller accounts) in case something happened to me. URLs are saved in a Google doc we both have access to. Now I use it for most of my passwords.
Agreed! Framework == good doesn't mean any/all frameworks == good. Many of PHP's frameworks seem to have ignored PHP's unique run-time characteristics and adopted Java idioms (with Java, you pay once at compile time; with PHP, you pay with every single request). Ubiquity, near/at the top of the PHP benchmarks, seems to accept PHP's unique run-time characteristics (so performs well) and yet still provides all the benefits of a framework (consistency, etc). Ubiquity should see much more love than Laravel/Symfony/etc but doesn't :(
Agree. Shame it wasn't adopted by more websites. It shutdown just before we launched a new SaaS that used it for auth.
Read "Speaking of India" by Storti. It really helped me understand a lot of the strangeness I also observed working with India-born coworkers and contractors.
Best advice for quantity of sleep: don't stop drinking :)
Lol. I did and it was one of the best things I ever did. But I did it after university. Rode all over north america on it, me and my tent Ƈ:)
Or use a worse DNS resolver. Your ISP may be trying to cash in on DNS names that don't resolve / ain't found by instead sending you to another website that pays the ISP a small fee.
Yes of course the components are usually not the entire page; don't take the terms too literally. I'm still searching for the best name for these modes ("sprinkled" isn't quite right either). Although "full body component" or "big section component" might be a little better, I suggestion not missing the underlying idea or point due to imperfect terms.
Let me take a stab at explaining how AlpineJS is different. First, let me talk about the two "modes" of front-end frameworks, what I'll call: "FPC" and "Sprinkled":
FPC or Full Page Components: the original HTML source (as seen from "view page source", not "inspect") usually contains a tag like `<div id="app"></div>` which simply serves as the place where the FPC-oriented framework inserts its magic. All the magic happens in the JS (possibly generated by compiling from something else like JSX or a component DSL). Note that a FPC is not necessarily a SPA; you could have multiple pages with one FPC each.
Sprinkled: the original HTML source has the framework's tags, attributes, and/or other markup sprinkled throughout it. The framework will search for these sprinklings in the original HTML and do as they direct. Usually the framework only looks within an encapsulating tag so the original HTML might have something like `<div id="app">...more HTML with sprinklies...</div>`.
React and Svelte are FPC frameworks. All the exciting stuff is in the code: JS, JSX, or a JS-like component DSL.
VueJS can be used in multiple modes. It can be used in pure FPC mode. It can be used in hybrid mode: with both components and sprinklies in the original HTML, including sprinklies between a component's start and end tag. And it can (almost) be used in pure sprinkled-mode. I say "almost" because you do need some JS code to define the mount point and the data. (VueJS also has two sub-modes for components: compiled client-side and pre-compiled during the build. The later requires a more complex build step).
AlpineJS is (mostly) for pure sprinkled-mode. It is easy to write non-trivial function with no JS at all, other than loading AlpineJS itself from a CDN. On page load, AlpineJS will automatically do the needful; no bootstrapping JS is required. When re-use and/or complexity requires it, you can move some or much of the code from HTML to your JS. For even more complex stuff, the new plugin ability in V3 of AlpineJS makes adding your own directives/attributes or magic variables/functions easy. This extra ability in V3 just means although you can do 80% with no or very little JS, you still have room to grow for the other 18-20%.
AlpineJS is great for and focuses on the needs of simpler apps. And most of the apps we develop should ... be ... SIMPLE.
The website being announced in this post, alpinejs.dev, is new for V3 of AlpineJS which was launched just yesterday. I've been using it since V1 and I can say it doesn't just look like but really is a perfect balance for projects too small for Vue or React but to big for VanillaJS. I would also argue that small and simple is better for most websites.
They may not have PAID for food but they did WORK to get that food. With UBI no work required.
The founder of SvelteJS works at the NYT. SvelteJS works well on underpowered devices.
Yup. The earth's crust is less than 1% of the earths radius. Just below the crust is all the energy we would ever need for a long long time.
At a previous job I was at, we put each release of the sprocs into a different schema. Upgraded app servers called sprocs in schema "r102" while the not-yet-upgraded app servers continued to call sprocs in schema "r101" until they were eventually upgraded.
IMHO, the biggest RTFM-Fail ever is related to ASCII. Think of all the errors made and time lost fixing issues with CSV (comma separated value) or TSV (tab separated files) or pipe-delimited fields in records, etc, etc due to having to handle the case where the delimiter character is not a delimiter character but valid data with a field.
ASCII provided characters specifically for this purpose. But no one seems to have RTFMed. ASCII 31 is a "unit separator" (or field separator as we'd call it today) and ASCII 30 is a record separator. There's even ASCII 29, a group separator, so you can have a set of records related as a group (for example, a group of records of different type but related to a single customer). And there's ASCII 28, a file separator, so you can have multiple "logical" files within one physical file.
FYI, the IBM S/360 did support ASCII[0]. A bit in the program status word indicated if the machine was running in ASCII or EBCDIC mode. Most customers ran EBCDIC because it was more compatible with their masses of punch card originated data (no translation required). For the S/370, for virtual memory, a bit in the program status word was needed to indicate addresses were real or virtual. IBM surveyed its customers and found almost no one was using ASCII so its bit was taken for virtual memory.
[0] Page 70 of http://bitsavers.org/pdf/ibm/360/princOps/A22-6821-0_360Prin...
Apologies. Launched just 2 days ago as a static site on Netlify. Will add a JAMstack-based form once our api backend server is up and running. Google Forms was a quick and dirty solution that let us deploy something now. Fossil on HN is rare so I prematurely jumped at the chance of a mention.
Coming soon https://www.fossilarium.com which will have friendlier docs.
Switch to the Blaze builtin skin/theme for a page with reasonable max-width.
Create a spreadsheet! I did this 25+ years ago to get my own customized answer to this question. One row per quarter (4 rows per year). Each row takes previous row's balance, adds % ROI, adds contributed savings to get the next row's balance forecast. Not a complicated spreadsheet. As each quarter passes, replace the forecasted/calculated balance with your actual savings balance.
Don't hard-code the % ROI and quarterly contribution in each row; put them in cells at the top. You can then play with % ROI and quarterly contribution values to see how much you'll have when. Take each rows balance and divide by (85-age) to get a conservative estimate of annual income if retired (conservatively assumes future ROI == inflation).
Fyi, I'm a 59 yo who knew ageism in hiring was coming and is so happy that my otherwise foolish self came up with a basic plan 25+ years ago to know if he was on track or not (and managed to stay well ahead of it). Helped with spending decisions too: if I was ahead, I'd buy that motorcycle; if not I didn't.
Many ways to do it, but another subdomain was easiest. The two websites are on different hosts.
There is still a lot of info on the old website. When we decided to go with an "emergency" rewrite of our website, instead of trying to cleanse Drupal, we rewrote only the core functions needed to run tournaments. To keep users from complaining, I kept old.chess.ca available. Now, they'll just have to wait. I do not want to risk anything that might provoke the Google monster into banishing the new website again.
UPDATE: For anyone else running into this problem. Of course, Google never clearly stated this reason, I (and you) have to guess until you get it right. Each guess takes more and more time. My last (and successful) attempt, I had to wait 16 hours for Google to do its review and unblock our site.
Turns out sites are guilty by association. If Google finds malware on "old.chess.ca" it will bock every website ending in "chess.ca". Including "www.chess.ca" even though that website is on different servers (different IP) and contains zero links to the other bad website. Removing the server from DNS, plus disabling with .htaccess rules that redirect all requests, ... plus waiting 16 hours for Google to do another review ... is what got us back up & running.
(oh dear)
Ya got me thinking. Maybe they failed my review because they expected both www.chess.ca and old.chess.ca to be entirely cleaned-up (both being *.chess.ca). I'm so desperate to get unblocked that I have deleted the DNS entry for old.chess.ca (TTL=15m so I hope it is gone before Google re-reviews me). FYI, since eventually you won't be able to go to old.chess.ca either.
In your imgur, you see "LINK" will take you to "chess.ca/en/ws/old-chess-ca/". You've nicely pointed this out with red arrows. "/en/ws/old-chess-ca/" is NOT the old website. It is a page on the new website. It has an explanation of the situation. Previously, this explanation page had the link to the old website (at http://old.chess.ca/), but I removed that (English and French) this morning before requesting a review by Google. Even though these links are now gone, they failed my review.
The link on the explanation page is what I removed
The /en/ws/under-construction link is to http://www.chess.ca/en/ws/old-chess-ca/ which is a page on the new website that explains the dangers before you click a button to actually go to the old site. The link on the explanation page is what I removed.