<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: PennRobotics</title><link>https://news.ycombinator.com/user?id=PennRobotics</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 10 Jun 2026 18:52:29 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=PennRobotics" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by PennRobotics in "Gmail thinks I'm stupid, so I left"]]></title><description><![CDATA[
<p>I wish I could fully agree. Canonical is a bit pushy: "Ubuntu Pro / ESM subscription will make your machine safer! and it is convenient mega free!! ((for non-business uses))"<p>Workplace very strictly requires Ubuntu LTS for toolchain & compatibility reasons, otherwise I'd run Debian or Fedora or Tumbleweed with Ubuntu containers/VMs where needed.<p>Nonetheless, Linux popups and promotions (even from enterprise distros) are not nearly as bad as the Windows 11 experience.</p>
]]></description><pubDate>Wed, 03 Jun 2026 12:17:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=48382988</link><dc:creator>PennRobotics</dc:creator><comments>https://news.ycombinator.com/item?id=48382988</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48382988</guid></item><item><title><![CDATA[New comment by PennRobotics in "Gmail thinks I'm stupid, so I left"]]></title><description><![CDATA[
<p>Fastmail had a UI change a year ago, where they went all "rounded corner" and created unique rows for every message that weren't so easily sorted with Stylus CSS. I emailed them about the changes, and a few weeks later the messages were listed in a way that I could easily apply my own stylesheet again. They also acknowledged on their subreddit the UI change was not incredibly popular (even the CEO was "not enjoying" it) and they took some feedback and provided a few better UX customizations in the options.<p>At one point, Fastmail had an error parsing Unicode in misconfigured iCal files (Google Calendar showed events correctly) but after a short back-and-forth, they fixed it within a week.<p>Now, Google Calendar has had a problem with my organization's iCal files for the past four weeks. Submitting a bug report via the help community is very opaque and unhelpful (a la "Have you tried turning if off and on again?"). Fastmail loads the iCal correctly. I have no clue if Google is aware or when they'll ever fix it.<p>One huge productivity advantage to FM over Gmail? Sort by sender name. (This makes it so easy to bulk apply changes)<p>Setting up own domain has been straightforward. (It's a bit of work ensuring DNS records have DMARC/DKIM/SPF, but it's all in the FM checklist/documentation.) Setting up Python scripts to auto email me using app passwords has been straightforward. Creating aliases and throwaways is straightforward.<p>I have not regretted paying for email; specifically, Fastmail.</p>
]]></description><pubDate>Wed, 03 Jun 2026 11:47:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=48382750</link><dc:creator>PennRobotics</dc:creator><comments>https://news.ycombinator.com/item?id=48382750</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48382750</guid></item><item><title><![CDATA[New comment by PennRobotics in "New Patches Allow Building Linux IPv6-Only, Option to Deprecate "Legacy" IPv4"]]></title><description><![CDATA[
<p>Around the same time, I think the Photoprism image also didn't work on IPv6 because of Traefik</p>
]]></description><pubDate>Wed, 01 Apr 2026 15:42:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=47602405</link><dc:creator>PennRobotics</dc:creator><comments>https://news.ycombinator.com/item?id=47602405</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47602405</guid></item><item><title><![CDATA[New comment by PennRobotics in "Make macOS consistently bad unironically"]]></title><description><![CDATA[
<p>I've never really needed that, or I don't understand the need for there to be a difference. I typically tile windows into each corner based on how large I need them. When I need more than 4, I'll manually place them.<p>What I do notice is the wasted space needed by the entire window border to accommodate rounded corners and how annoying it is to grab a window handle in e.g. Ubuntu w/ GNOME because you're clicking/touching where the corner would be (but isn't, because it's round).</p>
]]></description><pubDate>Mon, 30 Mar 2026 15:32:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=47575613</link><dc:creator>PennRobotics</dc:creator><comments>https://news.ycombinator.com/item?id=47575613</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47575613</guid></item><item><title><![CDATA[New comment by PennRobotics in "Make macOS consistently bad unironically"]]></title><description><![CDATA[
<p>I thought having a MacBook Pro after a few decades of Windows/Linux use would be utopic, but Apple hides a ton of keyboard/mouse shortcuts, so the majority of software is slow to learn and use. Simple stuff like split screen, file handling (particularly compressed files, mounts, and network), or USB device permissions leave a lot to be desired.<p>It gets worse when you need to add Parallels because a particular lab machine only has Windows support. Being Vim-dependent, I got unlucky receiving the butterfly keyboard model with no physical escape key.<p>excellent hardware specs, superb battery life, very opinionated aesthetic (I hate it.), not nearly as intuitive as one would assume</p>
]]></description><pubDate>Mon, 30 Mar 2026 08:21:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=47571803</link><dc:creator>PennRobotics</dc:creator><comments>https://news.ycombinator.com/item?id=47571803</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47571803</guid></item><item><title><![CDATA[New comment by PennRobotics in "Make macOS consistently bad unironically"]]></title><description><![CDATA[
<p>The perfect design is no rounded corners. anywhere. ever.</p>
]]></description><pubDate>Mon, 30 Mar 2026 08:11:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=47571729</link><dc:creator>PennRobotics</dc:creator><comments>https://news.ycombinator.com/item?id=47571729</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47571729</guid></item><item><title><![CDATA[New comment by PennRobotics in "PCB devboard the size of a USB-C plug"]]></title><description><![CDATA[
<p>A founder I know is making reduced-pin Arm-based prototyping modules: <a href="https://www.bergsonne.io/" rel="nofollow">https://www.bergsonne.io/</a><p>They're seriously tiny; basically answering the question, "What if mechatronic prototypes didn't need to be the size of an Altoids tin?"</p>
]]></description><pubDate>Mon, 09 Mar 2026 14:06:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=47309250</link><dc:creator>PennRobotics</dc:creator><comments>https://news.ycombinator.com/item?id=47309250</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47309250</guid></item><item><title><![CDATA[New comment by PennRobotics in "Lenovo’s new ThinkPads score 10/10 for repairability"]]></title><description><![CDATA[
<p>I keep purchasing ThinkPads (Z13, X1 Gen 11, X1 Gen 12, T16) where the USB-C port breaks within a year (respectively: "no dock or external monitor", "no charge and only non-Thunderbolt enumeration" on a single port, "charge only, no USB enumeration at all" on both ports, "fries other devices during reverse PD"), and I'd love to be able to swap out a broken port rather than ship the entire machine to Poland for two weeks and get lectured by the support contact that, "maybe ports only stop working under Linux but we'll still repair the mainboard this time."<p>I am waiting to jump ship to a different manufacturer, but nobody is challenging ThinkPad on keyboard quality/layout and Linux support, the two factors where I'm totally unwilling to compromise. (Tuxedo is close but still not the better alternative.)</p>
]]></description><pubDate>Fri, 06 Mar 2026 09:43:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=47272920</link><dc:creator>PennRobotics</dc:creator><comments>https://news.ycombinator.com/item?id=47272920</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47272920</guid></item><item><title><![CDATA[New comment by PennRobotics in "Lenovo’s new ThinkPads score 10/10 for repairability"]]></title><description><![CDATA[
<p>I think they mean: there is no USB socket on the enclosure containing the AC-DC conversion circuitry, like you'd find on most smartphone charger bricks. The cable (with the USB-C plug on the other end) is attached to the enclosure permanently. Thus, when the plug breaks, you need to throw away the entire power conversion brick. If the converter had a USB socket, not only could you replace the cord when the cord inevitably breaks, you can choose the cord length and whether it has a 90 degree bend and/or magnetic disconnect at the end.<p>We have probably 10 Thinkpads at the house. Three power bricks have been rendered useless (and four USB-C ports) because Lenovo has set their part selection and engineering design to "best value for the company" rather than "best quality for the end user".<p>Also, the PD negotiation of the Lenovo bricks is unusual, where it will not provide significant current at the 5 volt base USB power to some non-laptop devices and also not accept fast charging rates from some non-Lenovo chargers: Our ThinkPads will charge using some high-wattage smartphone chargers but not every one of them. Every once in a while we find a device with a USB-C charging port (e.g. baby monitor display) that will charge with any charger around the house but not with the Lenovo laptop charger.</p>
]]></description><pubDate>Fri, 06 Mar 2026 09:16:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=47272758</link><dc:creator>PennRobotics</dc:creator><comments>https://news.ycombinator.com/item?id=47272758</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47272758</guid></item><item><title><![CDATA[New comment by PennRobotics in "Hacker News.love – 22 projects Hacker News didn't love"]]></title><description><![CDATA[
<p>The entire site (including page margins) being a link to HN is an annoyance<p>edit: also, the autoscroll thing<p>The Tailwind CSS complaints aren't wrong even today; any time I want to apply a Stylus CSS to fix someone's janky site---particularly, weekly offers from area grocery stores, where I fix it once or twice and enjoy a much better UI for a year or two---and then all I see is class="rounded-lg shadow-primary-400 my-4 md:px-4 bg-white py-20 pt-8 dark:border-gray-600" for every single element... it gets me seriously aggravated! It's a hassle to modify and a hassle to parse. I imagine it's only convenient to write/maintain because you use a separate tool and compile it into the garbage it becomes.</p>
]]></description><pubDate>Mon, 23 Feb 2026 10:13:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=47120316</link><dc:creator>PennRobotics</dc:creator><comments>https://news.ycombinator.com/item?id=47120316</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47120316</guid></item><item><title><![CDATA[New comment by PennRobotics in "I tried building my startup entirely on European infrastructure"]]></title><description><![CDATA[
<p>The finished product has an imprint (with commercial name, according to Spanish law). The blog post isn't commercial.</p>
]]></description><pubDate>Fri, 20 Feb 2026 09:56:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=47085885</link><dc:creator>PennRobotics</dc:creator><comments>https://news.ycombinator.com/item?id=47085885</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47085885</guid></item><item><title><![CDATA[New comment by PennRobotics in "U.S. government has lost more than 10k STEM PhDs since Trump took office"]]></title><description><![CDATA[
<p>After the 2016 election, my advisor's entire research lab relocated to Europe except for two candidates who were nearly finished with a PhD and got co-advised.<p>The majority of us who moved became proficient in a foreign language. Some got permanent EU/UK/Swiss residency or even citizenship. This lab continues to attract researchers from the U.S. and then place them mostly into European and Asian universities or businesses. These folks are largely not going back to America short of forceful expulsion via European anti-immigration policy. I know other research group leaders who have done this same thing.<p>Someone I know in the U.S. has a PhD/grants/awards and wants to stay close to family/home (in a mid-sized city of a Republican-leaning state) yet hasn't been able to find a job or academic position in biological engineering after a few years of actively looking. The longer they work outside of their major, the harder it will be to secure an engineering/academic career later.<p>For too many in the U.S. (particularly where I grew up; a farm town) politics is a team sport and the hatred of the other team only intensifies as the government invests in higher education and research. They're willfully blind to the fact that cancer treatments, major agricultural advances (crop resilience, production efficiency, genetic modification), smartphones and fast internet access, trucking, and nearly every aspect of their lives which has vastly improved comes from social spending. Instead, it's stickers on gas pumps and chants at NASCAR races. Leftist voters are not as decisive at the voting booth as Republicans, and there's still right-wing momentum in many states across all levels of government, the judicial system, and the leadership of the largest companies.<p>I firmly disbelieve the U.S. can reverse course even after a decade. In my opinion, it would require immense structural and cultural change: breaking up the two-party system, rejecting money in politics, political/judicial age limits, a major push to disrupt clandestine foreign meddling, shifting the partisan balance of courts in a way that cannot later be weaponized, heavy investment in infrastructure and high-visibility patriotic (ideally non-partisan) programs similar to Eisenhower's, the sort of intense media regulation that would restore local journalism in small towns, paying teachers significantly more plus developing more public trust in the educational system, public research investment, high taxes, strong social programs, a rejection of the propaganda that America is the greatest country in the world; basically a shift toward being more like the countries that actually(*) have a high standard of living.<p>Who has the power to implement these sweeping changes? Would it be a conflict of their personal interests?</p>
]]></description><pubDate>Fri, 30 Jan 2026 10:35:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=46822767</link><dc:creator>PennRobotics</dc:creator><comments>https://news.ycombinator.com/item?id=46822767</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46822767</guid></item><item><title><![CDATA[New comment by PennRobotics in "Computer science courses that don't exist, but should (2015)"]]></title><description><![CDATA[
<p>ls and not mpv or ffmpeg?<p><a href="https://mpv.io/manual/stable/#options" rel="nofollow">https://mpv.io/manual/stable/#options</a><p><a href="https://ffmpeg.org/ffmpeg.html#Options" rel="nofollow">https://ffmpeg.org/ffmpeg.html#Options</a></p>
]]></description><pubDate>Fri, 24 Oct 2025 07:27:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=45691866</link><dc:creator>PennRobotics</dc:creator><comments>https://news.ycombinator.com/item?id=45691866</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45691866</guid></item><item><title><![CDATA[New comment by PennRobotics in "Can we know whether a profiler is accurate?"]]></title><description><![CDATA[
<p>Trace data are sent through a large/fast port (PCIe or 60-pin connector) and captured using fast dedicated hardware at something like 10 GB per second. The trace data are usually compressed and often only need to indicate whether a branch is taken or not taken (TNT packets from x86, Arm has ETM but similar enough trace path) with a little bit of timing, exception/interrupt, and address overhead. The bottleneck is streaming and storing trace data from a hardware debugger (since its internal buffer is usually under half a second at max throughput) although you can further filter by application on Intel processors via CR3 matching. (Regarding the last five years of Apple: I'm not sure you'll find any info on Apple's debuggers and modifications to the Arm architecture. Ever.)<p>If you encounter a slowdown using RTIT or IPT (the old and new names for hardware trace) it's usually a single-digit percentage. (The sources here are Intel's vague documentation claims plus anecdotes; Magic Trace, Hagen Paul Pfeifer, Andi Kleen, Prelude Research.)<p>Decoding happens later and is significantly slower, and this is where the article's focus, JIT compilation, might be problematic using hardware trace (as instruction data might change/disappear, plus mapping machine code output to each Java instruction can be tricky).</p>
]]></description><pubDate>Wed, 15 Oct 2025 12:52:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=45591665</link><dc:creator>PennRobotics</dc:creator><comments>https://news.ycombinator.com/item?id=45591665</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45591665</guid></item><item><title><![CDATA[New comment by PennRobotics in "DWARF as a Shared Reverse Engineering Format"]]></title><description><![CDATA[
<p>I just tried on a microcontroller target.<p>Some instructions cause a ghidra.pcode.exec.PcodeExecutionException but can be manually skipped.<p>I can get to the same stopping points as a commercial simulator, but nothing is displayed in the Stack window in the Ghidra debugger and single stepping ignoring side effects (mostly for cpsie/cpsid/isb/dsb/msr/mrs op codes) takes 10 or 15 seconds for each skipped instruction. Watches on complex variable types (ListItem_t *) are clearly displayed wrong (value { 38 }) and I'd prefer watches to disappear when they're not in scope. I must be doing something wrong because I can step through the machine code but would prefer to step through each C++ line without using line-by-line breakpoints, and I don't know if that exists or how to set it up.<p>Right now, it's easier for me to use a commercial debugger/simulator; it shows the call history, variables are displayed properly once I import their structure, browsing SRAM is fast/intuitive, MCU peripheral registers are displayed/changed on a single screen with a few clicks or keystrokes (even after importing the SVD into Ghidra), op codes don't need to be skipped (so the processor handles the stack, privilege states, and core/system registers correctly).<p>Also, the default debugger windows in Ghidra are bonkers. The entire left side shows meaningless data. The right side has tabs for windows I'd like to see simultaneously (memory and decompilation). I'd also rather have multiple child windows for different memory ranges, since FreeRTOS and application variables are interspersed in the code but separated in RAM. The bottom panel is useless for me except for Stack (which is empty) and Watches. On a laptop, the whole UI is cramped. It's easy to change this, but I'd rather just have a useful workflow as an opinionated default.<p>When I can export what I've manually decompiled to DWARF, I'm more comfortable in a commercial Arm debugger than in gdb or anything that looks/feels like an Eclipse IDE debugger.<p>There's a lot of potential. That is obvious. I do wonder if I'm missing something; if changing the emulator/backend or the right tool setting will unlock nirvana. I also feel like I'm dropping the ball by not opening issues, but I'm sure there are plenty of Ghidra users trying to analyze Arm Cortex who have the same stumbling blocks as me but perhaps more free time.</p>
]]></description><pubDate>Wed, 28 May 2025 09:00:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=44114050</link><dc:creator>PennRobotics</dc:creator><comments>https://news.ycombinator.com/item?id=44114050</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44114050</guid></item><item><title><![CDATA[New comment by PennRobotics in "DWARF as a Shared Reverse Engineering Format"]]></title><description><![CDATA[
<p>I've been chipping away at recreating source for a dumped FreeRTOS binary for about a year using Ghidra and Trace32. (Disclosure: I work on Trace32.)<p>I wanted to implement something like <a href="https://github.com/neuviemeporte/mzretools">https://github.com/neuviemeporte/mzretools</a> (the tool for reversing F15SE, a DOS game) but I would need to port all of that tooling to an Arm cross-compiler and accept it will never produce a 1:1 binary in my case. (There's evidence the original was built with IAR which I will not be buying solely for a hobby project.)<p>Ghidra (especially after using BSim to load all of the NXP demos and some TI library code for adjacent ICs) is extremely useful at getting the entire structure: library functions, data types, tasks, queues, I2C/USB comm, pin setup, data locations, etc. You can re-code the flash part easily, but SRAM/stack is all zeros. The code that fills SRAM uses pointer math and some loops and is generally unreadable on its own. I tried the Ghidra simulator, but it didn't work out of the box on Arm microcontroller code.<p>Trace32 makes it easy to load the raw binary into an Arm simulator and step through all the way to the IDLE task, but there's no high-level listing. You just have to detect if you're in a loop and look at the loop address in Ghidra to see what holds you back. Without a simulation model (which I do not have---at least not outside of work) you have to manually jump past a few spots where the board waits for an acceptable status flag from a clock source, etc., and then manually call SysTick_Handler once, but the SRAM is eventually filled with appropriate data. Once you have a stack, you can start picking out which FreeRTOS macro parameters were set and figuring out the size and type of vendor-created structures which then streamlines further Ghidra analysis. Beyond that, you can't use RTOS awareness without symbols, so unless you write a script to import these from Ghidra, a more insightful view of the binary remains out of reach.<p>The analysis has been a LOT of looking back and forth between the simulator (which shows a hex address and machine code) and the Ghidra decompilation listing; it is a bit like getting Don Quixote verbally read to you, one letter at a time. Anytime there's a I2C_Master_Transmit(), you need to comb through datasheets for DSP settings and the various I2C-linked chip registers. It's a USB product (with multiple endpoints) so I use Wireshark and Python to check the decompiled USB application code and identify valid packet data that are never sent by the vendor software.<p>DWARF can be imported and exported in Trace32, so exporting symbols created in Ghidra as DWARF would vastly simplify my workflow (as would having a real model of the NXP chip and/or dumping the bootloader binary and secrets from a production device).<p>I'll definitely check out this project, as well as ghidra2dwarf linked by nneonneo.</p>
]]></description><pubDate>Wed, 28 May 2025 08:14:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=44113767</link><dc:creator>PennRobotics</dc:creator><comments>https://news.ycombinator.com/item?id=44113767</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44113767</guid></item><item><title><![CDATA[New comment by PennRobotics in "Android 16 UI update thoughts? [video]"]]></title><description><![CDATA[
<p>Ugly. Goofy. Uninspired.<p>Awful color palettes and far too many shades of each hue. If the bluetooth icon is lit but the containing button is unlit, is bluetooth active or not? The icons are some of the worst ever; just a monochrome abstract mess. Of the 12 shown in the quick settings example, I cannot recognize 4 of them. Blurred background in the notification shade is worse than both a solid color or a fully transparent background. The former emphasizes privacy and information clarity; the latter doesn't interrupt whatever you're doing. Blurred means you can't refer to the app screen while looking at a notification but nosey passersby (or clever application of the right deconvolution on a screenshot) can get a general sense of what you were doing.<p>Too much padding. Alignment is often not thoughtful. Many of the shapes are just strange. The use of different border radii on adjacent elements---notably at 1:09, but also nearly everywhere else---is like a lazy eye or snaggletooth. The "Clear all" notifications button is too big (i.e. easy to accidentally touch) but also an uncomfortable aspect ratio. This is significantly worse on the watch.<p>Animations totally unnecessary and often not visually intuitive. (Wtf is that jellyfish circle progress meter at timestamp 1:03?) Not every user wants a "cascading droplet effect" or "springy animation" or "happy moments". It's visually noisy. Shape morphing is sea sickness via OLED. It's the kid who can't stop tapping a pencil on a desk and loudly coughing up phlegm all day.<p>Font is informal and overused. The variable font has more than 10 axes and becomes unreadable at the extremes.<p>I predict there will be two camps: the developers who don't change their apps at all and those that lean too heavily into this ridiculousness. There will be virtually no tasteful Material Expressive apps.<p>The promise is "customizable", but it's not USER customizable. You're at the mercy of each app developer. You can't change those awful notification buttons, overly rounded dialogs, bubble images EVERYWHERE.<p>And it's always so ... busy. I want my most used portable appliance---my vessel of knowledge, communication, and productivity---to just stay still and quiet and do the tasks I request without trying to affect my emotional state and distract me with its unnecessary wiggling and weaving, less identifiable icons, inefficient presentation of info, and irritating nested clickable elements.<p>Complaining about it is pissing into the wind. Google has committed far too much in this newest terrible design evolution to try something wildly different and actually bold (a la Guardians of the Galaxy) or to return to a simple & timeless no-frills appearance, and there are plenty of users who can't get enough of the "Easter-colored cooked pasta taped to a leaf blower nozzle" aesthetic.<p>In other words: I don't like it.</p>
]]></description><pubDate>Wed, 28 May 2025 01:00:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=44111951</link><dc:creator>PennRobotics</dc:creator><comments>https://news.ycombinator.com/item?id=44111951</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44111951</guid></item><item><title><![CDATA[New comment by PennRobotics in "Material 3 Expressive"]]></title><description><![CDATA[
<p>I'll cover just a few taste-based issues:<p>- The abstract doesn't even fit on the first page at a 1500 pixel height. Instead, the generally useless, overly-padded animation takes the majority of the space.<p>- The animation felt like someone trying to fit every feature of their design software into eight seconds. Filleted text? A nine-sided polygon that morphs into a five-sided polygon and then a circle? That hideous purple-orange flare?<p>- I'm shocked the animation and images didn't also have border radii. I wouldn't mind one bit if border radius was fully removed from every single website and smartphone app. (Border radius as a mouse hover animation for 186.667 pixel square images, in the hamburger menu? Wtf)<p>- Hamburger menu is too resource intensive and feels off-center because of two paired columns, where the right side of each pair is an image.<p>- It was certainly a design choice going with:<p><pre><code>    Better, Easier, Emotional
    UX
