{"id":670,"date":"2012-08-21T12:53:25","date_gmt":"2012-08-21T12:53:25","guid":{"rendered":"http:\/\/naich.net\/wordpress\/?p=670"},"modified":"2012-10-16T08:16:44","modified_gmt":"2012-10-16T08:16:44","slug":"teapot-wibble-again","status":"publish","type":"post","link":"https:\/\/naich.net\/wordpress\/index.php\/teapot-wibble-again\/","title":{"rendered":"Memory sticks and torrents"},"content":{"rendered":"<p><a title=\"Torrents of Pi\" href=\"http:\/\/naich.net\/wordpress\/?p=574\">Continued from here.<\/a><\/p>\n<p><a title=\"Yummy Pi\" href=\"http:\/\/naich.net\/wordpress\/?p=435\">First page here.<\/a><\/p>\n<h3>9. Thanks for the memories<\/h3>\n<p>For this chapter you&#8217;ll need a memory stick or a pre-formatted external hard drive with a USB connection.\u00c2\u00a0 As we are going to be putting videos on it, the larger the better.\u00c2\u00a0 Got one?\u00c2\u00a0 Good.\u00c2\u00a0 Stuff it up your Pi&#8217;s USB port.\u00c2\u00a0 There should be whirrings and flashings (subject to lights or motors being present) as something happens. If we were using Windows, the external storage would appear as a drive letter.\u00c2\u00a0 Linux, however, lets you choose where to make it appear. \u00c2\u00a0Linux has a single directory tree under which external storage and internal storage is placed, or &#8220;mounted&#8221; in Linux terminology.\u00c2\u00a0 Remember when I said to change the &#8220;Download to: &#8221; directory setting in Transmission to \/mnt\/downloads&#8221;?\u00c2\u00a0 That&#8217;s where we will be mounting your external storage.\u00c2\u00a0 You might have questions at this point, but let&#8217;s get your external storage mounted before we come to them. A while ago I was blethering on about how bad it was to be root and how it was a good idea that you couldn&#8217;t log in as root.\u00c2\u00a0 Yes, well, I was probably slightly exaggerating to reinforce a point.\u00c2\u00a0 Sometimes you have to do lots of stuff as root and all that sudoing starts getting boring.\u00c2\u00a0 You can make yourself root until you exit, by doing <strong><tt>sudo -s<\/tt><\/strong>. \u00c2\u00a0Try it:<\/p>\n<blockquote>\n<pre>naich@raspberrypi ~ $ sudo -s\r\nroot@raspberrypi:\/home\/naich#<\/pre>\n<\/blockquote>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignright\" title=\"I'm looking forward to completing your training. In time you will call *me* master. \" src=\"http:\/\/upload.wikimedia.org\/wikipedia\/en\/thumb\/0\/0a\/Palpatine_ROTJ.jpg\/200px-Palpatine_ROTJ.jpg\" alt=\"\" width=\"165\" height=\"179\" \/>Notice a few things here &#8211; the &#8220;$&#8221; has changed to &#8220;&#8216;#&#8221; to indicate you are now root, the &#8220;~&#8221; has changed to &#8220;\/home\/your_name because it is no longer your home directory and you are now &#8220;root@raspberrypi&#8221;.\u00c2\u00a0 You now have absolute power over the entire operating system.\u00c2\u00a0 Let it go to your head for a while, cackle like <a href=\"http:\/\/en.wikipedia.org\/wiki\/Palpatine\">Emperor Palpatine<\/a> and let the hate flow through you. I like to do this occasionally when I become root and I find it best get it out of my system before I do anything else.\u00c2\u00a0 Back to normal again?\u00c2\u00a0 Good. First we need to create the directory to mount the external storage on.\u00c2\u00a0 The mount location has to already exist in order to mount something on it.\u00c2\u00a0 Type in the commands in <strong>bold<\/strong>:<\/p>\n<blockquote>\n<pre>root@raspberrypi:\/home\/naich# <strong>cd \/mnt<\/strong>\r\nroot@raspberrypi:\/mnt# <strong>ls -l<\/strong>\r\ntotal 0\r\nroot@raspberrypi:\/mnt# <strong>mkdir downloads<\/strong>\r\nroot@raspberrypi:\/mnt# <strong>ls -l<\/strong>\r\ntotal 4\r\ndrwxr-xr-x 2 root <em>root<\/em> 4096 Aug 21 13:24 downloads\r\nroot@raspberrypi:\/mnt#<\/pre>\n<\/blockquote>\n<p>You change your working directory to \/mnt (this is traditionally where you mount things), see what is already there (nothing), create a directory called &#8220;downloads&#8221; with &#8220;mkdir&#8221; and then you list it. Quick aside here &#8211; see that &#8220;drwxr-xr-x&#8221; bit?\u00c2\u00a0 That shows you what sort of file it is (&#8220;d&#8221; means directory) and the permissions for it, showing who is allowed to do what to it.\u00c2\u00a0 <a href=\"http:\/\/www.zzee.com\/solutions\/linux-permissions.shtml\">Read the this page up to and including section 2.1.1<\/a>to understand permissions or try and battle through my very short explanation here:<\/p>\n<blockquote><p>There are 3 lots of &#8220;rwx&#8221;s, the first for the owner of the file, the second for the specified group (it is the second &#8220;root&#8221; in the illustration above, shown here in italics) and the third is for &#8220;others&#8221;, i.e. everyone else who is not the owner or a member of the group.\u00c2\u00a0 In each &#8220;rwx&#8221;, &#8220;r&#8221; means &#8220;read&#8221;, &#8220;w&#8221; means &#8220;write&#8221; and &#8220;x&#8221; means &#8220;execute&#8221; if it is a program or &#8220;enter&#8221; if it is a directory.\u00c2\u00a0 A dash (&#8220;-&#8220;) means a lack of permission for that function, so in the above example, the first 3 letters after &#8220;d&#8221; (&#8220;rwx&#8221;) mean the owner (root) can &#8220;r&#8221;ead, &#8220;w&#8221;rite and &#8220;x&#8221;enter the directory.\u00c2\u00a0 A member of the &#8220;root&#8221; group (the next 3 letters) can &#8220;r&#8221;ead and &#8220;x&#8221;enter the directory but not &#8220;w&#8221;rite any files to it, as the &#8220;w&#8221; is missing.\u00c2\u00a0 The same &#8220;r-x&#8221; permissions apply to everyone else, as shown in the last 3 letters.<\/p><\/blockquote>\n<p>Now we need to find the external storage. \u00c2\u00a0The Linux kernal (the core of the operating system) will have interrogated your external storage to find out what it was when you plugged it in, and then set it up as a <a href=\"http:\/\/en.wikipedia.org\/wiki\/Device_file#Block_devices\">block device<\/a>, making it available in the \/dev directory as if it were a file.\u00c2\u00a0 As it is, it is an interface that you can read and write to it but not in any way that is useful to you.\u00c2\u00a0 It is now up to you to mount that block device on the filesystem so you can treat it as a branch on the directory tree.\u00c2\u00a0 Have a look in \/dev and you&#8217;ll see a whole load of files that are interfaces to devices.\u00c2\u00a0 One of those files is your external storage, but which one?\u00c2\u00a0 There are a few ways to find it, but the easiest is with the command <strong><tt>fdisk -l<\/tt><\/strong>:<\/p>\n<blockquote>\n<pre>root@raspberrypi:\/mnt# fdisk -l\r\n\r\nDisk \/dev\/mmcblk0: 3965 MB, 3965190144 bytes\r\n4 heads, 16 sectors\/track, 121008 cylinders, total 7744512 sectors\r\nUnits = sectors of 1 * 512 = 512 bytes\r\nSector size (logical\/physical): 512 bytes \/ 512 bytes\r\nI\/O size (minimum\/optimal): 512 bytes \/ 512 bytes\r\nDisk identifier: 0x000714e9\r\n\r\n\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Device Boot\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Start\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 End\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Blocks\u00c2\u00a0\u00c2\u00a0 Id\u00c2\u00a0 System\r\n\/dev\/mmcblk0p1\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 8192\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 122879\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 57344\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 c\u00c2\u00a0 W95 FAT32 (LBA)\r\n\/dev\/mmcblk0p2\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 122880\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 7744511\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 3810816\u00c2\u00a0\u00c2\u00a0 83\u00c2\u00a0 Linux\r\n\r\nDisk \/dev\/sda: 8019 MB, 8019509248 bytes\r\n20 heads, 16 sectors\/track, 48947 cylinders, total 15663104 sectors\r\nUnits = sectors of 1 * 512 = 512 bytes\r\nSector size (logical\/physical): 512 bytes \/ 512 bytes\r\nI\/O size (minimum\/optimal): 512 bytes \/ 512 bytes\r\nDisk identifier: 0x665e2cdf\r\n\r\n\u00c2\u00a0\u00c2\u00a0 Device Boot\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Start\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 End\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 Blocks\u00c2\u00a0\u00c2\u00a0 Id\u00c2\u00a0 System\r\n\/dev\/sda1\u00c2\u00a0\u00c2\u00a0 *\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 80\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 15663103\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 7831512\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 b\u00c2\u00a0 W95 FAT32\r\nroot@raspberrypi:\/mnt#<\/pre>\n<\/blockquote>\n<p>There&#8217;s a lot of information there, but the important bits are where it says &#8220;Disk \/dev\/&#8230;&#8221;, showing the size of the hardware and the column under &#8220;Device&#8221; which shows the names of the block devices each partition has been assigned. &#8220;Disk \/dev\/mmcblk0&#8221; is the SD card &#8211; see how it is split into two partitions, one large (3810816 blocks, each block being 1K making it about 3.8GB) and one small (57344 blocks)?\u00c2\u00a0 The other &#8220;Disk&#8221; (it will probably be &#8220;\/dev\/sda&#8221;) is your external storage, with its single partition appearing as &#8220;\/dev\/sda&lt;number&gt;&#8221;.\u00c2\u00a0 In my case it&#8217;s &#8220;sda1 &#8220;and 8019 MB big &#8211; it&#8217;s an 8GB memory stick with its partition having 7831512 1K blocks.\u00c2\u00a0 Yours might have a different number &#8211; &#8220;sda4&#8221;, for example, in which case use that rather than &#8220;sda1&#8221;.\u00c2\u00a0 Now let&#8217;s mount the \/dev\/sda1 device to \/mnt\/downloads with <strong><tt>mount \/dev\/sda1 \/mnt\/downloads<\/tt><\/strong>:<\/p>\n<blockquote>\n<pre>root@raspberrypi:\/mnt# mount \/dev\/sda1 \/mnt\/downloads\r\nroot@raspberrypi:\/mnt# <strong>ls -l downloads<\/strong>\r\ntotal 188\r\ndrwxr-xr-x 3 root root\u00c2\u00a0\u00c2\u00a0 4096 Jul 12 17:07 Acad Course\r\n-rwxr-xr-x 1 root root 181574 Jul 12 16:44 Chamber Assembly.wmv\r\ndrwxr-xr-x 2 root root\u00c2\u00a0\u00c2\u00a0 4096 Aug 15 19:31 vids\r\nroot@raspberrypi:\/mnt#<\/pre>\n<\/blockquote>\n<p>The contents of the memory stick may vary.\u00c2\u00a0 Note how the owner and group are &#8220;root&#8221;?\u00c2\u00a0 That is because it was root who mounted the device.\u00c2\u00a0 Now we know it works, we can make it so the drive is automatically mounted at boot time,\u00c2\u00a0writeable\u00c2\u00a0by the user &#8220;debian-transmission&#8221;, who runs the transmission-daemon program. We need to find out his user ID and group ID though &#8211; type <strong><tt>id -u debian-transmission\u00c2\u00a0<\/tt><\/strong>and make a note of the user ID:<\/p>\n<blockquote>\n<pre>root@raspberrypi:\/mnt# id -u debian-transmission\r\n106\r\nroot@raspberrypi:\/mnt#<\/pre>\n<\/blockquote>\n<p>It&#8217;s 106 for me. \u00c2\u00a0Then do the same for the group ID with <strong><tt>id -g debian-transmission<\/tt><\/strong> and make a note of that number &#8211; 109 for me. We need to unmount it before we remount it for real.\u00c2\u00a0 This is the equivalent of safely removing it &#8211; unwritten data will be flushed and no more can be sent to it.\u00c2\u00a0 The command is <strong><tt>umount \/mnt\/downloads<\/tt><\/strong> &#8211; that&#8217;s <em>umount<\/em>, not u<strong>n<\/strong>mount. \u00c2\u00a0If you are doing this as a normal user\u00c2\u00a0later on, remember to sudo the command.<\/p>\n<blockquote>\n<pre>root@raspberrypi:\/mnt# umount \/mnt\/downloads\/\r\nroot@raspberrypi:\/mnt# <strong>ls -l downloads\/<\/strong>\r\ntotal 0\r\nroot@raspberrypi:\/mnt#<\/pre>\n<\/blockquote>\n<p>Never remove a storage device without unmounting it first. \u00c2\u00a0If you do, a boxing glove on a spring will shoot out of the top of your Pi and punch you in the nose. \u00c2\u00a0Well, it should. \u00c2\u00a0You can lose data and corrupt the file system by yanking it out without unmounting. \u00c2\u00a0You might also be wondering what would happen to anything that was already in the \/mnt\/downloads directory when your device was mounted.\u00c2\u00a0 The contents are preserved but are not accessible while the device is mounted over the top of them.<\/p>\n<p>Now let&#8217;s automate the mounting of the external storage.\u00c2\u00a0 At boot time the file \/etc\/fstab is read to see what needs to be mounted.\u00c2\u00a0 Edit that file now with <strong><tt>nano \/etc\/fstab\u00c2\u00a0<\/tt><\/strong>and you will see this:<\/p>\n<blockquote>\n<pre>proc\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 \/proc\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 proc\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 defaults\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0\r\n\/dev\/mmcblk0p1\u00c2\u00a0 \/boot\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 vfat\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 defaults\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0\r\n\/dev\/mmcblk0p2\u00c2\u00a0 \/\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 ext4\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 defaults,noatime\u00c2\u00a0 0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0\u00c2\u00a0 0\r\n# a swapfile is not a swap partition, so no using swapon|off from here on, use $<\/pre>\n<\/blockquote>\n<p>Any line starting with &#8220;#&#8221; is a comment for the benefit of humans and ignored by the computer.\u00c2\u00a0 This goes for most configuration files.\u00c2\u00a0 Have a guess at what the first two columns are.\u00c2\u00a0 If you are really keen, try reading the man page for fstab with <strong><tt>man fstab<\/tt><\/strong>. The first is the block device name, the second is where it is mounted, the third is what sort of filesystem it is and the fourth is options.\u00c2\u00a0\u00c2\u00a0 The other two are used for maintenance and can be left out or set to 0.\u00c2\u00a0 You will want to add this line at the end in order to automatically mount your external storage:<\/p>\n<blockquote>\n<pre>\/dev\/sda1       \/mnt\/downloads  auto    defaults,uid=106,gid=109  0       0<\/pre>\n<\/blockquote>\n<p>Replace the &#8220;uid=106&#8221; and &#8220;gid=109&#8221; with the numbers you found earlier for user ID and group ID.\u00c2\u00a0 Save and exit with CTRL-X and then answering &#8220;Y&#8221; and hit return to save it with the same file name. Now mount the drive with <strong><tt>mount -a<\/tt><\/strong>. This mounts all the devices in \/etc\/fstab in the same manner as if it was booting up. Finally, check everything is hunky-dory:<\/p>\n<blockquote>\n<pre>root@raspberrypi:\/mnt#\u00c2\u00a0mount -a\r\nroot@raspberrypi:\/mnt# <strong>ls -l <\/strong>total 4\r\ndrwxr-xr-x 4 debian-transmission debian-transmission 4096 Jan\u00c2\u00a0 1\u00c2\u00a0 1970 downloads<\/pre>\n<\/blockquote>\n<p>Smashing.\u00c2\u00a0 I should also point out that Linux distributions like Ubuntu do all this automatically, popping up a file manager window showing the contents of the memory stick as soon as it is plugged in.\u00c2\u00a0 But we are operating at a lower level than that.<\/p>\n<p>Now stop being root by tying <strong>exit<\/strong>:<\/p>\n<blockquote>\n<pre>root@raspberrypi:\/mnt# exit\r\nexit\r\nnaich@raspberrypi ~ $<\/pre>\n<\/blockquote>\n<p>Now we are back to normal.\u00c2\u00a0 You can stop cackling.\u00c2\u00a0 Your Pi is set up to mount the memory stick whenever it boots, so you don&#8217;t need to do anything else other than remember to <strong><tt>sudo umount \/mnt\/downloads<\/tt><\/strong> if you take the stick out and <strong><tt>sudo mount -a<\/tt><\/strong> when you put it back in.<\/p>\n<h3>10. Torrent something!<\/h3>\n<p>Now open up the Transmission web interface by pointing your browser at http:\/\/your_pi_ip_address:9091 and click on the &#8220;Open&#8221; icon. \u00c2\u00a0Put this URL for a perfectly legal video torent in it:<\/p>\n<blockquote><p>http:\/\/www.frostclick.com\/torrents\/video\/animation\/Big_Buck_Bunny_1080p_surround_frostclick.com_frostwire.com.torrent<\/p><\/blockquote>\n<p>Put it in the &#8220;URL&#8221; box and click open.\u00c2\u00a0 <a href=\"http:\/\/wiki.vuze.com\/w\/Magnet_link\">Magnet links<\/a> also work in this box. If you have found a Magnet link from a perfectly respectable web site, right click and choose &#8220;copy link location&#8221; and paste it into the &#8220;URL&#8221; box in Transmission.\u00c2\u00a0 If you have downloaded the .torrent file, upload it to Transmission.<\/p>\n<p>You can check on the status of the torrent by clicking on it and then clicking the &#8220;i&#8221; icon for more info on it. \u00c2\u00a0I got a &#8220;unregistered torrent&#8221; error, but DHT found enough peers to get it all.<\/p>\n<p>Sometimes, with a popular torrent with lots of fast peers, the poor little Pi can get a bit overwhelmed with all the traffic hammering its ports.\u00c2\u00a0 It&#8217;s like a <a href=\"http:\/\/en.wikipedia.org\/wiki\/Dos_attack\">DOS attack<\/a> and can bring down the Pi if it is bad enough.\u00c2\u00a0 So I like to limit the number of connections by going to the web panel, opening up settings by clicking on the spanner, going to the &#8220;Peers&#8221; tab and setting a limit of 20 peers per torrent and 100 peers overall.\u00c2\u00a0 I also set speed limits of 400kB\/s for up and downloads in the &#8220;Speed&#8221; tab.<\/p>\n<p>If you are having trouble connecting to any peers, make sure that &#8220;Use port forwarding from my router&#8221; is checked in &#8220;Network&#8221; tab of the settings.\u00c2\u00a0 <a href=\"https:\/\/trac.transmissionbt.com\/wiki\/PortForwardingGuide\">This page gives some more info<\/a> about setting up your router.\u00c2\u00a0 If your internet connection is fast you should have a high definition video file on your memory stick before you know it.\u00c2\u00a0 I&#8217;ll leave you to find out more about how Transmission works by the age-old method of clicking things to see what happens.<\/p>\n<p>Most tellies these days have USB ports on them which you can lob a stick into.\u00c2\u00a0 If yours does, unmount and lob your stick.\u00c2\u00a0 Our telly also has an ethernet port on it, for streaming video from a uPNP media server.\u00c2\u00a0 Wouldn&#8217;t it be good to have a uPNP video server on the Pi?\u00c2\u00a0 I think we could probably manage that in the next chapter.<\/p>\n<p><a title=\"A streaming pile of Pi\" href=\"http:\/\/naich.net\/wordpress\/?p=641\">Continued here&#8230;<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Continued from here. First page here. 9. Thanks for the memories For this chapter you&#8217;ll need a memory stick or a pre-formatted external hard drive with a USB connection.\u00c2\u00a0 As we are going to be putting videos on it, the larger the better.\u00c2\u00a0 Got one?\u00c2\u00a0 Good.\u00c2\u00a0 Stuff it up your Pi&#8217;s USB port.\u00c2\u00a0 There should [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[74,102],"tags":[],"class_list":["post-670","post","type-post","status-publish","format-standard","hentry","category-geek","category-raspberry-pi"],"_links":{"self":[{"href":"https:\/\/naich.net\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/670","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/naich.net\/wordpress\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/naich.net\/wordpress\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/naich.net\/wordpress\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/naich.net\/wordpress\/index.php\/wp-json\/wp\/v2\/comments?post=670"}],"version-history":[{"count":66,"href":"https:\/\/naich.net\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/670\/revisions"}],"predecessor-version":[{"id":720,"href":"https:\/\/naich.net\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/670\/revisions\/720"}],"wp:attachment":[{"href":"https:\/\/naich.net\/wordpress\/index.php\/wp-json\/wp\/v2\/media?parent=670"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/naich.net\/wordpress\/index.php\/wp-json\/wp\/v2\/categories?post=670"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/naich.net\/wordpress\/index.php\/wp-json\/wp\/v2\/tags?post=670"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}