It took me a little time to figure ot how to draw a simple diamond using Xcode 16.0 and Swift 5. The trouble I ran into was the lines connecting the start and end point were not closing. I could fudge it a little by increasing the length of the start and end lines – BUT that wouldn’t really work because with width of the stroke changes the required fudge-factor.
The solution to the problem is calling closeSubpath() on your path variable to format the start/end match points properly.
Now, you wouldn’t see this problem if you were coding with fill or stroking in a different fashion than using .stroke or .strokeBorder as I did. If you were just filling then you don’t see the stroke lines. Also stroke works perfect with a 1 pixel line without calling closeSubpath(). It’s when the. line gets to be about 4 pixels wide that it becomes visible. To use those two methods, Diamond needed to conform to InsettableShape, and thus implement: inset(by amount: CGFloat) -> some InsettableShape
You control the shape of the rendered diamond by placing it into a container and it will fit the size.
//
//
// Diamond.swift
//
import SwiftUI
import CoreGraphics
// -------------------------------------------------------------------------
// We make diamond InsetableShape and add func required by protocol: inset()
// then we can use stroke on shape and get an outline
// -------------------------------------------------------------------------
struct Diamond: InsettableShape {
var insetAmount = 0.0
func inset(by amount: CGFloat) -> some InsettableShape {
var diamond = self
diamond.insetAmount += amount
return diamond
}
func path(in rect: CGRect) -> Path {
// draws counter clockwise from 3 o'clock
let start0 = CGPoint(x: rect.maxX - insetAmount, y: rect.midY)
// 3 o'clock to 12 o'clock
let end0 = CGPoint(x: rect.midX, y: rect.maxY - insetAmount)
// 12 o'clock to 9 o'clock
let end1 = CGPoint(x: rect.minX + insetAmount, y: rect.midY)
// 9 o'clock to 6 o'clock
let end2 = CGPoint(x: rect.midX, y: rect.minY + insetAmount)
// 6 o'clock to 3 o'clock
let end3 = CGPoint(x: rect.maxX - insetAmount, y: rect.midY)
var p = Path()
p.move(to: start0)
p.addLines([start0, end0, end1, end2, end3])
// complete drawing the diamond by applying
// closeSubpath - otherwise joints won't fill
// in between start point and end point
p.closeSubpath()
return p
}
}
Step 0 – Install the Briffy Dashboard
The first thing you should do is install the briffy dashboard. It functions so much better that the one that comes with the miner (and can be reverted if you like the junk one that came with it). The dashboard also fixes a big security hole. Get the dashboard here: Pisces P100 Briffy Dashboard. The briffy dashboard is simple to install. Note: The script takes a little time to install, several minutes, be patient. When the install completes on your Pisces Miner you’ll have a screen full of the commands used to install the new briffy dashboard, turn off the old dashboard, create an admin user, and turn on ssh on the Pisces so you can log in and get a command prompt. This dashboard is now the official Pisces Dashboard.
Pisces Disk is Full
When the disk is full on your Pisces Miner it’s because the blockchain has used up all the freespace. The fix for a Pisces Miner full disk is to clear the Helium Blockchain and do a blockchain fast sync. Lucky for you Moorphlo came up with a script to take care of this, made it easy to install and shared it. The Pisces resync script will do all the dirty work for you and has an automatic cron job that watches disk space and takes care of this while you sleep. Find the Pisces Miner resync.sh script here: moophlo pisces-miner-scripts resync.sh
Pisces Mining Troubleshooting Guide
The Pisces P100 Troubleshooting Guide is full of helpful information to guide you through getting the Pisces miner working.
Pisces P100 Hotpost Troubleshooting Guide
‘Fast Sync’ – Getting Blockchain up to Height
Syncing is the process the miner uses to catch up with the current block chain. The ‘Height’ is the current level, and the ‘Miner Height’ and ‘Live Height’ values ought to be close. My current status is the dashboard shows:
Fully Synced
Miner Height: 1243502
Live Height: 1243498
I had trouble with my miner not syncing for the first 5 days. In the end what worked for me was to use the dashboard tools to ‘stop mining’ then used ‘fast sync’. Withing 30 minutes the ‘fast sync’ had completed and in 2 hours I was caught up in blockchain live height (2 days later though, the helium miner still shows syncing, but dashboard says ok, Another tool to check status on is Hotspotty says ok). Word on the streets is the helium explorer is slow to update so we will see if it updates soon.
Logs, Logs, Logs
One of the struggles with the whole mining experience is there is little summary information to guide one through the maze. The logs are full of all kinds of details that makes it difficult to wade through. Here is a log analyzer that is helpful. If you installed the dashboard then php7.3 is installed already. You can check that in ssh at command line with by typing php -v, and you should get version information. Inigoflores Helium Miner Log Analyzer
Getting Help on Discord
There is a help channel on Discord. Discord was developed for gamers and so is ‘different’. It’s also not the easiest place to use but is full of lots of your friends helping each other. To get there follow this invite: Pisces P100 Hotspot Help on Discord
If you look at the bottom of the page where you can type a messages you’ll see it says: You don’t have permission to send messages in this channel.
This is in the gaming nature of Discord and you have to solve the puzzle. The solution is that need to take one action in order to be able to post messages. Take a look to the left and you’ll see a channel called ‘# get-p100-role‘, click that and you’ll see a single message that says something about ‘reacting to the message’ At the bottom is a green react icon. Click it and you’ll see the number increase. Once you’ve survived that challenge you can post messages. But read first, as your question has probably already been asked. It’s easier to use Discord App on computer than on phone or the web. So get the app for your computer.
Pisces Support on Discord
Also on Discord is the official Pisces Support channel. If you followed the link above to Discord than you should see this channel in the sidebar.
Pisces SAW Filters
The Lora module on Pisces Miners before V3 were did not have SAW filters installed. Those with V3 Lora modules do not need the SAW filter as it’s built in. V1 modules did not have a shiny metal cover, V2 and V3 have covers with the version number printed on them below the serial number. Official Pisces Announcement on Twitter
SAW Filters are devices that removed extraneous signals outside the range of the Lora range for your locale. In EU Lora uses 868mhz (865mhz-870mhz). in US Lora uses 915Mhz (902mhz-928mhz), others should look this up. The SAW filter essentially blocks reception of signals outside the Lora band. This comes as a cost, and the SAW filter reduces overall reception by 2-3db. There is a higher cost filter that works with less signal loss but at a price. The Cavity filter has a signal loss of only about 0.5db but costs with shipping are on the order of $100USD vs $25USD for the SAW Filter. Commercial industries use the Cavity filter because of their low loss.
One thing point of consideration is whether or not you really need a SAW or Cavity filter in the first place. What these filters are excluding are nearby transmissions. So if you have lots of radio signals around, are in a city for instance, with many cellular towers, radio towers, television towers, etc, then the SAW filter might be a definite need. On the other hand, if you are in a rural location far from transmitters then you probably don’t need one. Since we can’t see or hear radio signals, it’s really hard to know just by looking. The only real way to know is to either a) buy a SAW filter and try it, seeing it you earn more HNT, then if so consider buying a Cavity filter. or b) Buy a Vector Network Analyzer (VNA), hook it up to your antenna feed and view the incoming signals. At a price of about $100USD, the VNA device costs way more than a SAW filter and about the cost of a Cavity Filter.
Pisces SAW Filters were shipped for free to those that signed up on their Discord support forum by Feb 15 2022. That date has long passed. If you want a simple to install SAW filter that goes inside the case, you can purchase a Blazy SAW Filter for 1 HNT (they only accept Helium crypto currency). You can find Tankmann on the Pisces Discord.
For Cavity filters, search of AliExpress.com and have one shipped direct from China. Make sure to choose the correct frequency for the Cavity filter for what is the licensed range in your country.
Menu for Viet’s Aromo Pho Soup Restaurant located in the Festival Shopping Center off of Jefferson Street (US-340 Freeway) next to the Frederick Freeway (US-15). Viet’s Aroma serves a wide variety of Vietnamese foods including Pho Soup (Beef and Chicken), spring and garden rolls, vermicelli, seafood, and vegetarian dishes. So there is something here for everyone.
The water in the southern 1/2 of California (not just Southern California, but Monterey, Oxnard, etc) comes hundreds of miles in amazing water projects that take water from the Sacramento River, Owens River, Mono Lake, and the Colorado River. Yet, there is a huge water plant in Ontario that bottles this water using Reverse Osmosis. It’s sold as Niagra Water and Costco Drinking Water. That’s right folks, that bottle of water has traveled 600 miles in the California Aqueduct, pumped 3,000 feet over a mountain near Bakersfield (13,000 cu/ft a second – takes two power plants to power the pumps), through 7 miles of tunnel, to Riverside and the public water systems. Niagra Water has a plant there, and bottles it using Reverse Osmosis to purify, in which about 1/2 goes to the sewer as waste, then it’s shipped 3,000 miles to us here on the east coast. Niagra says the industry uses about 1 percent of the water. If using the flow from the Los Angeles Aqueduct only (from the Owens River), that’s about 420,000 acre feet of water. An acre foot is 325,851 gallons so that’s about 136,920,000,000 gallons of water. so 1% of the LA Aqueduct alone is 1,369,200,000 gallons. Yet the LA Aqueduct supplies on 1/3 of LA’s water so triple that to 4 trillion gallons, 1/2 of which are dumped into the drain.
You can save that water the trouble of being shipped across the US and the related fuel, and California some water by doing was Niagra Water does. Put a Reverse Osmosis system in you own home.
Get one of these Reverse Osmosis water filters and stop buying water [look at the bottle, this is what they do]: http://www.costco.com/Premier-WP4-V-Reverse-Osmosis-System-with-Monitoring-Faucet.product.11257320.html. Add this on for efficiency: http://www.premierh2o.com/collections/pumps/products/aquatec-_erp-1000_560041_permeate_pump_kit
Mine came with a cheesy faucet. I ordered it two weeks ago. Costco changed it already and offers a kit with better faucet now that has a LED light to tell you it’s time to change the filters (‘monitored faucet’). But its chrome, and there are other faucets on the Premier website. I ordered a brushed nickle one last night. Premier is a subsidiary of Watts. They also offer a zero waste R.O. system that has a pump and pumps the waste water into your water heater. Adds complexity to the system and minerals to water heater. I choose this one and ordered the permeate pump to double efficiency. Oh, you need a spare hole in the sink for the faucet. I drilled one in my porcelain on iron sink. Not for the meek, took an hour, mostly because it was hard to drill the 1/8″ starter hole in the 1/8″ thick porcelain. An 1/8″ diamond bit would have helped. Then I made the hole larger and larger 1/32″ at a time marching up my drill set to get to the 1/4″ size of the pilot bit in the 1 1/4″ hole saw. Wouldn’t be any trouble on a stainless steel sink. But don’t do that yourself if not comfortable with destroying your sink. I watched a couple youtube videos on it.
If you can, install the Reverse Osmosis System itself in the laundry so you can easily change the filters (not under the sink, unless you like working in dark, tight places) and use longer length 1/4″ and 3/8″ poly pipe from Home Depot or Lowes to install it. Don’t use the saddle valve unless you want a leak in a couple years, add a tee to your water line and a tubing connector, drain to your laundry stand pipe. Tee the freshwater line to the icemaker and sink. No more chlorine or other foul stuff. Does waste about 1/2 the water, but it’s only drinking water. Gallon a day maybe. ANd if you are buying bottled water, that water is being wasted already. If you have a septic system, you are not wasting the water as it’s goes back into the ground water.
So Save California some water as the Niagra water (and Costco Drinking water is also Niagra) is bottled in Ontario California (in the desert East of L/A) using water from the Sacramento River.
Our Recreational Vehicle has a 22″ Magic Chef Range with oven. The oven is small and it’s nice to know all of the dimensions of this RV Oven.
The actual outside width is 21 1/4″ and height is 16.5″.
Interior oven total dimensions are Width: 16.5″, Depth: 15″ and total oven height (including burner and broiler area): 10.75″. Broiler area is 3″ high total.
Usable RV Oven space is 16″ Wide x 14.5″ deep x 4.75″ high (distance from rack to top of oven is 5″ but usable height is less since food shouldn’t touch top of oven.
I’ve read recommendations of placing a single 12″ x 12″, four 6″ x 6″ quarry tiles or a pizza stone on top of the metal plate over the burner to provide for more even heating of the oven.
Note: Full 4 Mega-pixel pictures are available by clicking on each of the small pictures below.
1970’s John Deere Lawn and Garden Tractor Operator’s Manual for John Deere Models 210, 212, 214, and 216 mowers 10hp, 12hp, 14hp and 16hp Kohler side shaft engine. Includes owners manual for use and settings. Also has maintenance instructions including carburetor adjustment, trouble shooting, scheduled maintenance, and tune up. Also included is a wiring diagram for serials 70,001 to 190,000. john-deere-operators-manual-210-212-214-216-lawn-garden-tractor (38MB) wiring-diagram-john-deere-210-212-214-216-garden-tractor (375KB)
One more tip:
To Change Drive Belt
Jack up the right side of tractor
Take off the right rear tire
Lift the front pully up and hold in place with a pry bar
For the person with the slow computer, check if your system page file is fragmented. This sounds long but it’s only a few window dialog boxes. Start->Control Panel, then Administrative Tools, Defragment Your Hard Drive, click Analyze Then wait, and when done View Report and look for Page File Fragmentation. If fragmented, then I recommend two things.
1. Set the size of you page file to a static number (Start->Computer, Advanced Tab, Click Settings under Performance, now Advanced Tab, In the Virtual Memory Section, click Change, Uncleck Automaically Manage paging file size, Check the Custom Size, and pick a number about twice you memory size. Make sure it’s at least as large as your memory, [ note: Disk space is cheap now so ok to waste a few GB of disk in case you want to add more memory later] DO THIS ONLY FOR DRIVE C:, THE REST DO NOT MATTER. . Click OK, OK, Etc to close all of those Windows. If asked to reboot click the Later option. Now you have to Defragment the pagefile with Perfect Disk http://www.raxco.com/home/prod…. So get that with a license so you have to Boot Time Defragmentation option. Install it. Now reboot. Reboot again. Then set the Perfect Disk (PD is slow to start so wait) boot time option for drive C. Reboot.) Sounds like a lot of steps, but this one setting is the reason are computers running Windows slow down over time as the pagefile is the most accessed file in windows. Perfect Disk will actually prevent other files from fragmentation on the fly as they are written. Make sure it’s scheduled to run at least every few days to keep your disk Perfect.
and 2, before upgrading, might want to do two complete system backups to a slim portable hard disk with Acronis True Image http://www.acronis.com/en-us/p… This is a full system backup and can be restored. Make sure to create the Boot CD (or DVD, or USB drive) so you can restore if need be. Like if Windows 10 doesn’t support your audio card or printer. Also handy to have if a disk drive fails. You can even tell Acronis to encypt the backup – just don’t loose the key [but don’t write it on the drive – tape it under the keyboard – you just don’t want to loose the drive and have someone else find it. If paranoid – put the key in a bank safety deposit box.]
Non-Disclaimer: I have no relationship to these two products or their manufacturers. I’m just a Computer Scientist that uses them.
Hate speech I collected from Tom Smeal on Facebook (names changed to protect the innocent).
Tom Smeal writes this more hate filled crap on NPR pages.
Nice one %s; the Green Energy companies FAILED because they did not follow set regulations. The shareholders of the failed GREEN companies were after profits, profits and more profits. GREEN CEOs made millions on the backs of taxpayers then went Bankrupt…………………………………………..http://dailycaller.com/…/as-many-as-fifty-obama-backed…/
%s can read, but look what happened. I noticed that %s has a HUGE carbon footprint but advocates for others to use expensive green energy. What an obvious, foolish hypocrite.
99.9% of Liberals enjoy their huge carbon footprints and only want others to sacrifice to ‘save the planet’.
People first….why do you hate the poor %s?
Fracking directly benefits the public good.
LOL!!!! “liberal Republican”, that’s the funniest thing I’ve seen so far this year. No such thing %s; all Liberals hate Republicans. Please show us some proof of earthquake damaga %s. Earthquakes are natural and happen every day all over the world and only occasionally cause damage. If it speaks like a Liberal then you are a Liberal.
What about charges against all those rotten people who looted their neighborhoods and tried to injure the police, even though the police were ordered by their idiot Mayor to permit the lowlife scum to destroy their neighborhoods?
You forget that the greater good supercedes local kingdoms. Why allow a few enviro whackos hurt the poor.
%s why do you hate the poor? Why do you want to reduce the standard of living of people getting handouts from Obama? For shame.
Fracking has greatly helped the poor in the buckeye state. Capitalism works.
Straw man attacks are juvenile %s. Do you believe man is causing climate change %s?
When are you going to give up automobile travel?
You voted for Obama; you got what you voted for
Finally! Obama’s spying on us is being stopped. Our right to privacy wins one finally. I wonder what the Democrats are going to do with the phone data they already have?
Son of a gun. Gray had heroine and marijuana in his blood. Figures.
Yes %s. The Mayor and Prosecutor may want to give a free pass to their law breaking constituency. The Mayor has already stopped the police force from arresting suspects and most of those thugs that were arrested were freed.
Been fighting with getting agocontrol working with Rasbian Wheezy for a few days. Seeing messages like this in /var/log/messages:
Feb 1 13:00:31 raspberrypi agozwave[455]: ERROR: ZW_SEND_DATA could not be delivered to Z-Wave stack
Feb 1 13:00:33 raspberrypi agozwave[455]: ERROR: ZW_SEND_DATA could not be delivered to Z-Wave stack
Feb 1 13:00:34 raspberrypi agozwave[455]: WARNING: Unexpected Callback ID received
Feb 1 13:00:35 raspberrypi agozwave[455]: ERROR: Dropping command, expected response not received after 3 attempt(s)
Feb 1 13:00:37 raspberrypi agozwave[455]: ERROR: ZW_SEND_DATA could not be delivered to Z-Wave stack
Feb 1 13:00:39 raspberrypi agozwave[455]: ERROR: ZW_SEND_DATA could not be delivered to Z-Wave stack
root@raspberrypi:/var/log# tail messages
Feb 1 13:00:35 raspberrypi agozwave[455]: ERROR: Dropping command, expected response not received after 3 attempt(s)
Feb 1 13:00:37 raspberrypi agozwave[455]: ERROR: ZW_SEND_DATA could not be delivered to Z-Wave stack
Feb 1 13:00:39 raspberrypi agozwave[455]: ERROR: ZW_SEND_DATA could not be delivered to Z-Wave stack
Feb 1 13:00:41 raspberrypi agozwave[455]: ERROR: Dropping command, expected response not received after 3 attempt(s)
Feb 1 13:00:41 raspberrypi agozwave[455]: ERROR: ZW_SEND_DATA could not be delivered to Z-Wave stack
Also in the webmin on the zwave plugin at the top see:
zwavecontroller is not responding. Unable to execute action
Several fixes here:
First, make sure you have a /etc/opt/agocontrol/conf.d/zwave.conf file with this text:
[zwave]
device=/dev/ttyAMA0
Next, we need to disable the serial console which is configured to /dev/ttyAMA0. This requires editing two files:
1. /etc/inittab
Change this line:
T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
and disable the serial console with a # sign in front and save the file.
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
2. /boot/cmdline.txt
It should look like this:
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
Change to like so, (removing console=ttyAMA0,115200 kgdboc=ttyAMA0,115200) and save.
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
Third, run the command: dmesg | grep tty
You’ll see something like this:
[ 0.000000] Kernel command line: dma.dmachans=0x7f35 bcm2708_fb.fbwidth=1318 bcm2708_fb.fbheight=736 bcm2708.boardrev=0x10 bcm2708.serial=0xd2466e69 smsc95xx.macaddr=B8:27:EB:46:6E:69 bcm2708_fb.fbswap=1 bcm2708.disk_led_gpio=47 bcm2708.disk_led_active_low=0 sdhci-bcm2708.emmc_clock_freq=250000000 vc_mem.mem_base=0x1ec00000 vc_mem.mem_size=0x20000000 dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p6 rootfstype=ext4 elevator=deadline rootwait
[ 0.001423] console [tty1] enabled
[ 0.706431] dev:f1: ttyAMA0 at MMIO 0x20201000 (irq = 83, base_baud = 0) is a PL011 rev3
See the last line, thats the zwave.me RazBerry. Note the revision level is 3. The folks at zwave.me missed a production step (see http://razberry.z-wave.me/index.php?id=29). Easy to solve. Just do in terminal of your Raspberry Pi:
echo -ne "\x01\x04\x00\x42\x01\xB8" > /dev/ttyAMA0
After making that change run the command below to shutdown Wheezy.
shutdown -h now
And then power cycle the RaspberryPi, waiting a few seconds before plugging back in.