</code></pre>
I think I would've preferred ANY other permutation of line breaks, except for<p><pre><code>    Better,
    Easier, Emotional UX
</code></pre>
and<p><pre><code>    Better,
    Easier, Emotional
    UX
</code></pre>
- I'm glad the font doesn't show up on Firefox. I hate ligatures in nearly all their usages and don't need a font with a dozen variable axes. (Having such a font face for testing new font designs? By all means. Putting it out there for the world to use? Ugh! WHY??)<p>- Why are designers so repulsed by pure colors e.g. FF0000, 00FF00? (I know the philosophy because it's the previous post of the linked content on their design blog, but I vehemently disagree with the application of "sober" or "nostalgic" or "atmospheric" mood-altering color schemes.)<p>- The color choices are awful. It's inspiration by pastels and flowers. It's no surprise, since Google's offices seem to be furnished by Liberator and the Sherwin Williams branch of Lockheed.<p>- The demos are bogus. It's easy to offer mud and polenta to a test panel and then exclaim that users overwhelmingly prefer polenta. What's with the Plank app? Are people planking for hours? But also, who presents time in...<p><pre><code>    HH
    :MM
    :SS
</code></pre>
...format??<p>-  .  .  too  .  . much .  .  padding  .  .<p>- <i>EXCEPTWHENITSNOT</i><p>- two-column images are misaligned vertically because of the scroll animation<p>- fading in elements. WHY??<p>- elements shift vertically after clicking them<p>- elements do not indicate they are clickable<p>- "Expressive components" on one of the links is so atrocious because of its misuse of color (with further submisuse of hue, contrast, intensity, saturation, and palette), spacing, shape, margins, iconography, font, and words. I also don't know what app is supposed to have menu choices of "Friends, Alarms, Map" but I promise I am not the target audience.<p>- It's telling that multiple contributors of Material 3 Expressive have their profile pictures left-of-center so that the bridges of their noses are at the golden ratio. You don't need to bang every drum on every beat.<p>- Do charts really need "eight-petal flower" as marker type? Also, time to first fixation, for me, is usually "OH WHAT THE UGLY SHIT IS THAT?"<p>- Search menu? Ugly; not very clear why the dozens of buttons are there.<p>- One of the dumbest mouse cursors we've all encountered ("so far", per Homer Simpson) and that includes a generation of Comet Cursor and classic Mac cursors<p>- Each of the Components:<p>-- Button groups, ugliest I've ever seen because of different corner radii, tall rounded buttons, far too much padding, off-centered text<p>-- Floating Action Buttons, the cousin of checkboxes inside clickable list items, which have ruined the efficiency of the Gmail app<p>-- Segmented Button, for people who want the first and last tabs in a tab list to look not like the others! (I'm glad Post-It hasn't switched to exclusively rounded notes.)<p>-- Split buttons, obvious on the m3.material.io page but less obvious after it's the unmarked "customize" selector in the Android Settings menu. (If you don't know, on many adaptations of Android OS, SOME toggles have a nearly imperceptible divider left of the toggle, and if you click the text instead of the toggle, you get an entire submenu related to the toggle.) And does the inner divider of split buttons also need the slightest radius?<p>-- Loading indicators are the uncanny valley of shapes. Is it a Torx T20? A ouija board planchette? Oh, now it's a dented hub cap bumbling down the highway!<p>-- Progress indicators, certainly the least favorite of ophidiophobics and cold-hearted professionals.<p>-- Bottom sheets, less ugly but more likely to screw up gesture navigation & split screen while serving little purpose beyond what a separate view accomplishes.<p>-- Carousels and cards, so you can make every app feel like a teenager's (or pre-cash startup's) very first website.<p>-- Adding horizontal rules to Dialogs isn't necessary or helpful, it just adds visual noise.<p>-- Lists have a differently weighted and colored horizontal rule as Dialogs. Vertical margins should be less than horizontal.<p>-- Side sheets. You know you want your app to have both side sheets and bottom sheets!! Let the intrusive thoughts win... Also, is the arrow supposed to make the side sheet larger while the X closes it? Or do they both close it? And why not just swipe to close like the bottom sheet? And then why doesn't the bottom sheet have an X?<p>-- Too many navigation types, especially if the idea is to change between types (and information presentation) based solely on screen size as the descriptions suggest. The shown navigation types implement most of the details previously considered ugly: weird hues, too much padding, unintuitive and single-colored icons, mismatched radii, weird text (Outbox?) Also, why have "Saved podcasts" as an app heading when Google recently sunsetted (murdered) the fairly popular and remarkably usable Podcasts app?? Was the Stadia example rejected in the daily standup?<p>-- Too many unintuitive edit buttons on the Date Picker. Annoying that the demo shows a date range (poorly) while the large text at top is only the end date. How is a date range starting on Dec 31 and ending on Jan 2 supposed to be displayed if there's no longer a background color?<p>-- Sliders are not as ugly as possible, although they <i>are</i> inconsistent with Switches, the Date Picker indicators, Progress Indicators, and Buttons/Button Groups.<p>-- For something like a music equalization widget, it would be nice to have vertical sliders that can have their fill color origin in the middle. You end up spending more developer time creating a custom view than actually implementing EQ filters.<p>-- Time pickers are dumb as hell. There have been many examples of effective time pickers using text entry, swipes, or dropdowns. But still, Material 3 sticks to hybrid hard-to-click analog clock and "need more clicks and number/enter presses than necessary" digital clock which only really works nicely screens 7 inches or larger. Six different curve radii in that design, and they aren't matched to the scale of the containing element.<p>-- By showing the full extent of the animation/motion customization as the top examples, a whole generation of graduating CS majors is going to launch a fleet of nausea-inducing/overly animated/Jello text app content into the world.<p>-- "Abstract shapes" aka Material Shapes Library. Not a single example I've seen has been attractive or clean. I am surprised they didn't include an eye shape but totally unsurprised there are no sharp-cornered variants of the basic shapes.<p>--- Shape morphing: when you want your buttons to look like they're dry heaving and/or being crushed by a hydraulic press. The suggestion to link the exact morph to device sensor inputs and async events makes this idea worse.<p>-- Why does the circular arrow rotate in the opposite direction? If you made road signs animated and then made the symbol for a right-only roundabout (CCW) rotate so the entrance at the bottom always shifted to the left (CW) ... how many accidents a day would you expect compared to baseline?<p>-- They actually have the nerve to put "Use abstract shapes sparingly" as their entire design blog looks like GNOME 3 on mushrooms.<p>Oh, and someone mentioned how sweet it is that they can quickly Figma an app because of Google's unmatched component implementation. But have you also noticed how Google's UX has stifled creativity? As more and more companies (Philips, Spotify, Bitwarden, Duolingo, nearly all social media, shopping, banking, etc.) switch to Material Whatever, they ditch creative widgets and cool layouts. The original Hue app was a celebration of color with no OS-dictated whitespace and very efficient light setup workflow. The redesign is so complicated, most of my lights throughout my house now have no descriptive name in a single room called Whatever. Nothing looks like Tron. No major app has buttons/cards with sharp edges. The Shure apps have toggles and sliders that look nothing like a Crest audio console. Icons have to be carefully redesigned by each vendor to look equally "less dumb" while placed on a circle, rounded rectangle, or rounded rounded rectangles on a home screen (rounded twice intentionally, because that's what the largest seller of Android phones has as the default for home screen icon outlines).<p>- On these demos, entered text is often some shade of pastel where you just want plain-ass white or black.<p>- Back to the website/post. Some of the ugliest bar graphs I've ever seen. What in the actual hell? Everything from breaking visual flow of the bar, using three separate font sizes, needlessly showing the scale (and an unpaired, unneeded arrow) at the bottom and the legend with its fourth font size and padded-unlike-the-others and displayed-like-a-button presentation. Awful use of color. It's as if a labrador ate a carrot, two eggplants, and a jellyfish, then barfed them up, and a half dozen colors were chosen from that mess.<p>- Keyboard layout (they're on the page, so why not) has traditionally had rows 4 and 5 staggered. If Google made pianos, you can bet they'd have the black keys left-aligned with the preceding white key (actually "sun-drenched lilac") and all keys would have rounded bottoms. Oh, a few keys would have a different width than the others. Everyone focuses on the most obvious send button, but nobody has mentioned the little orange arrow above the keyboard. How are you supposed to know what that does without actually clicking it? And then you're expected to remember that forever although you probably rarely use it? So then why, again, does the send button need to be so very obvious and noticeable when it is used so very often? Also, who amongst us hasn't sent a message prematurely and then had to quickly send the errata to that message? A huge send button is only going to exacerbate this problem.<p>- Whatever's under the "4x faster" amoeba looks like an "additional photo" thumbnail. If that's what it is, there is NO reason whatsoever for that to have a circular edge and to not align with the adjacent photo.<p>- I gotta know what that fourth-from-left button in the concept design is (next to the ugly giant send airplane). Is that supposed to be a document but with a microscopic Photos icon in the corner? Also why are buttons 1 and 5 centered but inside of an element where the *insert fancy designer term here* center should be slightly shifted because of the rounded background? Why are there actually nine background shades in that screenshot??<p>This whole system is the visual equivalent to a college kid cooking their first few meals and just tossing in whatever spice is in the drawer. Too little salt; way too much thyme. Cinnamon on grilled chicken? Why not?? Can we boil the grilled cheese instead?<p>There's no basis in nature or iteration on renowned classic designs. It's the worst parts of design by committee, trying to stay off the chopping block, hitting KPIs, wanting to prove you're design-ier than the other designers, trying to impress Ivy Ross, and ignoring the needs/wants of a totally average and uninteresting user.<p>It's a bold experiment—a Throbbing Gristle of application presentation—where outlier data are cherry-picked away. The vocal thousands are "plainly uninformed, emotion-hating" minority and safe to ignore because they'll eventually learn to love it just like the silent, "definitely supportive by default" majority.<p>In short, the design language is inconsistent and heavily opinionated toward looking like an unkempt cottage garden stashed in an Aerotrim with every unique element's font characteristics set to Random. It provides too much variation where very little (or none) would be preferred and too little where it would help.<p>Golly, it sucks.</p>
]]></description><pubDate>Mon, 19 May 2025 09:45:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=44028031</link><dc:creator>PennRobotics</dc:creator><comments>https://news.ycombinator.com/item?id=44028031</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44028031</guid></item><item><title><![CDATA[New comment by PennRobotics in "LibreLingo – FOSS Alternative to Duolingo"]]></title><description><![CDATA[
<p>It doesn't help that the Play Store has no effective way to browse recently developed apps or to filter searches in any meaningful way whatsoever.<p>Couple that with the <i>Indiana Jones boulder chase</i> known as the Target API Level Requirement plus needing to log in every six months or risk getting your Google Dev account permanently deactivated and then needing to relaunch all of your apps under a new namespace.<p>A handful of apps I use come from small companies (5 to 40 employees) who should not have a dedicated mobile dev on their payroll. The apps do not pose a security risk (as they don't use internet/network features) and don't need to be updated as they are feature-complete. One such company just pulled all of their free apps and now has a contractor charge users for worse functioning redesigns.</p>
]]></description><pubDate>Tue, 29 Apr 2025 11:47:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=43831264</link><dc:creator>PennRobotics</dc:creator><comments>https://news.ycombinator.com/item?id=43831264</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43831264</guid></item><item><title><![CDATA[New comment by PennRobotics in "Python’s new t-strings"]]></title><description><![CDATA[
<p>and syntax highlighting</p>
]]></description><pubDate>Wed, 23 Apr 2025 06:48:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=43769324</link><dc:creator>PennRobotics</dc:creator><comments>https://news.ycombinator.com/item?id=43769324</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43769324</guid></item></channel></rss>