Lobste 最新提交 · 关于 收起 · Buzzing 首页 · 编辑精选 · HN 热门 · HN最新 · HN首页 · Show HN · HN问答 + 更多 - 收起
国外新闻头条 · 中国 · 股市热门 · 下饭视频 · Reddit热门 · 精神食粮 · Reddit提问 · PH热门 · 业余项目 · Linux · Dev热门 · 纽约时报 · 纽约客 · 华尔街日报 · 经济学人 · 加密货币 · Quora热门 · 提议更多喜欢的站点?

用中文浏览 Lobste 最新提交

该页面支持的版本: 该页面支持的语言: 订阅地址: 社交媒体: 数据来源: 最后更新于: 2022-09-25T17:39:47.827Z
背后的人❤️: Owen (Twitter)

1. 将TDD应用于访问文件的类中

Applying TDD to Classes Accessing Files (embeddeduse.com)

2. 实用系统意识

Practical Systems Awareness (medium.com)

3. 关于大型机操作系统和遗留技术的奇怪乐趣,这些技术一直延续到现代

On the strange joys of mainframe OSes and legacy tech that has survived into modern times (liam-on-linux.dreamwidth.org)

4. MIPS的ThinkPad,有点像

The MIPS ThinkPad, kind of (oldvcr.blogspot.com)

5. 2022年Xen峰会:回顾

Xen Summit 2022: a recap (xcp-ng.org)

6. IBM AIX for IA64 (Itanium) aka Project Monterey 再次运行

IBM AIX for IA64 (Itanium) aka Project Monterey runs again (virtuallyfun.com)

7. basedrop: 一套用于实时音频的内存管理工具

basedrop: a set of memory-management tools for real-time audio (github.com)

8. 宅男们检查外面天气的方式

The Geeks way of checking what the outside wheather is like (blog.netbsd.org)

9. 六大法则

The rule of six (davidamos.dev)

10. 将你的问题领域美化

Glamorize your problem domain (twitchard.github.io)

11. WHOIS:脆弱的、不可比拟的、过时的......以及普遍的依赖性

WHOIS: Fragile, unparseable, obsolete... and universally relied upon (www.netmeister.org)

12. 编译器优化很难,因为他们忘记了

Compiler Optimizations Are Hard Because They Forget (faultlore.com)

13. Connectix RAM Doubler - 再也不会有RAM用完的情况了

Connectix RAM Doubler - Never run out of RAM Again (computeradsfromthepast.substack.com)

14. 傻瓜! 不要再把系统动力学神秘化了

Fools! Stop Mysticizing System Dynamics (twitchard.github.io)

15. 处理命令行错误的AI助手

An AI assistant for command line errors (austinhenley.com)

16. 无痛容器

Pain Free Containers (pfc.tools)

17. 加入Zoomer,我们正在拯救React

Get in Zoomer, We're Saving React (acko.net)

18. 在FOSS-LAN上

onFOSS-LAN (onfoss.libregaming.org)

19. 测试你的Go HTTP服务器的2种方法

2 ways to test your Go HTTP server (youtu.be)

20. 用Python和Apache Kafka构建一个反应式数据流应用程序|Coding In Motion

Build a Reactive Data Streaming App with Python and Apache Kafka | Coding In Motion (youtu.be)

21. SM-17(Anki使用的SM-2的母体)间隔重复算法

SM-17 (parent of SM-2 used by Anki) spaced repetition algorithm (supermemo.guru)

22. 那么,POP和IMAP是什么时候成为 "传统协议 "的?

So when did POP and IMAP become a “legacy protocol?” (boston.conman.org)

23. 宣布TypeScript 4.9测试版

Announcing TypeScript 4.9 Beta (devblogs.microsoft.com)

24. 用于开发的Guix

Guix for development (dthompson.us)

25. 在花键前铸造珍珠

Casting Perls before Splines (blogs.perl.org)

26. 我的混合Docker和Ruby开发环境

My Hybrid Docker & Ruby Development Environment (deanpcmad.com)

27. 用std::ssize()减少有符号和无符号的不匹配。

Reducing Signed and Unsigned Mismatches with std::ssize() (www.cppstories.com)

28. 辛格尔顿

The Singleton (www.modernescpp.com)

29. ARM的历史,第一部分:构建第一个芯片

