It is on there. The Champions League ended almost two weeks ago. Premier League and Europa League too. (And the World Cup.)
https://plaintextsports.com/champions-league/
https://plaintextsports.com/premier-league/
HN user
It is on there. The Champions League ended almost two weeks ago. Premier League and Europa League too. (And the World Cup.)
https://plaintextsports.com/champions-league/
https://plaintextsports.com/premier-league/
This reminds of my favorite article by sportswriter Bill Simmons, titled The Consequences of Caring, in which he describes seeing his daughter embrace a sports team and experience crushing disappointment for the first time, and reflects on his own lifetime of fandom.
I've always wanted to do something similar! I've thought about trying to consider the "obviousness" of certain moves, and then only explore those branches with a probability relative to its obviousness.
"Obviousness" would take into account things like the last move played ("ah, your pawn is attacking my bishop; I should move it"), and whether the move is a capture, check, or attacks another piece. A forward move for a knight is more obvious than a backward move, as is moving it towards the center of the board, versus moving it to the edge of board.
As the depth increases, the probability of exploring a branch decreases. I think it would be pretty easy to scale such a system to make it play better or worse by simply adjusting how much the probability of exploring a branch decreases as the depth increases.
Perhaps this could lead to more natural blunders where a line is simply missed?
I've also wanted to come up with an evaluation system that scales better with skill level. A position may be +3, but only if you play the next 5 moves exactly correctly. In another position, one move might be +1, and another might be +0.5, but the +0.5 requires four moves of perfect play from your opponent to keep it even. Can these subtleties be expressed clearly? Maybe something like "turns until positional advantage is converted to a clear material advantage." When you're just starting engine evaluations often don't make any sense.
I've watched a lot of chess on Twitch lately, and it'd also be cool to have scores for all the relatively-subjective terms that the commentators use: "lots of attacking chances" (just pure count of checks possible in next N moves? percentage of lines that lead to checkmate in next N moves?), "very sharp position" (how many moves drastically change the evaluation?), etc.
Location: San Francisco, CA
Remote: No (except due to coronavirus)
Willing to relocate: No
Technologies: Professional experience with Ruby, TypeScript + React, PostgreSQL; passing familiarity with C, C++, Java, Python from college classes
Résumé: https://paul-julius-martinez.netlify.app/resume
LinkedIn: https://www.linkedin.com/in/paul-julius-martinez
Email: pauljuliusmartinez@gmail.com
I would like to work on something involving Rust, compilers/interpreters, or Postgres. I'm very interested in programming languages and, in addition to Rust, would be interested in learning Go, Erlang, Swift, OCaml, or "modern" C/C++.
Since getting laid off due to coronavirus I created a Ruby gem based off an internal library at my last job:
https://github.com/PaulJuliusMartinez/sequel-packer
And I also created a personal website, though I'm still waiting for DNS changes for the non-Netlify domain to propagate:
I really think the negativity in the comments here is overblown, and misdirected.
The author has a totally reasonable set of requirements: React + TypeScript, writing posts in Markdown, small amounts of interactability, and static site generation. It may be an indictment of the JavaScript ecosystem and the current state of the web that nothing exists that can help the user accomplish this out of the box, but that doesn't diminish the validity of the author's requirements. (It's also possible that next.js, Gatsby, or another framework can actually support these with relatively little configuration.) But we should applaud the user for wanting to create a totally statically generated site! (I noted that Gatsby's homepage was not static generated and clearly takes a second before displaying content.)
Given that the author wants to render to static HTML, I interpret React + TypeScript to primarily mean JSX + TypeScript. Is this really any different than saying Liquid + Ruby, or Go templates + Go (used by Jekyll and Hugo respectively)? JSX and React's component based system were literally designed for HTML, and I'd argue it is definitively a better solution than the raw template libraries offered by other languages. You get automatic "syntax"-checking of the HTML by using JSX. By using JavaScript you have proper control flow instead of the awkward in-line conditionals and loops in templating libraries. A Component-based system makes code-reuse significantly easier. And by using TypeScript you can get type-checking for all of this. Unfortunately, using JSX and TypeScript means that you need some sort of build pipeline, and that's where the current state of JavaScript really rears its ugly head and adds a lot of complexity.
Writing posts in Markdown is also totally reasonable, as is wanting to support small amounts of interactability in future posts. A couple of comments mention that you could just add raw HTML to a Markdown file and call React from there, but that doesn't solve the compilation problem. A lot of comments also missed the desire for interactivity. It's for a developer blog! I'd love an interactive inline demo or explanation!
The blog title might have been a little overstated (the ideal tech stack), and the "zero memory of how we used to build forms in the pre-React times" isn't a great look, but I do think the actual content is solid.
I was just wishing for a better SQL formatter! I'm wasting too much time pasting queries into a doc just to reformat them.
It would be great if the parser supported question marks as placeholders. The pg_stat_statements table in Postgres saves denormalized queries, replacing the literal values with '?' placeholders (e.g., `SELECT * FROM table_name WHERE id = ?`).
The new implementation is still wrong, according to the specification.
Array.prototype.sort does not sort an array of numbers as expected. In JavaScript, [2, 10].sort() results in the array [10, 2].
As MDN points out, "The default sort order is according to string Unicode code points... If [compareFn is] omitted, the array is sorted according to each character's Unicode code point value, according to the string conversion of each element." [0] It has an example showing off the unintuitive behavior right at the top of the page.
This behavior is intended per the original ECMAScript specification[1, pg. 68]:
When the SortCompare operator is called with two arguments
x and y, the following steps are taken:
1. If x and y are both undefined, return +0.
2. If x is undefined, return 1.
3. If y is undefined, return −1.
4. If the argument comparefn was not provided in the call
to sort, go to step 7.
5. Call comparefn with arguments x and y.
6. Return Result(5).
7. Call ToString(x).
8. Call ToString(y).
9. If Result(7) < Result(8), return −1.
10. If Result(7) > Result(8), return 1.
11. Return +0.
The key points are items 4, 7 and 8.[0] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...
[1] http://www.ecma-international.org/publications/files/ECMA-ST...
This is unrelated to StatefulSets, but I'm going to take the opportunity to ask a Kubernetes engineer for help, since the the kubernetes-users Slack channel sort of feels like shouting into a void.
We deploy a small cluster (1 master, 6 nodes) at our startup that started misbehaving last week. All of a sudden three of the nodes went down - one became unresponsive and two had the error "container runtime is down." We couldn't ssh into the unresponsive one, but according to AWS the machine was fine, still receiving network requests and using CPU.
Since we couldn't diagnose the issue, we spun up an entirely new cluster using kops, but started seeing the exact same behavior later that night, and again over the weekend. Three nodes were in a not ready state, for the same reasons (unresponsive and container runtime is down). Right now our only solution to solve this issue is to manually terminate the EC2 instances and rely on the Auto-Scaling Group to create new ones. In the mean time, Kubernetes tells us that it can't schedule all of our desired pods, so half of our jobs aren't running, obviously an undesirable situation.
A handful of questions I have about the situation: Why are these nodes going down? What causes a node to go unresponsive? Why does the container runtime go down on a node and why doesn't it get restarted? Why doesn't Kubernetes destroy these nodes when they've been out of commission for 3-4 hours?
Any help would be appreciated!!! I've been looking through half a dozen log files and gotten zero answers.
I think one of the most under-mentioned features of vim is that a line is one of its fundamental units.
Suppose you want to move a few lines of code from one function to another in a regular GUI text editor. If you select these lines with a mouse you need to be careful about exactly where you click to start highlighting and where you end highlighting. Do you start from the beginning of the first line or from the end of the previous line? Do you include the new line at the end? (Can you even?) Then, when you paste, where do you paste? Do you just put the cursor on the line you want to paste before and paste? Or do you put the cursor at the end of the line you want to paste after, hit enter and then paste? Oops, you did it wrong and now this the first line isn't indented at all, or now you have two lines of code on one line.
After a while you figure out where you need start and end the selection, and where you need to paste, but it's still easy to mess up.
This isn't an issue in vim. Using Visual Line mode selecting and pasting is super simple. 'V' to enter visual line mode, 'j' and 'k' to highlight everything you want (and 'o' to switch which end of block you're moving!), 'y' to yank (copy) or 'd' to delete. Then put the cursor _anywhere on the line_ that you want to paste after and hit 'p'.
The ease of use is one thing, but I also think it makes more sense to have an entire line be a fundamental unit. When you're editing code, you're usually moving codes around or editing single lines. I rarely copy and paste just one part of a line to another, and I think in most cases it's easier to just paste the line and change the parts I don't want.
I'm going to describe a small issue I've been having with Git that I've tried Googling for in the past but have never found a solution.
I use a custom `git log` alias that prints out a nicely colored commit graph.
[alias]
lg = log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all -n 15
The issue is that this includes everyone else's branches that have been pushed to origin. I only want to see the history for local branches. (I guess I'd also want to be able to see origin/master, but I recognize that there's nothing distinguishing that from the other branches on origin I don't want to see.)I think the issue is that I run `git pull --prune` to get rid of any remote branches that have been deleted. I usually do this after I pull master, so I think I should just be running `git pull origin master --prune` as a single command.
Is there any way to attempt these problems and verify our solutions? Do they release the test input/outputs?
Being able to open up multiple files and arrange them precisely how I want (with the keyboard!) is my absolute favorite part of vim. I use the following shortcuts for opening a file to the right/left or above/below:
nnoremap <Leader>or :set splitright<CR>:vs
nnoremap <Leader>ol :set nosplitright<CR>:vs
nnoremap <Leader>oa :set nosplitbelow<CR>:sp
nnoremap <Leader>ob :set splitbelow<CR>:sp
" Don't let vim change the setup when closing windows
set noequalalways
So I can simply type ',or ' and then the name of a file to get a vertical split.You can then use <C-w>w<number>+/- to increase/decrease the height of a window and <C-w>w<number>'<'/'>' to change the width.
Some code you can write in the console to click the button at a certain time:
sec10s = document.getElementById("thebutton-s-10s");
sec1s = document.getElementById("thebutton-s-1s");
sec10ms = document.getElementById("thebutton-s-10ms");
sec100ms = document.getElementById("thebutton-s-100ms");
button = document.getElementById("thebutton");
time = function() {
return sec10s.innerHTML +
sec1s.innerHTML; // +
//sec10ms.innerHTML +
//sec100ms.innerHTML;
};
pressAt = function(timeStr) {
return function() {
if (time() == timeStr) {
button.click();
}
};
};
setInterval(pressAt("00"), 100);
But even with setInterval set to 1, this won't get called every millisecond, so you can't get accuracy to the second decimal point, not that there's really any need to. (It turns out setInterval has a minimum delay. setTimeout's minimum delay is 4ms and likely setInterval's minimum delay is the same.) Just set this up and leave your computer running for the next few months and you ought to get it eventually.I find your choice of analogy a little amusing. In these circles, I think more people would have significant exposure to dense mathematical notation than significant familiarity to a particular golf course.
Obviously this is a useful tool, and all the power to the author for finding what looks to be an excellent solution, but this line bothers me:
>> Sometimes I wasted hours and hours just because there is one character difference. I hate it.
This shouldn't happen. Ever. This should not be a problem anymore. These are the sort of errors that we can catch immediately and should be caught immediately. From looking at the author's GitHub profile, it looks like he uses Emacs, presumably without a plugin that would give him IDE like features. I'm not going to tell him to go use a regular IDE, but it frustrates me that's we can't have those sort of tools available everywhere. (As a vim user myself I have high hopes for the neovim project and look forward to the day when it can be embedded inside a general sort of IDE.)
As the music started to play I reached to pause the music I already had playing, but then I realized that it was paused automatically by Spotify. That's a pretty cool feature that they have - very well integrated.
No, they were already made. I meant to ask what he used to make them, but I never had the chance.
I was in this lecture on Tuesday!
I did not take notes, but another student takes very extensive notes for the class and posts them online. All his notes for the class can be viewed here (scroll all the way to the bottom):
The drum major of Stanford's Band is pretty exceptional:
http://www.sfgate.com/collegesports/article/Stanford-band-s-...
I auditioned for the job this year in a King Tut costume but didn't get it. I can't say that I know exactly what the drum major does either, but I think spiritual leader is a good way to put it.
While it may be hard to describe the exact purpose of the drum major, some definitely stand out. This year was the 50th anniversary of the Band and many old drum majors came back to play with us. At one point each of them got to conduct a song, and some of them were just incredible.
Patients with CF at Fairview got the same things that patients everywhere did—some nebulized treatments to loosen secretions and unclog passageways (a kind of mist tent in a mouth pipe), antibiotics, and a good thumping on their chests every day. Yet, somehow, everything he did was different.
I found this quote especially interesting. I've often found this to be true, that you look over at someone who's much better, and on one hand they're just doing the same things you're doing, but somehow they're just on a different level. It's very difficult to distinguish exactly how someone achieves better results, that is, until it's been explained. Here, we see this clearly in how the level of lung function is perceived. Both centers provide the same treatment, but at the Cincinnati center lung levels around 70% are "okay", but at Minnesota, any drop is unacceptable, even if the patient is already at above-normal levels.
It sort of reminds me of the "Don't deal with it, fix it" article that was also posted recently. You'll be coasting around at a certain stable level of engagement until one day you see something you've never considered before and all of a sudden you see a whole new world of possibilities.
I had Alex Aiken as my professor for the class I took on compilers last Spring. I really enjoyed his teaching and I remember him discussing this project during the last lecture. Very cool stuff. The class is still probably my favorite class I've taken.
I don't think you're giving enough credit to Flappy Bird. It's clearly a skill based game, but it's not something you can pick up right away and be good at. It takes at least 30 minutes to an hour to get decent. I remember when I was first playing and I finally broke through and had runs of 30, 40 then 70, all in a row. I felt pretty accomplished.
Now I still play sometimes, almost as a way of relaxing. Once you get the hang of it, it's easy, but you still have to pay attention and you can still get tripped up. I'd say it's a very rewarding game.
Just yesterday I finally beat my friend's score of 171 with 203.
Definitely agree on getting rid of the countdown feature. It's definitely bad as a first user experience; almost certain the first picture anyone takes will be bad and they may not see the "Slide down to retake" text.
Also, I like to be able to send text with the picture too, just to give a bit of context. I really imagine using this as a reverse Snapchat that let's me get pictures instead of sending them. Being able to give context to the picture is great. On a related note. I like being able to see comments on a picture when scrolling through the feed. Making the comment viewing section a separate screen in the app makes it less useful.
Also as a comparison to Snapchat. How long do the pictures stay around. Forever?
And when you're showing the 5 dominant colors from the top 5 apps, you're just going to end up with the dominant color from each app. The best example of this is in Education, where the lime green of DuoLingo appears as one of the top 5 colors despite it being the only app with that color. If anything, if I were just looking at Luminosity, DuoLingo and Quizlet together I'd conclude that there isn't a dominant color for Education apps.
I managed to get 2048 on my first try. Different enough from Threes to stay interesting, but a lot of the same strategy applies. In Threes though, the number that appears has a higher chance of being a bigger number (24, 48, even higher later) the longer the game goes on. There were a few times I was almost stuck and was able to get out of it by continually moving in the same direction and sucking up 2s.