41554 blogs · [ { "id": "01a0cdf5-daef-726b-9fb2-5ad49196245f", "title": "The Power of Tactile Cues in a Screen-First World", "url": "https://shinglyu.com/productivity/2026/09/22/the-power-of-tactile-cues-in-a-screen-first-world.html", "published_at": "2026-09-22T00:00:00+00:00" }, { "id": "01a087df-d066-71fa-a557-9988ce1fe63c", "title": "Snippet Manager in Spotlight: Faster Launching with .app Bundles", "url": "https://shinglyu.com/productivity/2026/08/24/snippet-manager-in-spotlight.html", "published_at": "2026-08-24T00:00:00+00:00" }, { "id": "01a087df-d066-71fa-a557-9988ce8d9b1c", "title": "Taking Vanilla OS 2 for a Spin: A Stable Core with Infinite Apps", "url": "https://shinglyu.com/blog/2026/08/15/vanilla-os-2-impressions.html", "published_at": "2026-08-15T00:00:00+00:00" }, { "id": "01a087df-d066-71fa-a557-9988ceeebdfa", "title": "Resist the Urge to Shame Recruiters on LinkedIn", "url": "https://shinglyu.com/blog/2026/07/21/dont-shame-recruiters.html", "published_at": "2026-07-21T00:00:00+00:00" }, { "id": "01a087df-d066-71fa-a557-9988cf02a7d7", "title": "Using .github-private to Share Copilot Custom Agents Across All Your Personal Repos", "url": "https://shinglyu.com/blog/2026/05/28/github-private-repo-personal-copilot-agents.html", "published_at": "2026-05-28T16:00:00+00:00" }, { "id": "01a087df-d066-71fa-a557-9988cfaa18e6", "title": "Building a DIY Document Scanner with a Cardboard Box", "url": "https://shinglyu.com/blog/2026/05/22/diy-document-scanner.html", "published_at": "2026-05-22T16:02:00+00:00" }, { "id": "01a087df-d066-71fa-a557-9988d089bdc8", "title": "Why AI-Generated Personal Software Should Default to Plaintext", "url": "https://shinglyu.com/blog/2026/04/25/plaintext-as-the-new-standard-for-personal-software.html", "published_at": "2026-04-25T08:37:38+00:00" }, { "id": "01a087df-d067-71c1-a5d1-08687cd9309f", "title": "Running GitHub Copilot Cloud Agent on AWS CodeBuild with Self-Hosted Runners", "url": "https://shinglyu.com/blog/2026/04/20/copilot-cloud-agent-custom-runner-aws-codebuild.html", "published_at": "2026-04-20T21:10:19+00:00" }, { "id": "01a087df-d067-71c1-a5d1-08687dc6e543", "title": "Automating Weekly Research with GitHub Agentic Workflows", "url": "https://shinglyu.com/blog/2026/04/15/automating-weekly-research-with-github-agentic-workflows.html", "published_at": "2026-04-15T19:00:00+00:00" }, { "id": "01a087df-d067-71c1-a5d1-08687df30203", "title": "hledger and AI: Managing Your Finances in Plain Text", "url": "https://shinglyu.com/blog/2026/03/18/hledger-and-ai.html", "published_at": "2026-03-18T21:57:22+00:00" }, { "id": "01a087df-d067-71c1-a5d1-08687e102b99", "title": "ADR in Code: Architecture Compliance with AI Code Reviews", "url": "https://shinglyu.com/blog/2026/03/01/ai-adr-code-review.html", "published_at": "2026-03-01T17:00:00+00:00" }, { "id": "01a087df-d067-71c1-a5d1-08687e9cce3f", "title": "ADR as Event Sourcing: Rethinking Software Architecture Documentation in the Age of AI", "url": "https://shinglyu.com/architecture/2026/02/17/adr-as-event-sourcing.html", "published_at": "2026-02-17T23:00:00+00:00" }, { "id": "01a087df-d067-71c1-a5d1-08687f477f91", "title": "My Complete Remote Vibe Coding Setup for Busy Parents", "url": "https://shinglyu.com/ai/2026/01/28/my-remote-vibe-coding-setup.html", "published_at": "2026-01-28T23:00:00+00:00" }, { "id": "01a087df-d067-71c1-a5d1-0868803c4a36", "title": "TOGAF Practitioner exam tips: A strategic approach to passing", "url": "https://shinglyu.com/enterprise-architecture/2026/01/21/togaf-practitioner-exam-tips.html", "published_at": "2026-01-21T00:00:00+00:00" }, { "id": "01a087df-d067-71c1-a5d1-0868811545b6", "title": "10 Years of shinglyu.com", "url": "https://shinglyu.com/web/2026/01/17/10-years-of-shinglyu-com.html", "published_at": "2026-01-17T11:00:00+00:00" }, { "id": "01a087df-d067-71c1-a5d1-0868816326ca", "title": "Poor Man's Raycast: Replace Raycast Features Using Only macOS Built-ins", "url": "https://shinglyu.com/productivity/2026/01/09/poor-mans-raycast-replace-app-launcher-features-using-only-macos-built-ins.html", "published_at": "2026-01-09T00:00:00+00:00" }, { "id": "01a087df-d067-71c1-a5d1-0868822e1bea", "title": "Vibe Operations—The Next Indispensable Trend", "url": "https://shinglyu.com/ai/2025/11/07/vibe-operations-the-next-indispensable-trend.html", "published_at": "2025-11-07T22:10:00+00:00" }, { "id": "01a087df-d067-71c1-a5d1-08688328ace7", "title": "Google Cloud Professional Cloud Architect Exam Changes October 2025: Key Updates You Need to Know", "url": "https://shinglyu.com/web/2025/10/28/google-cloud-professional-cloud-architect-exam-changes-october-2025-key-updates-you-need-to-know.html", "published_at": "2025-10-28T21:34:00+00:00" }, { "id": "01a087df-d067-71c1-a5d1-086883de1dd0", "title": "Poor Man's Raycast: Replace Raycast Features Using Only macOS Built-ins", "url": "https://shinglyu.com/productivity/2025/10/17/poor-mans-raycast-replace-raycast-features-using-only-macos-built-ins.html", "published_at": "2025-10-17T20:49:00+00:00" }, { "id": "01a087df-d067-71c1-a5d1-08688405fcc7", "title": "Serverless Rust on GCP Cloud Run: From Basic Deployment to Optimized Container Builds", "url": "https://shinglyu.com/web/2025/10/08/serverless-rust-on-gcp-cloud-run-from-basic-deployment-to-optimized-container-builds.html", "published_at": "2025-10-08T19:41:00+00:00" }, { "id": "01a087df-d067-71c1-a5d1-086884e30196", "title": "Rust Serverless on the Big Three Clouds: AWS, Azure, and GCP Compared", "url": "https://shinglyu.com/web/2025/09/16/rust-serverless-on-the-big-three-clouds-aws-azure-and-gcp-compared.html", "published_at": "2025-09-16T20:23:00+00:00" }, { "id": "01a087df-d067-71c1-a5d1-08688589b31c", "title": "When Customers Say No: The Unexpected Door Solution Architects Should Never Ignore", "url": "https://shinglyu.com/blog/2025/09/07/when-customers-say-no-the-unexpected-door-solution-architects-should-never-ignore.html", "published_at": "2025-09-07T20:47:03+00:00" }, { "id": "01a087df-d067-71c1-a5d1-086885c57ea4", "title": "Building a Database-Backed API with Serverless Rust on Azure", "url": "https://shinglyu.com/web/2025/08/10/building-a-database-backed-api-with-serverless-rust-on-azure.html", "published_at": "2025-08-10T20:50:00+00:00" }, { "id": "01a087df-d067-71c1-a5d1-0868868da76d", "title": "Serverless Rust on Azure: Deploying a Rust Azure Function", "url": "https://shinglyu.com/web/2025/07/26/serverless-rust-on-azure-deploying-a-rust-azure-function.html", "published_at": "2025-07-26T19:49:05+00:00" }, { "id": "01a087df-d067-71c1-a5d1-0868874f188a", "title": "Why the % Sign Breaks Your Website (And How to Fix It)", "url": "https://shinglyu.com/web/2025/07/22/why-the-percent-sign-breaks-your-website-and-how-to-fix-it.html", "published_at": "2025-07-22T20:53:00+00:00" }, { "id": "01a087df-d067-71c1-a5d1-086887912552", "title": "How I Wrote a Book with AI", "url": "https://shinglyu.com/writing/2025/07/13/how-i-wrote-a-book-with-ai.html", "published_at": "2025-07-13T20:10:13+00:00" }, { "id": "01a087df-d067-71c1-a5d1-0868887df11b", "title": "From DevTools Detective to Automation Hero: My Quest for Dutch Subtitles", "url": "https://shinglyu.com/ai/2025/06/06/from-devtools-detective-to-automation-hero-my-quest-for-dutch-subtitles.html", "published_at": "2025-06-06T00:00:00+00:00" }, { "id": "01a087df-d067-71c1-a5d1-0868890241aa", "title": "Vibe coding a PII Anonymizer CLI: how gen AI makes me build tools faster than ever", "url": "https://shinglyu.com/ai/2025/05/28/vibe-coding-a-pii-anonymizer-cli-how-gen-ai-makes-me-build-tools-faster-than-ever.html", "published_at": "2025-05-28T22:27:17+00:00" }, { "id": "01a087df-d067-71c1-a5d1-0868896371b4", "title": "Agentic Software Installer - A Genius or Terrible Idea?", "url": "https://shinglyu.com/ai/2025/04/04/agentic-software-installer-a-genius-or-terrible-idea.html", "published_at": "2025-04-04T20:24:13+00:00" }, { "id": "01a087df-d067-71c1-a5d1-0868897c48fa", "title": "Make AI Draw Architecture Diagrams with AWS Icons", "url": "https://shinglyu.com/web/2025/03/24/make-ai-draw-architecture-diagrams-with-aws-icons.html", "published_at": "2025-03-24T22:02:39+00:00" }, { "id": "01a087df-d067-71c1-a5d1-086889ed3fbb", "title": "Engineering Better Online Meetings: Hardware, Software, and Environment", "url": "https://shinglyu.com/productivity/2025/03/20/engineering-better-online-meetings.html", "published_at": "2025-03-20T22:20:24+00:00" }, { "id": "01a087df-d067-71c1-a5d1-08688a1c374b", "title": "Building a Fast and Accurate Transcription Tool on Linux", "url": "https://shinglyu.com/web/2025/02/11/building-a-fast-and-accurate-transcription-tool-on-linux.html", "published_at": "2025-02-11T16:02:52+00:00" }, { "id": "01a087df-d067-71c1-a5d1-08688a978b95", "title": "My Productivity System for 2025", "url": "https://shinglyu.com/web/2025/01/27/my-productivity-system-for-2025.html", "published_at": "2025-01-27T22:10:59+00:00" }, { "id": "01a087df-d067-71c1-a5d1-08688b42eab3", "title": "Building a temporary camera app with Windsurf", "url": "https://shinglyu.com/web/2024/12/28/building-a-temporary-camera-app-with-windsurf.html", "published_at": "2024-12-28T03:16:38+00:00" }, { "id": "01a087df-d067-71c1-a5d1-08688b834375", "title": "Beware of scammer who uses my identity", "url": "https://shinglyu.com/web/2024/11/19/beware-of-scammer-who-uses-my-identity.html", "published_at": "2024-11-19T21:00:18+00:00" }, { "id": "01a087df-d067-71c1-a5d1-08688c39138f", "title": "CDK to Terraform Migration with Gen AI", "url": "https://shinglyu.com/ai/2024/10/15/cdk-to-terraform-migration-with-gen-ai.html", "published_at": "2024-10-15T13:03:36+00:00" }, { "id": "01a087df-d067-71c1-a5d1-08688cd5587c", "title": "My Wayland adventure", "url": "https://shinglyu.com/web/2024/09/17/my-wayland-adventure.html", "published_at": "2024-09-17T21:29:06+00:00" }, { "id": "01a087df-d067-71c1-a5d1-08688d9ccbcf", "title": "Disable pycodestyle Check in SageMaker Notebooks", "url": "https://shinglyu.com/ai/2024/08/19/disable-pycodestyle-check-in-sagemaker-notebooks.html", "published_at": "2024-08-19T09:34:41+00:00" }, { "id": "01a087df-d067-71c1-a5d1-08688e0382ae", "title": "How Many Models Can You Fit into a SageMaker Multi-Model Endpoint?", "url": "https://shinglyu.com/web/2024/08/09/how-many-models-can-you-fit-into-a-sagemaker-multi-model-endpoint.html", "published_at": "2024-08-09T10:04:10+00:00" }, { "id": "01a087df-d067-71c1-a5d1-08688e7d0471", "title": "Demystifying The Options for Triggering AWS CodePipeline with Amazon S3 Events", "url": "https://shinglyu.com/web/2024/08/02/demystifying-the-options-for-triggering-aws-codepipeline-with-amazon-s3-events.html", "published_at": "2024-08-02T20:32:31+00:00" }, { "id": "01a087df-d067-71c1-a5d1-08688f549260", "title": "Turning Hand-Drawn Architecture Diagrams into Digital Diagrams with Generative AI", "url": "https://shinglyu.com/ai/2024/07/12/turning-hand-drawn-architecture-diagrams-into-digital-diagrams-with-generative-ai.html", "published_at": "2024-07-12T10:26:00+00:00" }, { "id": "01a087df-d067-71c1-a5d1-08688ff6772b", "title": "Streamline my local transcription command for Raycast", "url": "https://shinglyu.com/ai/2024/06/10/streamline-my-local-transcription-command-for-raycast.html", "published_at": "2024-06-10T14:00:00+00:00" }, { "id": "01a087df-d067-71c1-a5d1-08689096e7b4", "title": "Transcribe voice to text locally with Whisper.cpp and Raycast", "url": "https://shinglyu.com/ai/2024/05/25/transcribe-voice-to-text-locally-with-whisper-cpp-and-raycast.html", "published_at": "2024-05-25T19:34:00+00:00" }, { "id": "01a087df-d067-71c1-a5d1-086890cc5da4", "title": "Understanding SageMaker Project Template Internals", "url": "https://shinglyu.com/ai/2024/01/28/understanding-sagemaker-project-template-internals.html", "published_at": "2024-01-28T16:00:00+00:00" }, { "id": "01a087df-d067-71c1-a5d1-08689114988e", "title": "Using LLM to get cleaner voice transcriptions", "url": "https://shinglyu.com/ai/2024/01/17/using-llm-to-get-cleaner-voice-transcriptions.html", "published_at": "2024-01-17T21:20:00+00:00" }, { "id": "01a087df-d067-71c1-a5d1-0868913ae1b9", "title": "Summarize Text Quickly with Raycast and Amazon Bedrock", "url": "https://shinglyu.com/web/2023/10/20/summarize-text-quickly-with-raycast-and-amazon-bedrock.html", "published_at": "2023-10-20T19:47:37+00:00" }, { "id": "01a087df-d067-71c1-a5d1-0868918ede11", "title": "How to link to external files in Joplin", "url": "https://shinglyu.com/web/2023/09/14/how-to-link-to-external-files-in-joplin.html", "published_at": "2023-09-14T20:14:49+00:00" }, { "id": "01a087df-d067-71c1-a5d1-086891dfcea0", "title": "Introducing the llm-chain-mock Driver for Cost-Effective LLM Testing", "url": "https://shinglyu.com/web/2023/08/15/introducing-the-llm-chain-mock-driver-for-cost-effective-llm-testing.html", "published_at": "2023-08-15T20:51:15+00:00" }, { "id": "01a087df-d067-71c1-a5d1-086891e109f2", "title": "My New Book: Practical Rust Projects, 2nd Edition", "url": "https://shinglyu.com/web/2023/08/04/my-new-book-practical-rust-projects-2nd-edition.html", "published_at": "2023-08-04T20:05:15+00:00" }, { "id": "01a087df-d067-71c1-a5d1-086892194ee6", "title": "Getting Started with Rust llm-chain using the LLaMa driver", "url": "https://shinglyu.com/web/2023/08/02/getting-started-with-rust-llm-chain-using-the-llama-driver.html", "published_at": "2023-08-02T20:10:09+00:00" }, { "id": "01a087df-d067-71c1-a5d1-0868922c04c1", "title": "Using sepia theme in Brave's SpeedReader", "url": "https://shinglyu.com/web/2023/07/18/using-sepia-theme-in-brave-s-speedreader.html", "published_at": "2023-07-18T20:10:54+00:00" }, { "id": "01a087df-d067-71c1-a5d1-086892675916", "title": "How to create your own private LLM using only AWS CLI", "url": "https://shinglyu.com/web/2023/07/03/how-to-create-your-own-private-llm-using-only-aws-cli.html", "published_at": "2023-07-03T19:45:51+00:00" }, { "id": "01a087df-d067-71c1-a5d1-086892e82b18", "title": "Disabling the Link Lost alarm on iTag BLE tracker", "url": "https://shinglyu.com/web/2023/06/03/disabling-the-link-lost-alarm-on-itag-ble-tracker.html", "published_at": "2023-06-03T14:42:08+00:00" }, { "id": "01a087df-d067-71c1-a5d1-0868930eebfb", "title": "Conferences are not about sessions", "url": "https://shinglyu.com/web/2023/05/02/conferences-are-not-about-sessions.html", "published_at": "2023-05-02T20:09:53+00:00" }, { "id": "01a087df-d067-71c1-a5d1-086893fecd1f", "title": "Why Both Knowledge and Experience Are Critical for a Software Developer's Career", "url": "https://shinglyu.com/web/2023/04/08/why-both-knowledge-and-experience-are-critical-for-a-software-developer-s-career.html", "published_at": "2023-04-08T20:42:51+00:00" }, { "id": "01a087df-d067-71c1-a5d1-0868947baecc", "title": "How to learn an AWS service quickly", "url": "https://shinglyu.com/aws/2022/07/22/how-to-learn-an-aws-service-quickly.html", "published_at": "2022-07-22T21:52:56+00:00" }, { "id": "01a087df-d067-71c1-a5d1-086895378521", "title": "My Productivity System", "url": "https://shinglyu.com/productivity/2022/03/06/my-productivity-system.html", "published_at": "2022-03-06T11:10:03+00:00" }, { "id": "01a087df-d067-71c1-a5d1-0868959a3bf9", "title": "Consistent Hashing and why it might not be the correct answer to your system design interview", "url": "https://shinglyu.com/web/2022/02/11/consistent-hashing-and-why-it-might-not-be-the-correct-answer-to-your-system-design-interview.html", "published_at": "2022-02-11T09:44:44+00:00" }, { "id": "01a087df-d067-71c1-a5d1-0868964fadc7", "title": "Generating a notification sound in command-line", "url": "https://shinglyu.com/micro/2020/07/04/generating-a-notification-sound-in-command-line.html", "published_at": "2020-07-04T13:05:16+00:00" }, { "id": "01a087df-d067-71c1-a5d1-086896a378ed", "title": "How to import serde's custom derive macors properly?", "url": "https://shinglyu.com/micro/2020/06/24/how-to-import-serde-s-derive-macors-properly.html", "published_at": "2020-06-24T21:05:05+00:00" }, { "id": "01a087df-d067-71c1-a5d1-086896d97ae2", "title": "Caveats in Terraforming WAF V2 for CloudFront", "url": "https://shinglyu.com/micro/2020/06/23/caveats-in-terraforming-waf-v2-for-cloudfront.html", "published_at": "2020-06-23T18:55:16+00:00" }, { "id": "01a087df-d067-71c1-a5d1-086896ff3820", "title": "Check MongoDB index usage statistics", "url": "https://shinglyu.com/micro/2020/06/10/check-mongodb-index-usage-statistics.html", "published_at": "2020-06-10T16:57:50+00:00" }, { "id": "01a087df-d067-71c1-a5d1-086897994614", "title": "RFC2616 is dead, read RFC723X", "url": "https://shinglyu.com/micro/2020/06/10/rfc2616-is-dead-read-rfc723x.html", "published_at": "2020-06-10T16:32:27+00:00" }, { "id": "01a0821e-93c4-707b-9b11-afd316020087", "title": "Lessons learned in writing my first book", "url": "https://shinglyu.com/web/2020/04/05/lessons-learned-in-writing-my-first-book.html", "published_at": "2020-04-05T08:42:16+00:00" }, { "id": "01a087df-d067-71c1-a5d1-086898b11a59", "title": "Update AWS Security Groups with Terraform", "url": "https://shinglyu.com/web/2020/02/06/update-aws-security-groups-with-terraform.html", "published_at": "2020-02-06T15:40:58+00:00" }, { "id": "01a087df-d067-71c1-a5d1-086899a82d16", "title": "Moving AWS Service across accounts using Terraform", "url": "https://shinglyu.com/web/2019/09/30/moving-aws-service-across-accounts-using-terraform.html", "published_at": "2019-09-30T12:39:00+00:00" }, { "id": "01a087df-d067-71c1-a5d1-08689a29c48a", "title": "Switching Between Multiple Local Backends in Terraform", "url": "https://shinglyu.com/web/2019/04/06/switching-between-multiple-local-backend-in-terraform.html", "published_at": "2019-04-06T18:39:24+00:00" }, { "id": "01a087df-d067-71c1-a5d1-08689acd663f", "title": "Simplify Your CI Pipeline Configuration with Jsonnet", "url": "https://shinglyu.com/devops/2019/02/28/simplify-your-ci-pipeline-configuration-with-jsonnet.html", "published_at": "2019-02-28T13:45:00+00:00" }, { "id": "01a0821e-93c4-707b-9b11-afd316ee7ca3", "title": "Download JavaScript Data as Files on the Client Side", "url": "https://shinglyu.com/web/2019/02/09/js_download_as_file.html", "published_at": "2019-02-09T09:28:39+00:00" }, { "id": "01a087df-d067-71c1-a5d1-08689c64ee4b", "title": "AWS Route 53 Load Balancing with Terraform", "url": "https://shinglyu.com/web/2019/01/29/multi-region-domain-names-and-load-balancing-with-aws-route53.html", "published_at": "2019-01-29T13:55:00+00:00" }, { "id": "01a0821e-93c4-707b-9b11-afd317ee4f59", "title": "Counting your contribution to a git repository", "url": "https://shinglyu.com/web/2018/12/25/counting-your-contribution-to-a-git-repository.html", "published_at": "2018-12-25T11:00:27+00:00" }, { "id": "01a0821e-93c4-707b-9b11-afd318c30814", "title": "New Rust Course - Building Reuseable Code with Rust", "url": "https://shinglyu.com/web/2018/11/16/new-rust-course-building-reuseable-code-with-rust.html", "published_at": "2018-11-16T21:12:18+00:00" }, { "id": "01a0821e-93c4-707b-9b11-afd3195c1174", "title": "Chatting with your website visitors through Chatra", "url": "https://shinglyu.com/web/2018/08/13/chatting-with-your-website-visitors-through-chatra.html", "published_at": "2018-08-13T18:59:29+00:00" }, { "id": "01a0821e-93c4-707b-9b11-afd319787978", "title": "How to Unit Test WebExtensions", "url": "https://shinglyu.com/web/2018/06/24/how-to-unit-test-webextensions.html", "published_at": "2018-06-24T19:44:13+00:00" }, { "id": "01a0821e-93c4-707b-9b11-afd31a12e031", "title": "如何貢獻開源專案?", "url": "https://shinglyu.com/web/2018/05/12/how-to-contribute-to-open-source.html", "published_at": "2018-05-12T15:55:42+00:00" }, { "id": "01a0821e-93c4-707b-9b11-afd31a340a16", "title": "Merge Pull Requests without Merge Commits", "url": "https://shinglyu.com/web/2018/03/25/merge-pull-requests-without-merge-commits.html", "published_at": "2018-03-25T21:46:36+00:00" }, { "id": "01a0821e-93c4-707b-9b11-afd31a5bea8e", "title": "Minimal React.js Without A Build Step (Updated)", "url": "https://shinglyu.com/web/2018/02/08/minimal-react-js-without-a-build-step-updated.html", "published_at": "2018-02-08T21:39:06+00:00" }, { "id": "01a0821e-93c4-707b-9b11-afd31ac8a811", "title": "Taking notes with MkDocs", "url": "https://shinglyu.com/web/2018/01/02/taking-notes-with-mkdocs.html", "published_at": "2018-01-02T20:14:58+00:00" }, { "id": "01a0821e-93c4-707b-9b11-afd31b121af2", "title": "Make LastPass Work Across App and Website", "url": "https://shinglyu.com/web/2017/10/16/make-lastpass-work-across-app-and-website.html", "published_at": "2017-10-16T18:59:46+00:00" }, { "id": "01a0821e-93c4-707b-9b11-afd31b26864c", "title": "Porting Chrome Extension to Firefox", "url": "https://shinglyu.com/web/2017/08/07/porting-chrome-extension-to-firefox.html", "published_at": "2017-08-07T06:37:22+00:00" }, { "id": "01a087df-d067-71c1-a5d1-0868a30b503e", "title": "退役了如何註銷護照上的出境管制章", "url": "https://shinglyu.com/misc/2017/07/13/rdss-passport-deregister.html", "published_at": "2017-07-13T05:39:40+00:00" }, { "id": "01a0821e-93c4-707b-9b11-afd31c1d420b", "title": "Install Ubuntu 16.04 on ThinkPad 13 (2nd Gen)", "url": "https://shinglyu.com/web/2017/07/11/install-ubuntu-16-04-on-thinkpad-13-2nd-gen.html", "published_at": "2017-07-11T07:48:30+00:00" }, { "id": "01a0821e-93c4-707b-9b11-afd31c516547", "title": "An Overview of Asia Tech Conferences in 2017", "url": "https://shinglyu.com/web/2017/01/21/an-overview-of-asia-tech-conferences-in-2017.html", "published_at": "2017-01-21T08:22:34+00:00" }, { "id": "01a0821e-93c4-707b-9b11-afd31d1369f0", "title": "Vim QuickFix for Rust and Servo", "url": "https://shinglyu.com/web/2016/12/25/vim-quickfix-for-rust-and-servo.html", "published_at": "2016-12-25T13:00:00+00:00" }, { "id": "01a0821e-93c4-707b-9b11-afd31e0ee7fb", "title": "Beginner's guide to git rebasing and squashing", "url": "https://shinglyu.com/web/2016/11/08/servo-rebase-and-squash-guide.html", "published_at": "2016-11-08T06:29:17+00:00" }, { "id": "01a0821e-93c4-707b-9b11-afd31e599ba4", "title": "Mutation Testing in JavaScript Using Stryker", "url": "https://shinglyu.com/testing/2016/10/11/Mutation_Testing_in_JavaScript_Using_Stryker.html", "published_at": "2016-10-11T01:00:00+00:00" }, { "id": "01a0821e-93c4-707b-9b11-afd31e89cdb3", "title": "2016 COSCUP, Modern Web and Taiwan Code Sprint", "url": "https://shinglyu.com/web/2016/09/04/2016-conferences.html", "published_at": "2016-09-04T12:40:00+00:00" }, { "id": "01a0821e-93c4-707b-9b11-afd31f0a0cba", "title": "Identify Performance Regression in Servo", "url": "https://shinglyu.com/web/2016/07/18/identify-performance_regression-in-servo.html", "published_at": "2016-07-18T02:00:00+00:00" }, { "id": "01a0821e-93c4-707b-9b11-afd31f0c7444", "title": "Show Firefox Bookmark Toolbar in Fullscreen Mode", "url": "https://shinglyu.com/web/2016/06/20/firefox_bookmark_toolbar_in_fullscreen.html", "published_at": "2016-06-20T11:05:00+00:00" }, { "id": "01a087df-d067-71c1-a5d1-0868a73ba618", "title": "驚爆!報稅軟體的低級錯誤", "url": "https://shinglyu.com/testing/2016/05/21/bug_in_gov_tax_software.html", "published_at": "2016-05-21T14:20:00+00:00" }, { "id": "01a0821e-93c4-707b-9b11-afd31f21b90c", "title": "Rust Code Completion with YouCompleteMe", "url": "https://shinglyu.com/productivity/2016/05/13/rust-completion_with_ycm.html", "published_at": "2016-05-13T15:00:00+00:00" }, { "id": "01a0821e-93c4-707b-9b11-afd31f7bb821", "title": "Visualizing Performance Data on Perfherder", "url": "https://shinglyu.com/web/2016/05/07/visualizing_performance_data_on_perfherder.html", "published_at": "2016-05-07T13:20:00+00:00" }, { "id": "01a087df-d067-71c1-a5d1-0868a8b7bb5c", "title": "Minimal React.js Without A Build Step", "url": "https://shinglyu.com/web/2016/04/06/minimal_react.html", "published_at": "2016-04-06T13:55:00+00:00" }, { "id": "01a087df-d067-71c1-a5d1-0868a96295bb", "title": "How AlphaGo Can Teach Us About Software Testing", "url": "https://shinglyu.com/testing/2016/03/19/how_alphago_can_teach_us_about_qa.html", "published_at": "2016-03-19T15:00:00+00:00" }, { "id": "01a087df-d067-71c1-a5d1-0868aa3473d6", "title": "Dotfiles: Manage Your Development Environment Configuration in GitHub", "url": "https://shinglyu.com/productivity/2016/03/12/dotfiles.html", "published_at": "2016-03-12T15:00:00+00:00" }, { "id": "01a087df-d067-71c1-a5d1-0868aabfadcd", "title": "From 3D scanner to VR -- Introduction", "url": "https://shinglyu.com/cv/2016/02/22/3d_scanner_to_vr-intro.html", "published_at": "2016-02-22T00:00:00+00:00" }, { "id": "01a087df-d067-71c1-a5d1-0868aba0b3d3", "title": "Mutation Testing in JavaScript Using Grunt Mutation Testing", "url": "https://shinglyu.com/testing/2016/02/15/Mutation_Testing_in_JavaScript_Using_Grunt_Mutation_Testing.html", "published_at": "2016-02-15T00:00:00+00:00" }, { "id": "01a087df-d067-71c1-a5d1-0868abd4c418", "title": "[HOWTO] Check MBR Infomation Under Linux", "url": "https://shinglyu.com/tech/2012/06/19/howto-check-mbr-information-under-linux.html", "published_at": "2012-06-19T00:00:00+00:00" }, { "id": "01a087df-d067-71c1-a5d1-0868ac244cb3", "title": "[Ubuntu教學] Atheros AR2425/AR5007EG無線網卡驅動", "url": "https://shinglyu.com/tech/2008/11/01/ubuntu-atheros-ar2425ar5007eg.html", "published_at": "2008-11-01T00:00:00+00:00" }, { "id": "01a087df-d067-71c1-a5d1-0868ac27cd3d", "title": "[Ubuntu教學] 用Ubuntu 寫C++", "url": "https://shinglyu.com/tech/2008/09/24/ubuntu-cpp-programming.html", "published_at": "2008-09-24T00:00:00+00:00" } ] posts Claim your blog
Back to Shing Lyu - Articles
Blog · corpus.blog/blogs/shinglyu.com/posts

Shing Lyu - Articles

shinglyu.com

2026

2025

2024

2023

2022

2020

2019

2018

2017

2016

2012

2008