A history of ARM, part 1: Building the first chip (arstechnica.com)

30. 用这个简单的窍门进一步提高你的SVM的速度

Speed Up Your SVM Some More with This Simple Trick (medium.com)

31. 使用JavaScript编写可组合的SQL

Writing composable SQL using JavaScript (contra.com)

32. PostgreSQL + TimescaleDB:查询速度提高1000倍,数据压缩90%,以及更多的功能

PostgreSQL + TimescaleDB: 1000x Faster Queries, 90% Data Compression, and Much More (www.timescale.com)

33. 纯粹的Perl可类型子程序签名

Pure Perl typable subroutine signatures (dev.to)

34. TwitterToNitter。一个使未登录的Twitter阅读更容易的小书签

TwitterToNitter. A bookmarklet that makes reading on Twitter easier when not logged in (github.com)

35. 定制Python导入系统 [2008]

Customizing the Python Import System [2008] (blog.dowski.com)

36. LeanQt - 一个精简的Qt版本,易于从源代码构建并与应用程序集成。

LeanQt - a stripped-down Qt version easy to build from source and to integrate with an applicati (github.com)

37. 测试崩溃了 - 试图连接到非本地地址!some-nonexistent-domain-27489274c8927.com

Test crashed - Attempting to connect to non-local address! some-nonexistent-domain-27489274c8927.com (bugzilla.mozilla.org)

38. 异步析构器、异步通用性和完成度期货

Async destructors, async genericity and completion futures (sabrinajewson.org)

39. 不写单元测试的专家借口

Expert Excuses for Not Writing Unit Tests (boyter.org)

40. 这条推文中的图片显示了它自己的MD5哈希值

The image in this tweet displays its own MD5 hash (twitter.com)

41. 这个周末你在做什么?

What are you doing this weekend? (lobste.rs)

42. MathB.in转为10周年

MathB.in Turns 10 (susam.net)

43. 安全并行的唯一性和引用不变性(2012)

Uniqueness and Reference Immutability for Safe Parallelism (2012) (www.cs.drexel.edu)

44. 扩展org-mode以处理youtube链接

Extending org-mode to handle youtube links (bitspook.in)

45. 每个月的第一个星期一安排Cronjob,时髦的方式

Schedule Cronjob for the First Monday of Every Month, the Funky Way (blog.healthchecks.io)

46. rocketry。Python的现代调度库

rocketry: Modern scheduling library for Python (github.com)

47. 跳过使用FoundationDB建立数据库的无聊部分

Skipping the boring parts of building a database using FoundationDB (blog.tigrisdata.com)

48. 程序分析(一道开胃菜)

Program Analysis (an Appetizer) (arxiv.org)

49. 网络现在很好

The Web is Good Now (www.youtube.com)

50. langcc:新一代的编译器编译器

langcc: A Next-Generation Compiler Compiler (github.com)

51. 2024年是无处不在的一年吗?

Rust 2024 the year of everywhere? (smallcultfollowing.com)

52. PCMCIA Pico W卡

PCMCIA Pico W Card (www.yyzkevin.com)

53. 钥匙

Passkeys (www.imperialviolet.org)

54. Type-Level TypeScript

Type-Level TypeScript (type-level-typescript.com)

55. 渐进式图像僵化和贪婪的蓝噪声重要性采样

Progressive image stippling and greedy blue noise importance sampling (bartwronski.com)

56. 让我们一起玩操作系统2200

Let's Play OS 2200 (arcanesciences.com)

57. 使用vmd(8)在OpenBSD下运行一个Docker主机

Running a Docker Host under OpenBSD using vmd(8) (www.tumfatig.net)

58. 未来是无缝和协作的。

The future is seamless and collaborative (tably.com)

59. 基于波动率的分解

Volatility-Based Decomposition (www.informit.com)

60. 我们驯服云端杂乱之龙的冒险

Our adventure taming the cloud clutter dragon (encore.dev)

61. 从你的终端流传国际象棋比赛

Streaming chess matches from your terminal (github.com)

62. 与Postgres函数的乐趣

Fun With Postgres Functions (www.crunchydata.com)

63. 宣布Rust 1.64.0

Announcing Rust 1.64.0 (blog.rust-lang.org)

64. CodeGeeX: 多语言代码生成模型

