真是风水轮流转,兜兜转转,大家又用回WordPress?
-
‘rsync’ command source and destination explained
rsync
command is super useful because it could incrementally sync files between locations without the overhead of compressing and transferring. There are heaps of tutorials about how to use it, how very few cover the point that how to sync two folders, which I believe is the most common use.I’d run
rsync -avzP dir1 dir2
, but unfortunately, this syncs dir1 under dir2. Some people would then runrsync -avzP dir1 dir2-parent
. This could work, but it’s particularly dangerous if you add the--delete
option. So how to sync the content of the two folders.If you run
man rsync
– not many people would use nowadays, you’d get the very import/useful instructions:A trailing slash on the source changes this behavior to avoid creating an
additional directory level at the destination. You can think of a trailing /
on a source as meaning “copy the contents of this directory” as opposed to
“copy the directory by name”, but in both cases the attributes of the
containing directory are transferred to the containing directory on the
destination. In other words, each of the following commands copies the files
in the same way, including their setting of the attributes of /dest/foo:rsync -av /src/foo /dest
rsync -av /src/foo/ /dest/fooThe instructions are there like forever, right? But the first command is tricky where you could override the destination directory with the content of foo, so I’d recommend you to always use the second way:
rsync -avP dir1/ dir2
And it works the same way for remote directories.
-
Role transition to a Frontend Developer
There are only two hard problems in Computer Science: cache invalidation and naming things.
Phil KarltonI recently started a frontend role at Automattic. Just in case any of you still don’t know the company, it’s the company behind WordPress.com, Tumblr, Simplenote etc.
Developers at A8C are all kinda full stack engineers. I was mostly a backend dev in my previous careers, but as fate would have it, I ended up in a front team. A big change I would say. I mean I have done a lot of frontend stuff before, but never served as a frontend developer, meaning I know how things work, but I don’t know how to make it perfect. So I decide to start blogging again, making notes while learning and develop all the skills required.
Found a interesting diagram about the tech stack of a frontend dev nowadays.
Credits: Frontend Master I’ll explore the nodes on the diagram bits by bits and concentrate mostly on CSS and Reactjs where I’m not 100% confident.
-
Add permanent route for VPN connections on Windows 10
Add-VpnConnectionRoute -ConnectionName “YPC” -DestinationPrefix “10.1.1.0/24” -PassThru
-
Fix! Unable to Remove bluetooth devices/mouse/keyboard/speaker issue for Windows 10
This is the only working solution for me. Enjoy.
My symptoms:
– Previously working bluetooth speaker (UE BOOM 2 in my case) stops connecting
– Windows 10 ‘Bluetooth and other devices’ menu shows the device as Paired
– Pressing connect makes it attempt to connect but fails then it goes back to Paired
– Remove device hides the device from the menu, but as soon as you turn bluetooth on and off, or restart the computer, the device comes back
– You pull your hair out.Solution that worked for me after much, much unsuccessful internet trawling and one system restore:
– Download this 7 year old command line bluetooth toolset: Bluetooth command line tools – work with bluetooth from the command line
– Install it, make sure you enable the option to “Add Bluetooth Command Line Tools directory to path”
– Open Powershell
– Put your device that isn’t working properly into pairing mode
WARNING: THE FOLLOWING COMMAND WILL UNPAIR ALL BLUETOOTH DEVICES
– type in “btpair -u”
– Boom, all of a sudden Windows asks me if I want to allow pairing to my device that isn’t working
– Hit yes, successfully connected again
– Cry tears of joyGod I hope that helps someone else.
Credits: xzion .
-
Example of Sending SMS in PHP Using AWS SNS
$client = AWS::createClient('Sns'); $sms = [ 'Message' => 'sms_content', 'PhoneNumber' => 'sms_recipient', 'MessageAttributes' => [ 'AWS.SNS.SMS.SenderID' => [ 'DataType' => 'String', 'StringValue' => 'AD' ], 'AWS.SNS.SMS.SMSType' => [ 'DataType' => 'String', 'StringValue' => 'Transactional' ], ] ]; $result = $client->publish($sms);
-
[CI] Bulb Switcher
There are n bulbs that are initially off. You first turn on all the bulbs. Then, you turn off every second bulb. On the third round, you toggle every third bulb (turning on if it’s off or turning off if it’s on). For the nth round, you only toggle the last bulb. Find how many bulbs are on after n rounds.
It’s quite a interesting problem and more like a math problem than a coding one. The direct solution is do the swith round by round and we can get the result at the final round. The time complexity of the direct solution is O(n2). The example code is as follows,
public int bulbSwitch(int n) { int[] lights = new int[n]; int cnt = 0; int i = 0; // initailize the array for (i = 0; i < n; i++) { lights[i] = 0; } // do the round toggle for (i = 0; i < n; i++) { for (int j = i; j < n; j += i + 1) { lights[j] = lights[j] == 0 ? 1 : 0; } } // get the result for (i = 0; i < n; i++) { cnt += lights[i]; } return cnt; }
Seems like a perfect answer which definitely is not. When I submitted the above code on LeetCode OJ, the platform threw out an error of RUNNING TIME OUT. So it’s time to get the code optimized.
As you can see, each one of the bulb is turned on or off for n times which is the number of divisors. But still this cannot solve our problem for the time complexity is O(n2) too! What about printing the result to see whether there is a pattern? Let do it.
when n=40, the result is 1001000010000001000000001000000000010000 . And when n=60, the result is 100100001000000100000000100000000001000000000000100000000000 .
What do you see, guys? Yes, the mumber of each group which has only one 1 is an Arithmetic sequence. So we can get the final result without any toggling rounds. A half but passed solution is as follows,public int bulbSwitch(int n) { int cnt = 0; for (int i = 3; n > 0; i += 2) { n -= i; cnt++; } return cnt; }
That’s it.
The time complexity of the above code is O(n) and the code can pass the OJ’s test. But is this the most optimized one? No, of course. If you know more maths, the above code can be optimized to the time complexity of O(1) which means there is some formula to get the final result. Can you figure it out, buddy?
By the way, the Ultimate answer is SQRT(n).
source page: https://leetcode.com/problems/bulb-switcher/