<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>neekey&apos;s blog</title><description>Learn and live. Notes on software development, web apps, and life by Neekey Ni.</description><link>https://neekey.net/</link><item><title>The Best Engineers I Know Don’t Write Code Anymore</title><link>https://neekey.net/2026/01/21/the-best-engineers-i-know-dont-write-code-anymore/</link><guid isPermaLink="true">https://neekey.net/2026/01/21/the-best-engineers-i-know-dont-write-code-anymore/</guid><description>The best engineers I know don’t write code anymore. They write specs. They review outputs. They validate against requirements. The code gets written but just not by their hands. And they’re shipping faster than ever. The Identity Crisis No One Talks About If you’re using AI to code and feel like a fraud, this post</description><pubDate>Tue, 20 Jan 2026 22:01:58 GMT</pubDate><category>coding</category></item><item><title>You Should Start Vibewriting</title><link>https://neekey.net/2026/01/19/you-should-start-vibewriting/</link><guid isPermaLink="true">https://neekey.net/2026/01/19/you-should-start-vibewriting/</guid><description>Everyone’s talking about vibecoding — using AI to build apps without deep technical skills. It’s powerful. It’s democratizing. It’s everywhere. But there’s a quieter revolution most people are sleeping on: vibewriting. And it might be one of the best compounding activities you’re not doing. What is vibewriting? Vibecoding is prompting AI to code without being</description><pubDate>Mon, 19 Jan 2026 10:02:19 GMT</pubDate><category>coding</category></item><item><title>Why AI Falls Apart at 30% — And the System That Fixes It</title><link>https://neekey.net/2026/01/13/why-ai-falls-apart-at-30-and-the-system-that-fixes-it/</link><guid isPermaLink="true">https://neekey.net/2026/01/13/why-ai-falls-apart-at-30-and-the-system-that-fixes-it/</guid><description>Why does AI nail the first 30% of a task… then completely fall apart? I kept hitting this wall until I changed my approach. Not a better prompt. A better system. The Problem Every Builder Knows If you’ve used AI for anything beyond trivial tasks, you’ve felt this pain. You describe a complex feature. AI</description><pubDate>Tue, 13 Jan 2026 12:42:44 GMT</pubDate><category>coding</category></item><item><title>How to Set Up FastAPI + Docker + VS Code Debugging</title><link>https://neekey.net/2025/08/03/how-to-set-up-fastapi-docker-vs-code-debugging/</link><guid isPermaLink="true">https://neekey.net/2025/08/03/how-to-set-up-fastapi-docker-vs-code-debugging/</guid><description>A complete guide to debugging FastAPI applications in Docker containers with hot reload support and production safety What You’ll Learn By the end of this guide, you’ll have: VS Code debugging – Set breakpoints and step through your FastAPI code running in Docker Hot reload during development – Code changes automatically restart your server Multi-service</description><pubDate>Sat, 02 Aug 2025 14:29:01 GMT</pubDate><category>coding</category></item><item><title>OAuth Token Refresh in Distributed Systems</title><link>https://neekey.net/2025/07/20/oauth-token-refresh-in-distributed-systems/</link><guid isPermaLink="true">https://neekey.net/2025/07/20/oauth-token-refresh-in-distributed-systems/</guid><description>The Problem Modern applications frequently integrate with third-party services through OAuth, requiring careful management of access tokens that expire over time. The challenge becomes particularly complex when multiple concurrent operations need to refresh the same user’s token simultaneously. Without proper coordination, this leads to race conditions where multiple processes attempt token refresh concurrently, potentially causing</description><pubDate>Sun, 20 Jul 2025 12:39:10 GMT</pubDate><category>coding</category></item><item><title>Automating Startup of an Electron App on Windows Machines Using Task Scheduler</title><link>https://neekey.net/2023/09/02/automating-startup-of-an-electron-app-on-windows-machines-using-task-scheduler/</link><guid isPermaLink="true">https://neekey.net/2023/09/02/automating-startup-of-an-electron-app-on-windows-machines-using-task-scheduler/</guid><description>If you’re developing a Windows application that needs to run continuously in the background, you might initially consider using Electron’s app.setLoginItemSettings to add the app to the startup list. However, this approach only launches the app when a user logs in after a machine restart. This becomes problematic for machines used as local servers, which</description><pubDate>Sat, 02 Sep 2023 12:18:53 GMT</pubDate><category>coding</category></item><item><title>Webflow Class System</title><link>https://neekey.net/2023/06/21/webflow-class-system/</link><guid isPermaLink="true">https://neekey.net/2023/06/21/webflow-class-system/</guid><description>Having worked extensively with Webflow over the past three months, my overall experience has been largely positive. I perceive Webflow as a strong contender to WordPress, owing to the remarkable ecosystem it’s cultivating. That being said, I believe there’s room for improvement, particularly when it comes to Webflow’s class system. Issues with the Current Class</description><pubDate>Wed, 21 Jun 2023 13:30:58 GMT</pubDate><category>coding</category></item><item><title>Using Data Studio to Generate Reports from Cloud SQL PostgreSQL</title><link>https://neekey.net/2021/03/21/using-data-studio-to-generate-reports-from-cloud-sql-postgresql/</link><guid isPermaLink="true">https://neekey.net/2021/03/21/using-data-studio-to-generate-reports-from-cloud-sql-postgresql/</guid><description>Creating a dashboard with numbers and fancy charts is always a pain and involves whole lot of work. If the dashboard is for your clients, your end users, then it’s inevitable and it will be worth the time doing yourself given future changes are always going to happend. For internal monitoring, data reports, it’s a</description><pubDate>Sat, 20 Mar 2021 14:18:53 GMT</pubDate><category>coding</category></item><item><title>Migrate Parallel Desktop VM to VirtualBox</title><link>https://neekey.net/2020/07/21/migrate-your-parallel-desktop-vm-to-virtualbox/</link><guid isPermaLink="true">https://neekey.net/2020/07/21/migrate-your-parallel-desktop-vm-to-virtualbox/</guid><description>My Parallel Desktop subscription ended again when today I was trying to use my Windows VM to test out a page on IE. Over the last 12 months I had only been using vm for very limited reasons, and probably ended up only opened Parallel Desktop for twice. A $99 renew for maybe another two</description><pubDate>Mon, 20 Jul 2020 14:31:35 GMT</pubDate><category>coding</category></item><item><title>React Use Case: URL-Aware Search List</title><link>https://neekey.net/2020/07/14/react-use-case-url-aware-search-list/</link><guid isPermaLink="true">https://neekey.net/2020/07/14/react-use-case-url-aware-search-list/</guid><description>This project is to showcase a common use case in React web application that a List page with search and pagination while their state needs to be synced with the page URL query. Check out the Demo here You can also check the complete source code here Features Users can use the Search component to</description><pubDate>Tue, 14 Jul 2020 12:53:26 GMT</pubDate><category>coding</category></item><item><title>Browser Service using Puppeteer + Lambda + Serverless</title><link>https://neekey.net/2020/05/19/browser-service-using-puppeteer-lambda-serverless/</link><guid isPermaLink="true">https://neekey.net/2020/05/19/browser-service-using-puppeteer-lambda-serverless/</guid><description>In my recent project, I was asked to implement several features that needs to use Puppeteer, mostly using it to open web pages and get content. The first feature is generating screenshot of given website URLs, a service that takes a URL and return Base64. The second one is similar, but instead of generating a</description><pubDate>Tue, 19 May 2020 12:58:44 GMT</pubDate><category>coding</category></item><item><title>Direct to S3 File Uploads in Python</title><link>https://neekey.net/2019/03/23/direct-to-s3-file-uploads-in-python/</link><guid isPermaLink="true">https://neekey.net/2019/03/23/direct-to-s3-file-uploads-in-python/</guid><description>The general tutorial from Heroku: https://devcenter.heroku.com/articles/s3-upload-python The main benefit for this approach is that AWS will now handle the process of the actually uploading, so that our server does not need to worry about the performance and it’s scalable.</description><pubDate>Sat, 23 Mar 2019 04:22:17 GMT</pubDate><category>coding</category></item><item><title>Cypress Test Cases Writing Take Aways.</title><link>https://neekey.net/2019/03/03/cypress-test-cases-writing-take-aways/</link><guid isPermaLink="true">https://neekey.net/2019/03/03/cypress-test-cases-writing-take-aways/</guid><description>Finally I setup Cypress for the project that I am working on in my company. After wrote several test cases, here is some take aways I want to share. Stub Network Before Visit When stubbing the requests for test cases, cypress need to know about the routes before the reqeusts being made from the app</description><pubDate>Sun, 03 Mar 2019 11:29:36 GMT</pubDate><category>coding</category></item><item><title>Python Xero Integration Setup</title><link>https://neekey.net/2018/08/25/python-xero-integration-setup/</link><guid isPermaLink="true">https://neekey.net/2018/08/25/python-xero-integration-setup/</guid><description>I got a task about Xero integration in my work last week, aiming to copy invoices from one account to the other. To perform this task, the workflow will be: Invoice created/updated in Xero account A The webhook from Xero account A is triggered Our App handles the webhook and copy the newly created/updated invoice</description><pubDate>Sat, 25 Aug 2018 07:03:30 GMT</pubDate><category>coding</category></item><item><title>Cypress: UI Test For Your React/Webpack Project</title><link>https://neekey.net/2018/08/16/cypress-ui-test-for-your-react-webpack-project/</link><guid isPermaLink="true">https://neekey.net/2018/08/16/cypress-ui-test-for-your-react-webpack-project/</guid><description>UI Test has been a problem for every web front end project once it grows and becomes rather complicated while the common unit tests fail to cover complex workflow and business logic. UI Test in this artile, I would say it’s more like integration test, but I would not put it as E2E test, since</description><pubDate>Thu, 16 Aug 2018 10:59:09 GMT</pubDate><category>coding</category></item><item><title>Review: The Spare Room</title><link>https://neekey.net/2018/06/02/review-the-spare-room/</link><guid isPermaLink="true">https://neekey.net/2018/06/02/review-the-spare-room/</guid><description>Story Brief The author (Helen) had her fifteen-year friend Nicola from Sydney staying in her spare room in Melbourne for three weeks. Nicola was there for a Vitamin C Treatment claiming to cure her cancer, while Helen had to care for her. Nicola had never been married and had no children. She was what called</description><pubDate>Sat, 02 Jun 2018 05:56:50 GMT</pubDate><category>reading</category></item><item><title>Set up automatic CI &amp;#038; NPM release with semantic-release</title><link>https://neekey.net/2018/04/10/set-up-automatic-ci-npm-release-with-semantic-release/</link><guid isPermaLink="true">https://neekey.net/2018/04/10/set-up-automatic-ci-npm-release-with-semantic-release/</guid><description>Setup Setup semantic-release in your project is pretty easy: npx semantic-release-cli setup then you will be asked about your npm and github credentials In terms of travis CI, it will setup the integration with github and the environment variables.</description><pubDate>Tue, 10 Apr 2018 06:40:50 GMT</pubDate><category>coding</category></item><item><title>Finally The King Is Safe.</title><link>https://neekey.net/2017/12/23/finally-the-king-is-safe/</link><guid isPermaLink="true">https://neekey.net/2017/12/23/finally-the-king-is-safe/</guid><description>Spent three nights after work playing the game Kingdom: Classic Stats and finally, I finished the game.</description><pubDate>Fri, 22 Dec 2017 13:30:58 GMT</pubDate><category>gaming</category></item><item><title># Gatsby Is Not Suitable For Your Web App.</title><link>https://neekey.net/2017/09/12/gatsby-is-not-suitable-for-your-web-app/</link><guid isPermaLink="true">https://neekey.net/2017/09/12/gatsby-is-not-suitable-for-your-web-app/</guid><description>I was looking for a React static HTML solution for my incoming marketing page project. Actually, I was not looking for a static website generator, more just need to generate a html file that contains react rendering result HTML, which is for SEO friendly purpose.</description><pubDate>Mon, 11 Sep 2017 14:27:54 GMT</pubDate><category>coding</category></item><item><title>AWS DevDay 2017</title><link>https://neekey.net/2017/09/07/aws-devday-2017/</link><guid isPermaLink="true">https://neekey.net/2017/09/07/aws-devday-2017/</guid><description>Attended AWS DevDay 2017 Melbourne. This is a summary of what I learned today. Keywords IoT, GreenGrass, offline/local/edge Artificial Intelligence Cloud Developer / embedded developer Serverless</description><pubDate>Thu, 07 Sep 2017 11:34:30 GMT</pubDate><category>coding</category></item><item><title>Lower you expectation for Webpack’s Tree Shaking</title><link>https://neekey.net/2017/07/23/lower-you-expectation-for-webpacks-tree-shaking/</link><guid isPermaLink="true">https://neekey.net/2017/07/23/lower-you-expectation-for-webpacks-tree-shaking/</guid><description>Recently I upgrade my project from webpack1 to webpack3, one of the main highlight feature for me is Tree Shaking. Depnding on the static structure of ES6 module system, webpack is now able to get rid of unused modules from your build. That sounds very cool, but after I finished my upgrade and rebuilt my</description><pubDate>Sun, 23 Jul 2017 01:36:29 GMT</pubDate><category>coding</category></item><item><title>Adding `skip()` and `only()` features to unittest</title><link>https://neekey.net/2017/06/24/adding-skip-and-only-feature-to-unittest/</link><guid isPermaLink="true">https://neekey.net/2017/06/24/adding-skip-and-only-feature-to-unittest/</guid><description>If you are like me, a python newbie just moved from web front-end world, you must have used Mocha before, the most commonly used test framework made by the genius TJ. skip() and only() are the two most useful features for me among all the tools that Mocha provides. So when I started to write</description><pubDate>Sat, 24 Jun 2017 01:14:55 GMT</pubDate><category>coding</category></item><item><title>Using raw SQL with Flask-SQLAlchemy</title><link>https://neekey.net/2017/05/19/using-raw-sql-with-flask-sqlalchemy/</link><guid isPermaLink="true">https://neekey.net/2017/05/19/using-raw-sql-with-flask-sqlalchemy/</guid><description>This week I was using Flask-Migrate to do a database data migration. I created an empty reversion file and put my migrate script in it so that the migrate can be recorded just like the other reversion files. The only thing special about writing a migration script is you need to use raw SQL to</description><pubDate>Fri, 19 May 2017 12:12:54 GMT</pubDate><category>coding</category></item><item><title>Responsive Master-Detail Layout in React</title><link>https://neekey.net/2017/01/23/responsive-master-detail-layout-in-react/</link><guid isPermaLink="true">https://neekey.net/2017/01/23/responsive-master-detail-layout-in-react/</guid><description>I am using React with React-Router to make a SPA(Single Page Application) recently. In my setting page, I adopted the typical Master-Detail layout. It’s quite easy if you only need to make it work on desktop devices, but for small devices, you need to put extra effort into it. This article describes how I implement</description><pubDate>Mon, 23 Jan 2017 10:42:21 GMT</pubDate><category>coding</category></item><item><title>Auto deployment to FTP server with Travis-CI</title><link>https://neekey.net/2017/01/01/auto-deployment-to-ftp-server-with-travis-ci/</link><guid isPermaLink="true">https://neekey.net/2017/01/01/auto-deployment-to-ftp-server-with-travis-ci/</guid><description>Instead of integrating your app with deployment platforms like deployHQ, you can use Travis-CI to create your custom deployment process. In my case, I just need to deploy my front-end static assets up to an FTP server.</description><pubDate>Sat, 31 Dec 2016 22:52:28 GMT</pubDate><category>coding</category></item><item><title>Rules for testing React UI component with Enzyme</title><link>https://neekey.net/2016/12/16/rules-for-testing-react-ui-component-with-enzyme/</link><guid isPermaLink="true">https://neekey.net/2016/12/16/rules-for-testing-react-ui-component-with-enzyme/</guid><description>You should always write test for your code. All the examples below will be using Mocha, Chai, you should be able to change to whatever library you like.</description><pubDate>Fri, 16 Dec 2016 12:51:03 GMT</pubDate><category>coding</category></item><item><title>How to avoid preflight OPTION request in CROS request</title><link>https://neekey.net/2016/12/13/how-to-avoid-preflight-option-request-in-cros-request/</link><guid isPermaLink="true">https://neekey.net/2016/12/13/how-to-avoid-preflight-option-request-in-cros-request/</guid><description>When sending CROS Ajax request, sometimes you may found that before every request you make, there will be a OPTION request sent. It’s quite annoying and slows down your data request since the actually request has to wait the OPTION request to finish. According to the CORS strategy (highly recommend you read about it) You</description><pubDate>Tue, 13 Dec 2016 03:26:46 GMT</pubDate><category>coding</category></item><item><title>React+Webpack1/2/3+Semantic UI and how to do theming</title><link>https://neekey.net/2016/12/09/integrate-react-webpack-with-semantic-ui-and-theming/</link><guid isPermaLink="true">https://neekey.net/2016/12/09/integrate-react-webpack-with-semantic-ui-and-theming/</guid><description>Semantic UI is a great UI framework which can make your UI development much easier, but it’s still not a joyful job to make it work with webpack especially for theming. This tutorial works for both webpack 1/2/3, though you need to make small change just to follow webpack2/3’s syntax. For the main differences for</description><pubDate>Fri, 09 Dec 2016 09:27:06 GMT</pubDate><category>coding</category></item><item><title>How to Fix: npm WARN cannot run in wd</title><link>https://neekey.net/2016/12/05/how-to-fix-npm-warn-cannot-run-in-wd/</link><guid isPermaLink="true">https://neekey.net/2016/12/05/how-to-fix-npm-warn-cannot-run-in-wd/</guid><description>You may encounter this issue when you run npm with root permission. In my case, I created a postinstall command to fix a particular node module’s problem: { “scripts”: { “postinstall”: “node ./semantic-fix.js” } }</description><pubDate>Mon, 05 Dec 2016 04:00:14 GMT</pubDate><category>coding</category></item><item><title>Introduce to Loose-Constrolled react form input</title><link>https://neekey.net/2016/09/10/introduce-to-loose-constrolled-react-form-input/</link><guid isPermaLink="true">https://neekey.net/2016/09/10/introduce-to-loose-constrolled-react-form-input/</guid><description>React provides two ways to use its form inputs, Controlled and Uncontrolled. I will try to explain both of them and the user cases, after that I will introduce an in-the-middle way to control your form input: Loos-Controlled, which tries to fulfill the user case that the others do not solve well.</description><pubDate>Sat, 10 Sep 2016 00:19:38 GMT</pubDate><category>coding</category></item><item><title>Implementing responsive design in React</title><link>https://neekey.net/2016/08/28/implementing-responsive-design-in-react/</link><guid isPermaLink="true">https://neekey.net/2016/08/28/implementing-responsive-design-in-react/</guid><description>Two kinds of responsive design There’s two type of responsive design: One is just adjusting an element’s appearance in response to different media types, like hiding or showing some elements, change size, color or layout. Another way will be using the diffent design or totally different component for different media types. For example, a complex</description><pubDate>Sun, 28 Aug 2016 07:10:47 GMT</pubDate><category>coding</category></item><item><title>Manipulate state in Redux, but not with ImmutableJS</title><link>https://neekey.net/2016/08/19/manipulate-state-in-redux-but-not-with-immutablejs/</link><guid isPermaLink="true">https://neekey.net/2016/08/19/manipulate-state-in-redux-but-not-with-immutablejs/</guid><description>Problems When Handling Redux State tedious manually manipulate state unnecessary state change, and component re-rendering need to access state path carefully in case undefined error</description><pubDate>Fri, 19 Aug 2016 10:04:05 GMT</pubDate><category>coding</category></item><item><title>Using AngularJS and Webpack to implement a Single Page Application</title><link>https://neekey.net/2016/05/29/using-angularjs-and-webpack-to-implement-a-single-page-application/</link><guid isPermaLink="true">https://neekey.net/2016/05/29/using-angularjs-and-webpack-to-implement-a-single-page-application/</guid><description>Well, this article is here to help you implement SPA with AngularJS and Webpack. But I am not going to show you every line of code since that will be too much to say. I will just share some of the main concerns and solutions. You can see the complete boilerplate here directly.</description><pubDate>Sun, 29 May 2016 00:57:05 GMT</pubDate><category>coding</category></item><item><title>《Learning Agile》读书笔记：核心思想</title><link>https://neekey.net/2016/05/12/%E3%80%8Alearning-agile%E3%80%8B%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0%EF%BC%9A%E6%A0%B8%E5%BF%83%E6%80%9D%E6%83%B3/</link><guid isPermaLink="true">https://neekey.net/2016/05/12/%E3%80%8Alearning-agile%E3%80%8B%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0%EF%BC%9A%E6%A0%B8%E5%BF%83%E6%80%9D%E6%83%B3/</guid><description>敏捷开发（Agile）是什么？ 敏捷开发是一套方法和方法论的集合，他帮助你的团队更加高效的思考，工作和做出更好的决定。这套方法和方法论涉及所有的传统软件工程领域，包含项目管理，软件设计和架构，以及进程优化。</description><pubDate>Thu, 12 May 2016 07:31:16 GMT</pubDate><category>reading</category></item><item><title>理解 MVC / Model2 / MVP / MVVM / Flux</title><link>https://neekey.net/2016/05/07/%E7%90%86%E8%A7%A3-mvc-model2-mvp-mvvm-flux/</link><guid isPermaLink="true">https://neekey.net/2016/05/07/%E7%90%86%E8%A7%A3-mvc-model2-mvp-mvvm-flux/</guid><description>总结一下目前流行的MV*设计模式，着重其在前端环境的应用问题。 传统MVC</description><pubDate>Sat, 07 May 2016 06:55:40 GMT</pubDate><category>coding</category></item><item><title>《JavaScript权威指南》读书笔记： 闭包</title><link>https://neekey.net/2016/04/29/%E3%80%8Ajavascript%E6%9D%83%E5%A8%81%E6%8C%87%E5%8D%97%E3%80%8B%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0%EF%BC%9A-%E9%97%AD%E5%8C%85/</link><guid isPermaLink="true">https://neekey.net/2016/04/29/%E3%80%8Ajavascript%E6%9D%83%E5%A8%81%E6%8C%87%E5%8D%97%E3%80%8B%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0%EF%BC%9A-%E9%97%AD%E5%8C%85/</guid><description>闭包，简单说是指： 函数对象本身和这个函数关联的作用域链的结合 上面的定义可能听不懂，为了详细说明这个概念，需要先解释清楚JavaScript中作用域相关的概念。</description><pubDate>Fri, 29 Apr 2016 09:03:32 GMT</pubDate><category>reading</category></item><item><title>《奇幻森林》观后感</title><link>https://neekey.net/2016/04/15/%E3%80%8A%E5%A5%87%E5%B9%BB%E6%A3%AE%E6%9E%97%E3%80%8B%E8%A7%82%E5%90%8E%E6%84%9F/</link><guid isPermaLink="true">https://neekey.net/2016/04/15/%E3%80%8A%E5%A5%87%E5%B9%BB%E6%A3%AE%E6%9E%97%E3%80%8B%E8%A7%82%E5%90%8E%E6%84%9F/</guid><description>今天下午一个人去看了IMAX，随便说点印象。 CG技术再一次刷新 我对于动物渲染的印象，还停留在大家称赞少年派中的老虎多逼真时，《奇幻森林》已经表示群兽共舞已无压力。印象特别深刻的是毛克利坐在巴鲁肚子上在水里戏水那段…真人和特效中的熊以及水的所有融合，如此自然：</description><pubDate>Fri, 15 Apr 2016 10:59:08 GMT</pubDate><category>coding</category></item><item><title>《把时间当做朋友》读书笔记：心智和耐心</title><link>https://neekey.net/2016/04/05/%E3%80%8A%E6%8A%8A%E6%97%B6%E9%97%B4%E5%BD%93%E5%81%9A%E6%9C%8B%E5%8F%8B%E3%80%8B%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0%EF%BC%9A%E5%BF%83%E6%99%BA%E5%92%8C%E8%80%90%E5%BF%83/</link><guid isPermaLink="true">https://neekey.net/2016/04/05/%E3%80%8A%E6%8A%8A%E6%97%B6%E9%97%B4%E5%BD%93%E5%81%9A%E6%9C%8B%E5%8F%8B%E3%80%8B%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0%EF%BC%9A%E5%BF%83%E6%99%BA%E5%92%8C%E8%80%90%E5%BF%83/</guid><description>几天读完李笑来的《把时间当做朋友》，虽然从第五章开始就越来越纯鸡汤了，但是本书的很多核心观点还是给我以启发，以及印证了我自己本身就想过的一些观点。</description><pubDate>Tue, 05 Apr 2016 03:11:52 GMT</pubDate><category>reading</category></item><item><title>离职三个月回顾</title><link>https://neekey.net/2016/04/03/%E7%A6%BB%E8%81%8C%E4%B8%89%E4%B8%AA%E6%9C%88%E5%9B%9E%E9%A1%BE/</link><guid isPermaLink="true">https://neekey.net/2016/04/03/%E7%A6%BB%E8%81%8C%E4%B8%89%E4%B8%AA%E6%9C%88%E5%9B%9E%E9%A1%BE/</guid><description>转眼已经离职三个月，最近一直在家处理家里的店铺的事情，大体已经完成，准备清明节后回杭州，开始专注自己的人生。因此在这个时间点，对离职和离职后的这几个月的生活做一下总结。</description><pubDate>Sun, 03 Apr 2016 12:09:27 GMT</pubDate><category>thinking</category></item><item><title>也谈推迟满足感</title><link>https://neekey.net/2016/04/01/%E4%B9%9F%E8%B0%88%E6%8E%A8%E8%BF%9F%E6%BB%A1%E8%B6%B3%E6%84%9F/</link><guid isPermaLink="true">https://neekey.net/2016/04/01/%E4%B9%9F%E8%B0%88%E6%8E%A8%E8%BF%9F%E6%BB%A1%E8%B6%B3%E6%84%9F/</guid><description>什么是推迟满足感 所谓延迟满足，就是我们平常所说的“忍耐”。为了追求更大的目标，获得更大的享受，可以克制自己的欲望，放弃眼前的诱惑。</description><pubDate>Fri, 01 Apr 2016 05:42:02 GMT</pubDate><category>thinking</category></item><item><title>第一次约拍有感：尊重</title><link>https://neekey.net/2016/03/31/%E7%AC%AC%E4%B8%80%E6%AC%A1%E7%BA%A6%E6%8B%8D%E6%9C%89%E6%84%9F%EF%BC%9A%E5%B0%8A%E9%87%8D/</link><guid isPermaLink="true">https://neekey.net/2016/03/31/%E7%AC%AC%E4%B8%80%E6%AC%A1%E7%BA%A6%E6%8B%8D%E6%9C%89%E6%84%9F%EF%BC%9A%E5%B0%8A%E9%87%8D/</guid><description>第一次约妹子拍照，高中同学，前室友，关系非常好的闺蜜。 约在公园旁边的星巴克见面。我是想，在开始前，两个人先熟络熟络，免得一下开拍要尴尬。妹子先到，给我点了杯红茶拿铁，我们坐在门口靠窗的位置，聊了大概20来分种起身向公园逛去。 这次拍摄对于我而言，心里是没有底的。一来没有经验，二来环境我也不熟悉，三来我也并不知道该用哪些取景比较好。不过好在和妹子相熟，也算是互相理解，还算轻松自在。 走到河边的栏杆边上，我决定就从这里开始，让妹子靠着护栏随便拍了几张，拍完妹子就凑近想看效果，我点开相机预览，画面一片曝光过度的白，尴尬。我冷静了一下，想起昨晚在调整iSO最大值时似乎忘了调整回来，一看果然是，调整回来继续拍了几张，终于正常。 因为公园人太多，就没有直接进公园，发现公园的外围有个小楼，廖无人烟的样子，我俩便进了去，如果不算这阴沉的天气，也算凑合可以用。 在来拍照之前，我其实已经在图虫上看了很多妹子的人像摄影作品，所以实际在拍时，也是多有模仿。我把手机里的一些作品给妹子看，没有太多被拍经验的妹子也是感叹，这些神情和动作看似简单，却并不容易做到。因此本次拍摄的很多表情，多少有点矫揉造作不自然，反而损失了妹子本身的自然性情，也是遗憾。 人像摄影的一大拍法，就是背景的大虚化，可惜我的光圈1.8的定焦镜头却被我无心留在了杭州，手上的套头虽然焦段长光圈只到4.0，还是差一点。实际拍摄的时候，为了得到大的景深效果，只能拉长焦，站在远处拍近身。现在回想起这一点，其实在人像摄影中并不合适，因为随着焦段的变大，画面会被拉宽，人会显胖。 在小楼这边拍了很多张，随后进了公园，逛了半天终于发现一片没什么人的小树林，正巧也是到了下午快4点的时间，太阳从云层中透出，借着横向过来的柔光，让妹子靠着树拍了好多张。 中间有一回，阴了好久，太阳突然出来，妹子喊我快拍，我猛按快门，却不听声响，浪费了妹子好些表情，甚是尴尬。低头检查，相机显示FULL，存储卡居然已经占满。才想起之前某日在摆弄相机设置，开了raw+jpg格式的质量，加上我存储卡本来就不大，这么快用完也并不奇怪了。于是只好和妹子一起删去了大部分明显不佳的照片，降低了图像的存储质量，才能勉强继续拍。 大约拍到4点多，由于存储卡实在没法继续拍以及我俩也累了，就结束了拍摄。 由于手上还有其他事情要处理，真正开始修图，是拍摄完的第三天晚上。 第一次用Lightroom，对于软件的使用并不熟悉，加上可以调整的参数比之手机上的软件，复杂太多，因此也是调了好久才开始有感觉。除去各种参数不谈，LR最方便的自然是预设的自定义。修到后来，我基本上是按照拍摄场景保存预设，比如“妹子 走廊”一个预设，“妹子 草坪”一个预设。 用LR调色后，下一步是用PS进行皮肤，脸型等的优化。在这一步上我是并不擅长的，而且一方面是懈怠，另一方是内心排斥这样的人为加工。但还是硬着头皮修眼袋，修瑕疵，凌晨快2点左右才整体弄完。 为每个场景都选了一些做了长图。没给妹子过目，就急忙发了朋友圈。 我时常也是一个无法推迟自己满足感的人。拍完妹子的这两天我就一直在想着赶紧修完，发给大家看，得到大家的赞赏。这种心态我虽然深知，却还是无法自制。 记得之前在某个群里跟朋友讨论过，过度的关注别人在表面的认同，会偏移你对事物的关注点。以摄影这件事情来说，通过别人的点赞来获得认同以及得到动力本身是可怕的。我一直在反思这种心态。 照片发出去后，大部分自然是好评，负面评价也有，重点是妹子本人并不喜欢。后来妹子拿了我所有的原图后，自己挑选了几张，自己修过重新发了朋友圈。对我是一份打击。 早上从起床开始到穿好衣服下楼准备洗漱心里都在想着这件事情，于是微信妹子，关于这件事情很坦诚的跟她聊了一下。 毕竟大家都很熟，妹子也很直白的表达了她的看法： 每个人观看照片的角度会不一样。女生嘛，还是希望自己在照片里看起来美美的，如果达不到自己的预期，即使景再美，也会放弃这张照片。 她觉得我比较注重照片的写实效果，但是不够关注人本身在照片中是否漂亮（比如脸型，身材）等。她说的问题，其实我自己已经意识到了。我跟她道了歉，表明最大的问题，还是在于没有尊重她对照片的看法，以及没有充分的沟通。 我觉得，人像摄影这种东西，当要公布在大众视野中时，便已经不再是摄影师私人的东西了，这份影像，关乎到被拍摄对象留给公众的印象，这一点，是必须明确的。 后来妹子也说了一些别的想法，觉得“我很勇敢，能接受真实的自己，但她尚无法坦然面对，过不了自己的心理障碍”，我能充分理解，毕竟，大部分人都是如此啊。 她跟我表达这个想法的时候我觉得挺难过，觉得因为我的摄影给她造成了这样一种消极的情绪，很是过意不去。但是非常感谢她的坦诚，让我在对她人尊重方面又上了一课，以及更加了解妹子们的心理诉求。 最后还是做一下总结，希望下一次做的更好： 事先能对拍摄场景有一定的了解，事前先有一个大体的构想 事先的沟通，了解被摄影对象的诉求 存储卡充足。（已经买了两张64GSD卡） 学会 “拍小拍瘦” 这样的基本技术 避免用长焦拍人 修图的顺序，目前我觉得应该是：先自己LR修一轮，给妹子看过，调整后确定色调。然后让妹子精选一定数量进行精修，明确妹子的修图诉求，交付给妹子。得到同意后对外发布。这里其实整个后期非常耗时，但好事总要多磨。 修皮肤和修脸型什么的需要再学习一下</description><pubDate>Thu, 31 Mar 2016 02:03:46 GMT</pubDate><category>thinking</category></item><item><title>手机修图傻白甜教程之 Snapseed</title><link>https://neekey.net/2016/03/28/%E6%89%8B%E6%9C%BA%E4%BF%AE%E5%9B%BE%E5%82%BB%E7%99%BD%E7%94%9C%E6%95%99%E7%A8%8B%E4%B9%8B-snapseed/</link><guid isPermaLink="true">https://neekey.net/2016/03/28/%E6%89%8B%E6%9C%BA%E4%BF%AE%E5%9B%BE%E5%82%BB%E7%99%BD%E7%94%9C%E6%95%99%E7%A8%8B%E4%B9%8B-snapseed/</guid><description>“喂喂喂！那位一边修图一边过马路的同学，先看着车啊！”</description><pubDate>Mon, 28 Mar 2016 02:33:13 GMT</pubDate><category>memory</category></item><item><title>读《甘地自传》——甘地印象</title><link>https://neekey.net/2016/03/26/%E8%AF%BB%E3%80%8A%E7%94%98%E5%9C%B0%E8%87%AA%E4%BC%A0%E3%80%8B-%E7%94%98%E5%9C%B0%E5%8D%B0%E8%B1%A1/</link><guid isPermaLink="true">https://neekey.net/2016/03/26/%E8%AF%BB%E3%80%8A%E7%94%98%E5%9C%B0%E8%87%AA%E4%BC%A0%E3%80%8B-%E7%94%98%E5%9C%B0%E5%8D%B0%E8%B1%A1/</guid><description>花了大概一周的时间读完了《甘地自传：我追求真理的过程》，颇有些感悟。</description><pubDate>Sat, 26 Mar 2016 06:07:23 GMT</pubDate><category>reading</category></item><item><title>2016-03 冲绳之旅</title><link>https://neekey.net/2016/03/16/2016-03-%E6%97%A5%E6%9C%AC%E5%86%B2%E7%BB%B3%E6%97%85%E8%A1%8C%E8%AE%B0%E5%BD%95/</link><guid isPermaLink="true">https://neekey.net/2016/03/16/2016-03-%E6%97%A5%E6%9C%AC%E5%86%B2%E7%BB%B3%E6%97%85%E8%A1%8C%E8%AE%B0%E5%BD%95/</guid><description>去日本冲绳的初始动机，是为了在离职公司前，尽可能多的办理一些国家的签证，日本的三年多次往返就是其中之一。而办理日本三年多次往返的要求之一是首站必须在冲绳或者东北三县有一晚的住宿，因此就在双十一期间买了去冲绳的机票。 冲绳作为一个海岛，其实更适合去的时间应该是夏天。去海滩，游泳，冲浪或者潜水。不过目的不同便不强求。 旅行记录这种东西向来没有好好写过，还是以时间线来展开，帮助回忆场景。</description><pubDate>Wed, 16 Mar 2016 03:25:29 GMT</pubDate><category>memory</category></item><item><title>理解 ul/ol 元素的 list-style-image</title><link>https://neekey.net/2016/02/29/%E7%90%86%E8%A7%A3-ulol-%E5%85%83%E7%B4%A0%E7%9A%84-list-style-image/</link><guid isPermaLink="true">https://neekey.net/2016/02/29/%E7%90%86%E8%A7%A3-ulol-%E5%85%83%E7%B4%A0%E7%9A%84-list-style-image/</guid><description>list-style-image元素可以为 ul 或者 ol 元素的列表项设置标记图案。配合这个属性的还有 list-style-position,可以用它来控制图案展示的位置。</description><pubDate>Mon, 29 Feb 2016 09:34:36 GMT</pubDate><category>coding</category></item><item><title>Minecraft 日志：下界传送门</title><link>https://neekey.net/2016/02/07/minecraft-%E6%97%A5%E5%BF%97%EF%BC%9A%E4%B8%8B%E7%95%8C%E4%BC%A0%E9%80%81%E9%97%A8/</link><guid isPermaLink="true">https://neekey.net/2016/02/07/minecraft-%E6%97%A5%E5%BF%97%EF%BC%9A%E4%B8%8B%E7%95%8C%E4%BC%A0%E9%80%81%E9%97%A8/</guid><description>我终于想到了如何达到蘑菇岛的办法。</description><pubDate>Sun, 07 Feb 2016 02:28:22 GMT</pubDate><category>gaming</category></item><item><title>Minecraft 日记：海难，喵星人和黑曜石</title><link>https://neekey.net/2016/02/06/minecraft-%E6%97%A5%E8%AE%B0%EF%BC%9A%E6%B5%B7%E9%9A%BE%EF%BC%8C%E5%96%B5%E6%98%9F%E4%BA%BA%E5%92%8C%E9%BB%91%E6%9B%9C%E7%9F%B3/</link><guid isPermaLink="true">https://neekey.net/2016/02/06/minecraft-%E6%97%A5%E8%AE%B0%EF%BC%9A%E6%B5%B7%E9%9A%BE%EF%BC%8C%E5%96%B5%E6%98%9F%E4%BA%BA%E5%92%8C%E9%BB%91%E6%9B%9C%E7%9F%B3/</guid><description>当意识到和喵星人一起去挖矿是个错误时，已为时已晚。</description><pubDate>Sat, 06 Feb 2016 02:38:25 GMT</pubDate><category>coding</category><category>gaming</category></item><item><title>Minecraft 日记：矿洞，远航和食人岛。</title><link>https://neekey.net/2016/02/04/minecraft-%E6%97%A5%E8%AE%B0%EF%BC%9A%E7%9F%BF%E6%B4%9E%EF%BC%8C%E8%BF%9C%E8%88%AA%E5%92%8C%E9%A3%9F%E4%BA%BA%E5%B2%9B%E3%80%82/</link><guid isPermaLink="true">https://neekey.net/2016/02/04/minecraft-%E6%97%A5%E8%AE%B0%EF%BC%9A%E7%9F%BF%E6%B4%9E%EF%BC%8C%E8%BF%9C%E8%88%AA%E5%92%8C%E9%A3%9F%E4%BA%BA%E5%B2%9B%E3%80%82/</guid><description>人的本性决定了，拍照留念这种事情，是不分虚拟还是现实的。</description><pubDate>Thu, 04 Feb 2016 01:27:35 GMT</pubDate><category>coding</category><category>gaming</category></item><item><title>Minecraft 日记：小麦小麦，还有绵羊和奶牛</title><link>https://neekey.net/2016/02/03/minecraft-%E6%97%A5%E8%AE%B0%EF%BC%9A%E5%B0%8F%E9%BA%A6%E5%B0%8F%E9%BA%A6%EF%BC%8C%E8%BF%98%E6%9C%89%E7%BB%B5%E7%BE%8A%E5%92%8C%E5%A5%B6%E7%89%9B/</link><guid isPermaLink="true">https://neekey.net/2016/02/03/minecraft-%E6%97%A5%E8%AE%B0%EF%BC%9A%E5%B0%8F%E9%BA%A6%E5%B0%8F%E9%BA%A6%EF%BC%8C%E8%BF%98%E6%9C%89%E7%BB%B5%E7%BE%8A%E5%92%8C%E5%A5%B6%E7%89%9B/</guid><description>透过Ginkgo的视角，我才看清自己的面目：原来是个如此黑乎乎皮糙肉厚的家伙。</description><pubDate>Wed, 03 Feb 2016 00:41:29 GMT</pubDate><category>gaming</category></item><item><title>科学设置路由上网定时，早睡早起</title><link>https://neekey.net/2016/02/03/%E7%A7%91%E5%AD%A6%E8%AE%BE%E7%BD%AE%E8%B7%AF%E7%94%B1%E4%B8%8A%E7%BD%91%E5%AE%9A%E6%97%B6%EF%BC%8C%E6%97%A9%E7%9D%A1%E6%97%A9%E8%B5%B7/</link><guid isPermaLink="true">https://neekey.net/2016/02/03/%E7%A7%91%E5%AD%A6%E8%AE%BE%E7%BD%AE%E8%B7%AF%E7%94%B1%E4%B8%8A%E7%BD%91%E5%AE%9A%E6%97%B6%EF%BC%8C%E6%97%A9%E7%9D%A1%E6%97%A9%E8%B5%B7/</guid><description>每个玩游戏或者刷剧到凌晨2-3点的小伙伴肯定会有那种痛心疾首的感觉：“明天我一定要11点前睡觉”，结果呢，呵呵。</description><pubDate>Tue, 02 Feb 2016 23:15:04 GMT</pubDate><category>coding</category></item><item><title>小白易学 Mac &amp;#038; iOS Shadowsocks 科学上网全攻略</title><link>https://neekey.net/2016/02/03/osx-ios9-shadowsocks/</link><guid isPermaLink="true">https://neekey.net/2016/02/03/osx-ios9-shadowsocks/</guid><description>费用 只是Mac科学上网：99/年 如果要Mac和iPhone一起科学上网：99/年 + 购买shadowrocket（一次性，18元）</description><pubDate>Tue, 02 Feb 2016 22:51:05 GMT</pubDate><category>coding</category></item><item><title>如何用阿里云ECS搭建Minecraft服务器</title><link>https://neekey.net/2016/02/01/%E5%A6%82%E4%BD%95%E7%94%A8%E9%98%BF%E9%87%8C%E4%BA%91ecs%E6%90%AD%E5%BB%BAminecraft%E6%9C%8D%E5%8A%A1%E5%99%A8/</link><guid isPermaLink="true">https://neekey.net/2016/02/01/%E5%A6%82%E4%BD%95%E7%94%A8%E9%98%BF%E9%87%8C%E4%BA%91ecs%E6%90%AD%E5%BB%BAminecraft%E6%9C%8D%E5%8A%A1%E5%99%A8/</guid><description>最近几天心血来潮，想要和小伙伴们一起玩一下Minecraft，看了下官网的价格还是感觉略贵，由于之前玩过其他小伙伴的私人服务器，就特别想自己也搭建一个。</description><pubDate>Mon, 01 Feb 2016 02:41:54 GMT</pubDate><category>coding</category></item><item><title>上海·陆家嘴</title><link>https://neekey.net/2016/01/30/%E4%B8%8A%E6%B5%B7%C2%B7%E9%99%86%E5%AE%B6%E5%98%B4/</link><guid isPermaLink="true">https://neekey.net/2016/01/30/%E4%B8%8A%E6%B5%B7%C2%B7%E9%99%86%E5%AE%B6%E5%98%B4/</guid><description>上海冬·陆家嘴</description><pubDate>Fri, 29 Jan 2016 23:56:34 GMT</pubDate><category>memory</category></item><item><title>冰+煤纪实摄影展观感</title><link>https://neekey.net/2016/01/30/%E5%86%B0%E7%85%A4%E7%BA%AA%E5%AE%9E%E6%91%84%E5%BD%B1%E5%B1%95%E8%A7%82%E6%84%9F/</link><guid isPermaLink="true">https://neekey.net/2016/01/30/%E5%86%B0%E7%85%A4%E7%BA%AA%E5%AE%9E%E6%91%84%E5%BD%B1%E5%B1%95%E8%A7%82%E6%84%9F/</guid><description>在上海闲逛，准备下午迟些返回杭州，四处转转。但是上海确实没有什么好去处，就在豆瓣的同城活动里面翻阅，正好最近对摄影有点激情，看到《冰+煤纪实摄影展》便临时决定午饭后去看看。</description><pubDate>Fri, 29 Jan 2016 13:41:06 GMT</pubDate><category>memory</category></item><item><title>关于赶火车的时间估算</title><link>https://neekey.net/2016/01/29/%E5%85%B3%E4%BA%8E%E8%B5%B6%E7%81%AB%E8%BD%A6%E7%9A%84%E6%97%B6%E9%97%B4%E4%BC%B0%E7%AE%97/</link><guid isPermaLink="true">https://neekey.net/2016/01/29/%E5%85%B3%E4%BA%8E%E8%B5%B6%E7%81%AB%E8%BD%A6%E7%9A%84%E6%97%B6%E9%97%B4%E4%BC%B0%E7%AE%97/</guid><description>一般火车在发车前的3分钟左右停止检票，因此最后到达（这是指到达检票口）时间需要提前3分钟。考虑到各种途径到达车站后的步行，检票，找站台等可能也需要10分钟以及出发时的打车等待，装备打点可能也需要10分钟。</description><pubDate>Thu, 28 Jan 2016 23:14:06 GMT</pubDate><category>coding</category><category>thinking</category></item><item><title>我如何看待微信“红包照片”这次的变现尝试</title><link>https://neekey.net/2016/01/26/%E6%88%91%E5%A6%82%E4%BD%95%E7%9C%8B%E5%BE%85%E5%BE%AE%E4%BF%A1%E7%BA%A2%E5%8C%85%E7%85%A7%E7%89%87%E8%BF%99%E6%AC%A1%E7%9A%84%E5%8F%98%E7%8E%B0%E5%B0%9D%E8%AF%95/</link><guid isPermaLink="true">https://neekey.net/2016/01/26/%E6%88%91%E5%A6%82%E4%BD%95%E7%9C%8B%E5%BE%85%E5%BE%AE%E4%BF%A1%E7%BA%A2%E5%8C%85%E7%85%A7%E7%89%87%E8%BF%99%E6%AC%A1%E7%9A%84%E5%8F%98%E7%8E%B0%E5%B0%9D%E8%AF%95/</guid><pubDate>Tue, 26 Jan 2016 10:16:15 GMT</pubDate><category>coding</category><category>thinking</category></item><item><title>杭州冬·湘湖</title><link>https://neekey.net/2016/01/25/%E6%9D%AD%E5%B7%9E%E5%86%AC%C2%B7%E6%B9%98%E6%B9%96/</link><guid isPermaLink="true">https://neekey.net/2016/01/25/%E6%9D%AD%E5%B7%9E%E5%86%AC%C2%B7%E6%B9%98%E6%B9%96/</guid><description>杭州冬·湘湖</description><pubDate>Mon, 25 Jan 2016 00:05:48 GMT</pubDate><category>memory</category></item><item><title>杭州冬日雪山</title><link>https://neekey.net/2016/01/24/%E6%9D%AD%E5%B7%9E%E5%86%AC%E6%97%A5%E9%9B%AA%E5%B1%B1/</link><guid isPermaLink="true">https://neekey.net/2016/01/24/%E6%9D%AD%E5%B7%9E%E5%86%AC%E6%97%A5%E9%9B%AA%E5%B1%B1/</guid><description>杭州雪，老和山-北高峰-法喜寺。</description><pubDate>Sun, 24 Jan 2016 12:16:45 GMT</pubDate><category>memory</category></item></channel></rss>