CodeGeeX: A Multilingual Code Generative Model (keg.cs.tsinghua.edu.cn)

65. Whisper:一个通用的语音识别模型

Whisper: a general-purpose speech recognition model (openai.com)

66. Apache SharingSphere:将任何数据库转化为分布式数据库

Apache SharingSphere: transform any database into a distributed database (shardingsphere.apache.org)

67. WSL中现在可以支持Systemd了

Systemd support is now available in WSL (devblogs.microsoft.com)

68. 在Typescript类型系统中运行的冒险游戏

Adventure game that runs in the Typescript type system (github.com)

69. zig的(内存)安全性如何? (更新)

How (memory) safe is zig? (UPDATED) (www.scattered-thoughts.net)

70. Kubernetes是一个特定领域的数据库

Kubernetes is a domain specific database (garrit.xyz)

71. 我所说的 "鲁斯特的灵魂 "是什么意思

What I meant by the "soul of Rust" (smallcultfollowing.com)

72. 人工智能现在正处于中智的程序员阶段

AI is now in its midwit programmer phase (www.jonstokes.com)

73. 端点和计算

End-points and Computations (theprogrammersparadox.blogspot.com)

74. 作为汉堡菜单的一个细节元素无法访问

A details element as a burger menu is not accessible (cloudfour.com)

75. 用GNU Guix黑掉任何东西

Hacking anything with GNU Guix (gexp.no)

76. 私家侦探。论视频会议中通过眼镜反射的文本屏幕偷窥的局限性

Private Eye: On the Limits of Textual Screen Peeking via Eyeglass Reflections in Video Conferencing (ai.papers.bar)

77. 使用二进制忍者分析BSD内核的未初始化内存泄露情况

Analyzing BSD Kernels for Uninitialized Memory Disclosures using Binary Ninja (www.zerodayinitiative.com)

78. 不算是箴言

Not quite aphorisms (www.datagubbe.se)

79. 一个带有io_uring的网络服务器

A Web Server with io_uring (unixism.net)

80. 解释csurf漏洞。对所有版本的CSRF攻击

Explaining the csurf vulnerability: CSRF attacks on all versions (snyk.io)

81. 提供真正的HTML内容会使网站更快?让我们来试验一下

Will Serving Real HTML Content Make A Website Faster? Let's Experiment (blog.webpagetest.org)

82. 复杂工作的11条软件估算法则

11 Laws of Software Estimation for Complex Work (mdalmijn.com)

83. rc(8)综合指南 - FreeBSD服务和自动化

Comprehensive Guide to rc(8) - FreeBSD Services and Automation (klarasystems.com)

84. C++的初始化、数组和lambdas哦,我的。

C++ initialization, arrays and lambdas oh my (shafik.github.io)

85. 用程序验证技术解开狗兔之谜

Solving the Dog-Bunny Puzzle with Program Verification Technology (www.pathsensitive.com)

86. 盖蒂图片社将停止接受使用AI生成模型创作的艺术品

Getty Images will cease to accept art created using AI generative models (app.engage.gettyimages.com)

87. 页面故障的奇怪机器。无指令计算的教训 (2013)

The Page-Fault Weird Machine: Lessons in Instruction-less Computation (2013) (www.cs.dartmouth.edu)

88. 我的四步框架:值得合并的贡献--以Rails PR为例

My four-step framework for merge-worthy contributions - with a Rails PR example (www.youtube.com)

89. Thelio 2022重新设计回顾

Thelio 2022 Redesign Review (dominickm.com)

90. 使用Terraform和Nix进行端到端声明式部署的综合指南

A Comprehensive Guide to End-to-End-Declarative Deployment with Terraform and Nix (jonascarpay.com)

91. 介绍框架笔记本电脑的Chromebook版

Introducing the Framework Laptop Chromebook Edition (frame.work)

92. 引入LiteFS

Introducing LiteFS (fly.io)

93. 从Isabelle/HOL中提取一个验证的解释器

Extracting a Verified Interpreter from Isabelle/HOL (concerningquality.com)

94. 开放源代码中的权利

Entitlement in Open Source (mikemcquaid.com)

95. CPU的时钟速度变化有多快?

How Quickly do CPUs Change Clock Speeds? (chipsandcheese.com)

96. Manifold:一个Java编译器插件

Manifold: a Java compiler plugin (manifold.systems)

97. 追踪 "队列 "所获得的一些经验

A few lessons learned from tracking The Queue (postbureaucrat.com)

98. Betterbird: 一个微调的Mozilla Thunderbird版本

Betterbird: a fine-tuned version of Mozilla Thunderbird (betterbird.eu)

99. 客户端优化。腾讯如何维护每天超过1000亿条信息的Apache Pulsar集群

Client Optimization: How Tencent Maintains Apache Pulsar Clusters with over 100 Billion Messages Daily (streamnative.io)

100. Chrome 106中不再有EV证书的开销

No More EV Certificate Overhead in Chrome 106 (blog.webpagetest.org)

101. Webstrates的简要概述

A Brief Overview of Webstrates (webstrates.net)

102. LLVM 15中的RISC-V的新内容

What's new for RISC-V in LLVM 15 (muxup.com)

103. 反应 我爱你,但你让我失望了

React I Love You, But You're Bringing Me Down (marmelab.com)

104. Val编程语言

The Val Programming Language (www.val-lang.dev)

105. 使用Nix的可重复的Jupyter笔记本

Reproducible Jupyter Notebook with Nix (paperless.blog)

106. Wasmtime达到1.0。快速、安全和生产就绪

Wasmtime Reaches 1.0: Fast, Safe and Production Ready (bytecodealliance.org)

107. JITX推出并募集A轮融资

JITX Launches and raises Series A (www.jitx.com)

108. Wallaroo和SwiftUI (1 of 5)

Wallaroo and SwiftUI (1 of 5) (blog.iconfactory.com)

109. 在GTK字体选择器内部

Inside the GTK font chooser (blog.gtk.org)

110. jqp。用来实验jq的TUI乐园

jqp: A TUI playground to experiment with jq (github.com)

111. 论从数据中学习推理的悖论

On the Paradox of Learning to Reason from Data (starai.cs.ucla.edu)

112. 通过远程SSH连接处理WebAuthn

Handling WebAuthn over remote SSH connections (mjg59.dreamwidth.org)

113. OpenJDK Java 19发布,包含RISC-V Linux端口和外国函数API

OpenJDK Java 19 Released With RISC-V Linux Port, Foreign Function API (www.phoronix.com)

114. Cosmopolitan v2.1

Cosmopolitan v2.1 (github.com)

115. 我可以使用系统调用吗?

Can I Use a System Call? (justine.lol)

116. 用《稳定扩散》的故事来学习时间序列

Learn time series with a story illustrated by Stable Diffusion (tigyog.app)

117. NetBSD博客: EuroBSDCon 2022

NetBSD Blog: EuroBSDCon 2022 (blog.netbsd.org)

118. 缓存你的CORS

Cache your CORS (httptoolkit.tech)

119. 记录不足的Kubernetes安全提示

Under-documented Kubernetes Security Tips (www.macchaffee.com)

120. Lospec Pixel Editor(基于在线画布的像素艺术创作工具)源代码以GPL3形式发布

Lospec Pixel Editor (online canvas based Pixel Art creation tool) source code released as GPL3 (github.com)

121. 使用Java编译器的权衡(AOT/JIT < JIT + Caching < JIT Server)。

Trade-offs of Using Compilers for Java (AOT/JIT < JIT + Caching < JIT Server) (www.infoq.com)

122. 开源的不对称性

The Asymmetry of Open Source (matt.life)

123. 隐私和威胁建模

Privacy and Threat Modeling (blog.jmp.chat)

124. 类型、对象和系统,哦,我的

Types, Objects, and Systems, Oh my (dev.to)

125. 构建一个微小的Mutex

Building a Tiny Mutex (zig.news)

126. GNU Taler

GNU Taler (taler.net)

127. 证明明显的事实

Proving the obvious (lawrencecpaulson.github.io)

128. 不存在 "软件供应链"

There is no “software supply chain” (iliana.fyi)

129. Redframes,一个类似于dplyr的Python数据处理库

Redframes, a Python data manipulation library like dplyr (github.com)

130. 揭开开源贡献的神秘面纱

Busting open source contribution myths (www.youtube.com)

131. 我是如何成为一个拥有果蝇般记忆的高产程序员的?

How I’m a Productive Programmer With a Memory of a Fruit Fly (hynek.me)

132. 1989-2015年编程心理学兴趣小组论文的快速和肮脏回顾

Quick and dirty review of Psychology of Programming Interest Group papers, 1989-2015 (www.scattered-thoughts.net)

133. fgtrace - 一个新的围棋跟踪器

fgtrace – A new Go tracer (github.com)

134. 为人民服务的互联网

Internet for the People (www.versobooks.com)

135. SQLite。过去、现在和未来

SQLite: Past, Present, and Future (muratbuffalo.blogspot.com)

136. Jit-Picking: 差异化的JavaScript引擎的模糊处理

Jit-Picking: Differential Fuzzing of JavaScript Engines (publications.cispa.saarland)

137. 关于Uber违规事件的几点思考

A few thoughts about Uber's breach (cendyne.dev)

138. 我如何管理我的密码

How I manage my passwords (bitspook.in)

139. Tillitis Key是一种新的USB安全钥匙,其灵感来自于测量引导和DICE。

Tillitis Key is a new kind of USB security key inspired by measured boot and DICE (www.tillitis.se)

140. 为什么在家庭服务器上使用docker?

Why use docker for a home server? (blog.viraptor.info)

141. 自带灾难

Bring Your Own Disaster (mjg59.dreamwidth.org)

142. 你这周在做什么?

What are you doing this week? (lobste.rs)

143. 基于内容的变化检测与Make

Content based change detection with Make (andydote.co.uk)

144. nsync:一个导出各种同步原语的C库

nsync: a C library that exports various synchronization primitives (github.com)

145. aneris: 用于开发和验证分布式系统的程序逻辑

aneris: Program logic for developing and verifying distributed systems (github.com)

146. 在没有PalmOS的情况下运行PalmOS

Running PalmOS without PalmOS (pmig96.wordpress.com)

147. 一位X11的支持者尝试了Wayland

An X11 Apologist Tries Wayland (artemis.sh)

148. 使用Hashicorp的Raft库的最小分布式键值数据库

A minimal distributed key-value database with Hashicorp's Raft library (notes.eatonphil.com)

149. 用Athena和Rust可视化S3如何删除10亿个对象

Visualizing how S3 deletes 1 billion objects with Athena and Rust (tomforb.es)

150. 钉子的危险性

The perils of pinning (lwn.net)

151. 用于Erlang虚拟机的类型安全语言Gleam的0.23版已经发布。

v0.23 of Gleam, a type safe language for the Erlang VM, is out (gleam.run)

152. 阿达编程语言

Ada Programming Language (ada-lang.io)

153. 系统F的简单类型推理

Simple Type Inference for System F (semantic-domain.blogspot.com)

154. S6: Deepmind在CPython之上的Python JIT

S6: Deepmind's Python JIT on top of CPython (github.com)

155. 为什么要修复Kubernetes和Systemd?

Why fix Kubernetes and Systemd? (medium.com)

156. GCC的新强化水平。收益和成本

GCC's new fortification level: The gains and costs (developers.redhat.com)

157. 如何在Visual Studio中调试死锁

How to debug deadlocks in Visual Studio (werat.dev)

158. TinyTapeout

TinyTapeout (tinytapeout.com)

159. 找到glibc的条件变量中的 "第二个错误"

Finding the “Second Bug” in glibc’s Condition Variable (probablydance.com)

160. 用Nix创建Rust二进制文件和Docker镜像

Create Rust binaries, and Docker images with Nix (blog.sekun.dev)

161. 无类型的λ计算的探索

Explorations in the untyped lambda calculus (flownet.com)

162. 有前途的io_uring_spawn公布

Promising io_uring_spawn Announced (www.phoronix.com)

163. 你为什么要做建设性的工作呢?

Why are you being constructive? (lawrencecpaulson.github.io)

164. 你不能用更多的AI来解决AI安全问题

You can’t solve AI security problems with more AI (simonwillison.net)

165. 一个虚拟的FIDO2 USB设备

A Virtual FIDO2 USB Device (github.com)

166. GCC翻译验证

GCC Translation Validation (kristerw.github.io)

167. 远程证明要回来了。它将需要多少自由?

Remote attestation is coming back. How much freedom will it take? (gabrielsieben.tech)

168. $ rm Important.txt (uh oh!)

$ rm Important.txt (uh oh!) (xenodium.com)

169. LambdaLisp - 在Lambda Calculus上运行的Lisp解释器

LambdaLisp - A Lisp Interpreter That Runs on Lambda Calculus (woodrush.github.io)

170. CHARL-E将稳定扩散打包成一个简单的应用程序

CHARL-E packages Stable Diffusion into a simple app (www.charl-e.com)

171. cppfront。Herb Sutter的个人实验性C++语法2->语法1编译器

cppfront: A personal experimental C++ Syntax 2 -> Syntax 1 compiler by Herb Sutter (github.com)

172. 关于中断中断文化(2015年)

On Interrupting Interrupt Culture (2015) (web.archive.org)

173. Cloudflare放弃了Nginx,改用内部的Rust编写的Pingora - Phoronix

Cloudflare Ditches Nginx For In-House, Rust-Written Pingora - Phoronix (www.phoronix.com)

174. 我不关心Avast收购的cookies

I don't care about cookies acquired by Avast (www.i-dont-care-about-cookies.eu)

175. 无人机运行Linux:自由软件是不够的

drones run linux: free software isn't enough (j3s.sh)

176. 宅男的摄影

Photography for geeks (lcamtuf.coredump.cx)

177. gVisor的运行时监控和威胁检测

Runtime monitoring and threat detection in gVisor (gvisor.dev)

178. 推送通知双因素认证被认为是有害的

Push notification two-factor auth considered harmful (xeiaso.net)

179. 乐高能打鼓吗?

Can Lego Play the Drums? (www.youtube.com)

180. MSVC和Visual Studio中C++编译器诊断的未来

The Future of C++ Compiler Diagnostics in MSVC and Visual Studio (devblogs.microsoft.com)

181. Retrobot。一个通过聊天与朋友玩模拟游戏的Discord机器人

Retrobot: A Discord bot that plays emulated games with friends over chat (github.com)

182. TypeScript Typelevel Tic-Tac-Toe。矫枉过正版

TypeScript Typelevel Tic-Tac-Toe: Overkill edition (note89.github.io)

183. 令人振奋的人工智能提示性注射的新世界

The exciting new world of AI Prompt Injection (cohost.org)

184. 渲染图和如何实现一个渲染图

Rendergraphs and how to implement one (poniesandlight.co.uk)

185. 推特恶作剧者用新发现的 "提示注入 "黑客破坏了GPT-3机器人的运行

Twitter pranksters derail GPT-3 bot with newly discovered “prompt injection” hack (arstechnica.com)

186. 拉斯特的十大挑战

Ten challenges for Rust (www.ncameron.org)

187. 确保 "无 "的供应链

Securing the Supply Chain of Nothing (swagitda.com)

188. Homelab 10 "迷你架货架

Homelab 10" mini-rack shelves (loganmarchione.com)

189. 开发安全应用程序

Developing Safety Application (www.qt.io)

190. LLVM的安全通行证。简要介绍(第1/4部分)

LLVM Passes for Security: A Brief Introduction (Part 1/4) (elmanto.github.io)

191. 用Marmot扩展Pocketbase

Scaling Pocketbase with Marmot (www.youtube.com)

192. 为Java HashMaps建立病态输入--哈希碰撞发生器

Building pathological input for Java HashMaps - hash collisions generator (www.andreinc.net)

193. 使用Zerolog登录围棋的完整指南

A Complete Guide to Logging in Go with Zerolog (betterstack.com)

194. 抛开雨伞

Leaving the umbrella behind (furlough.merecomplexities.com)

195. 在Facebook扩大Mercurial的规模。来自另一方的洞察力(2017)

Scaling Mercurial at Facebook: Insights from the Other Side (2017) (www.youtube.com)

196. 这个周末你在做什么?

What are you doing this weekend? (lobste.rs)

197. 降临(2) -- 系统呼叫降临日历

Advent(2) -- The System-Call Advent Calendar (osg.tuhh.de)

198. 我是如何恢复注意力和焦点的

How I regained concentration and focus (www.innoq.com)

199. 石墨。重新定义最先进的图形编辑

Graphite: Redefining state-of-the-art graphics editing (graphite.rs)

200. F4PGA:用于开发多个供应商的FPGA的完全开放源码工具链

F4PGA: a fully open source toolchain for the development of FPGAs of multiple vendors (f4pga.org)