About Asurion & the Field App
Asurion is a bit of a quiet giant when it comes to tech companies. It's mostly commonly known as the insurance provider of mobile technology behind major US-based carriers such as AT&T and Verizon. The insurance plans are sold through the carriers, but Asurion is the company that fulfills on this service and delivers great experiences to the customers in need.
This product in particular, the Field App, enables a gig-economy workforce to deliver replacement devices and sets them up for insurance subscribers in as short as just a few hours. The capabilities of this app continued to spread as other "job types" were added for this workfoce to be able to fulfill on. Some of these capabilities included major appliance repair (washers, dryers, refridgerators, etc.) and was starting to expand into some trials of automotive sevicees.
My role
I led the team of 4 designers, design strategy, roadmap formation and team responsible for designing the Field App, while also serving as a dedicated designer for projects as well. More information below, but I focused a lot on new initiative strategy as the company looked to add an additional complicated job type to the app that focused on major appliance repair; an entirely new vertical for the company
Product Vision
In partnership with our research team and leveraging the attitudinal personas developed for our frontline experts, we sought out to build an app just for Asurion experts to streamline everything that their job entails. This was a huge cross-functional effort that started back in 2019 with the "Asurion Toolbelt" and Same-Day Delivery and Setup jobs. This app set out to handle everything an expert would need - from showing them their assigned jobs for the day, where they needed to go, what they needed to do, as well as provide ongoing support for the inevitable situations that occur when you're working out in the Field every single day.
Hypothesis
Asurion bet big here. We hypothesized that the Asurion Field app could be the single main app that our experts use to do every single thing they needed in order to deliver an amazing experience for our customers and also make the lives of our experts as easy as possible.
Lots of options were explored but it was deemed reasonable for us to build all of these capabilities in-house within a React native app.
Who are the users?
This is where the partnership with the research team was critical. Their work was transformative to the entire process and built a deeper understanding of what drives our experts. The frontline experts at Asurion fall into three main buckets for attitudinal persona - The Altruist, The Puzzle Solver and The Loyalist. At a high-level, they're unsurprisingly named after their main attitudinal driver for why they do what they do.
The Altruist: In it to help the customer always, and will go above and beyond when there in our customers presence. We've heard field stories from Experts saving kids from speeding cars, solving lots of random tech problems to tuning a ukulele.
The Puzzle Solver: In it to figure out all the tough tech problems for our customers. They're also notoriously our toughest critic on the app-front and will ALWAYS find workarounds and ways to flex the app to do whatever they want it to do.
The Loyalist: In it because they believe in the company and what they're doing really matters. Also notoriously one of our worst places to get critical feedback haha.
We made sure to keep all these specific users in mind while building all features for the app, in-between all the recurring/ongoing research activities.
Continuous feedback & research
Consistently through the whole build process, we'd start each feature with interviews (especially if a new feature-set like MA) test prototypes with end users and then at it's best/peak we had weekly roundtable feedback sessions.
We also leveraged a feedback form that was available to all experts to provide feedback on items they liked, disliked as well as provide new ideas/concepts for features. We also had a teams channel set up where they could reach out to us directly with problems or if they had an idea they wanted to talk through.
Results
It was successfully launched and adopted by experts in 2019 to fulfill on the Verizon Same Day Delivery & Expert Setup proposition. Without this app this service would have never been able to scale effectively.
Major Appliance Repair
The next major phase and evolution of the Asurion Field App to power the new Asurion program focused on major appliance repair.
Explore on Figma
Overview
This was the major feature I was responsible for on the design side for the first half of 2021, and the program is continuing to scale currently.
The concept is for Asurion to add a new vertical to their in-home services market focusing on covering all the major appliances within your home under one product umbrella - Appliance+. The product is $29.99/m with a $75 repair deductible and will cover everything in your home that's 25yrs old and newer.
Asurion Field needed to expand it's features and offerings in order to meet the needs of these more specialized technicians fulfilling on a number of different jobs - from Samsung Warranty Work, to your run of the mill Whirlpool Washer repair.
In order for the program to succeed longterm the app needed the ability to:
- Allow technicians to order parts needed in the field
- Allow technicians the ability to reschedule jobs as needed due to 60% of them requiring a second visit.
- Allow technicians to keep track of and handle parts returns (multi-million opportunity here)
- Allow technicians ability to build and maintain inventory within their specific repair vehicle
Parts ordering and rescheduling took the main priority and were also some of the lower lift items here on the list. We started on parts returns but didn't have the necessary operations in place for this to work as needed.
Long term goal for this platform include scaling this business to be the size of SDDS and run ~2m jobs through the app each year - not including the additional NDDS volume (another ~250k jobs in 2021, and an additional 1m adds if the program scales to include new device sales from Vzw.com).
Results
This was right at the end of my time at Asurion and we were able to build the job type into the Field App successfully and complete jobs for the MA program to start running. We met all critical user and business needs on time and was able to witness app usage within the field.
Unfortunately I wasn't able to see how the program continued to run and how the metrics turned out as I had exited during the running of the trial program.


文件列表
| Mirror | Last update | Help |
|---|---|---|
| Archlinux | Waiting For Sync | help |
| Centos | Waiting For Sync | help |
| Debian | Waiting For Sync | help |
| Debian Security | Waiting For Sync | help |
| Deepin | Waiting For Sync | |
| Deepin CDImage | Waiting For Sync | |
| Epel | Waiting For Sync | help |
| LinuxMint CDImage | Waiting For Sync | |
| openEuler | Waiting For Sync | help |
| Proxmox | Waiting For Sync | help |
| Raspbian | Waiting For Sync | help |
| Raspberrypi | Waiting For Sync | help |
| Termux | Waiting For Sync | help |
| Ubuntu | Waiting For Sync | help |
| Ubuntu CDImage | Waiting For Sync | help |
| Ubuntu Kylin | Waiting For Sync | |
| Ubuntu Kylin CDImage | Waiting For Sync |


Your OpenEDC Server is configured and running. You can already sync data that you have locally captured on openedc.org with it.
However, to be able to work with the data, please move all files from the OpenEDC App repository to the /public folder of your OpenEDC Server instance on your web server. Thereby, your OpenEDC Server will host the OpenEDC App and you can simply refresh this page to use the application.
In a future version, it is intented that the server can automatically download all required files to this directory.


Intention driven ropes today:
December 7th, 2009
-Reject or be forced to contradict oneself-
The pattern can be deduced, reduced and distinguished
-but to see,
-is a matter of happening
co-fated with the decision you make
-(the uncoiling of the rope)
-the unwinding of a chain from a wench
links in place, knots
ready to take place as time marches on
not going to give you an answer
Did that train derail for no reason what so ever?
maybe you could not have done of yourself that you did
What you favor you watch out for;
as I watch you
predict your motions
I imagine fated for a better place
Not one that their words make out
there was no train to take you,
walk the hill sides, climb up, descend, suspend in time if you are late
- become enlightened -by them-


--- layout: project title: Wart Hog (FRC 2019) order: 12 about: The SWAT Bots team this year was made up of twenty-five students in grades 8 -12. Throughout the season invested over 8,000 hours to build their robot between January 2019 and April 2019. photo: /images/FRC-2019/title.jpg ---
I returned to mentor the software and control system team of the SWAT Bots for the 2019 FRC season, Destination Deep Space. This season, we had many new students join our team which increased the total number of SWAT Bots students to 25. We decided to focus on having a solid robot which consistently completed the climbing objective and could score at the low goals on the field. We also decided not to focus on scoring in the high goals in order to make our robot less complex and to give our team more time to fine tune and practice with our robot. Once completed, our robot could climb to any level of the platform, and it could score cargo and hatches on the low goals.
The resulting robot, which we named Wart Hog, succeeded beyond our wildest dreams. At the Canadian Rockies Regional, the SWAT Bots ranked fifth out of 37 teams and made it to the tournament finals round. As the tournament finalists, we received an invitation to the FRC world championship in Houston, Texas where we competed on the Newton division. At the end of the qualification rounds for our division, the SWAT Bots ranked ninth out of the 67 teams from all over the world who made up the Newton division. The SWAT Bots became the alliance captain of alliance seven, and our alliance was able to make it to the division finals where we were defeated by the alliance which would go on to win the entire world championship. I am extremely excited about our success this season, and I am glad to have been able to contribute to this amazing season.


Hi, my name is Koshin Mohamed, I'm 33 years old and originally from Somalia but was raised and grew up in Toronto, Canada. I graduated from Ryerson University with a Bachelor in Commerce and from Seneca College with a Certificate in Global Logistics and Supply Chain Management for my post grad.
My work experience in mainly in the family business which is transporter and wholesaler of oil products. I have been and still am the Operations Manager.
I've always wanted to learn programming and have even tried on my own but quickly realized I needed more structure and help. This is why I decided to take a class at Moringa School. In addition, I'm quite entrepreneurial and have many ideas that I want to execute that willl require a website or app. For that reason, I want to be able to code and test it myslef to see if it is viable before investing in it. Lastly, this is the direction the world is going today, technology is touching almost every aspect of our lives and I don't want to get left behind. Plus It's fun to create things!
Some of my interests and hobbies include but are not limited to: playing and watching a variety of sports, working out, watching tv shows and movies, spending times with family, travelling, and building businesses.
Below are a few of my past projects that I've completed and still working hope to imporove on.
The primary languages and technologies used for the projects above are...


$ ./bitcoin-cli getrawtransaction \ ebfd0d14c2ea74ce408d01d5ea79636b8dee88fe06625f5d4842d2a0ba45c195 1 { "txid": "ebfd0d14c2ea74ce408d01d5ea79636b8dee88fe06625f5d4842d2a0ba45c195", "hash": "ebfd0d14c2ea74ce408d01d5ea79636b8dee88fe06625f5d4842d2a0ba45c195", "version": 1, "size": 223, "vsize": 223, "weight": 892, "locktime": 549655, "vin": [ { "txid": "8a4023dbcf57dc7f51d368606055e47636fc625a512d3481352a1eec909ab22f", "vout": 0, "scriptSig": { "asm": "3045022100cc095e6b7c0d4c42a1741371cfdda4f1b518590f1af0915578d3966fee7e34ea02205fc1e976edcf4fe62f16035a5389c661844f7189a9eb45adf59e061ac8cc6fd3[ALL] 030ace35cc192cedfe2a730244945f1699ea2f6b7ee77c65c83a2d7a37440e3dae", "hex": "483045022100cc095e6b7c0d4c42a1741371cfdda4f1b518590f1af0915578d3966fee7e34ea02205fc1e976edcf4fe62f16035a5389c661844f7189a9eb45adf59e061ac8cc6fd30121030ace35cc192cedfe2a730244945f1699ea2f6b7ee77c65c83a2d7a37440e3dae" }, "sequence":<PHONE_NUMBER> } ], "vout": [ { "value": 0.00313955, "n": 0, "scriptPubKey": { "asm": "OP_DUP OP_HASH160 6da68d8f89dced72d4339959c94a4fcc872fa089 OP_EQUALVERIFY OP_CHECKSIG", "hex": "76a9146da68d8f89dced72d4339959c94a4fcc872fa08988ac", "reqSigs": 1, "type": "pubkeyhash", "addresses": [ "1AznBDM2ZfjYNoRw3DLSR9NL2cwwqDHJY6" ] } }, { "value": 0.00500000, "n": 1, "scriptPubKey": { "asm": "0 50cbb07ebbb0a22f11266653ed10d26ea3e1d545", "hex": "001450cbb07ebbb0a22f11266653ed10d26ea3e1d545", "reqSigs": 1, "type": "witness_v0_keyhash", "addresses": [ "bc1q2r9mql4mkz3z7yfxvef76yxjd637r429620j75" ] } } ], "hex": "01000000012fb29a90ec1e2a3581342d515a62fc3676e455606068d3517fdc57cfdb23408a000000006b483045022100cc095e6b7c0d4c42a1741371cfdda4f1b518590f1af0915578d3966fee7e34ea02205fc1e976edcf4fe62f16035a5389c661844f7189a9eb45adf59e061ac8cc6fd30121030ace35cc192cedfe2a730244945f1699ea2f6b7ee77c65c83a2d7a37440e3daefdffffff0263ca0400000000001976a9146da68d8f89dced72d4339959c94a4fcc872fa08988ac20a107000000000016001450cbb07ebbb0a22f11266653ed10d26ea3e1d54517630800" }
This command prints the entire transaction in a human-readable (well, at
least developer-readable) form. Let’s start from the top and go through
the most relevant parts of this transaction. The txid
is the
transaction id. The hash
is the double SHA256 hash of the whole
transaction, including the witness. For non-segwit transactions, hash
is equal to txid
.
The size
of the transaction is 223 bytes, and vsize
(the virtual
size) is also 223 vbytes; vsize
is the transaction’s number of weight
units (892
) divided by 4, so the virtual size of a non-segwit
transaction (which this is, because it only spends non-segwit outputs)
is equal to its actual size
.
The locktime of this transaction is set to 549655
, which was the
height of the strongest chain at the time of the transaction’s creation.
Thus the transaction can’t be mined until block height 549656. This
reduces the attractiveness of an attack in which a miner deliberately
tries to reorg the blockchain and include the transaction into a block
height that’s already been mined.
Next comes the list of inputs. This transaction has a single input that
spends output at index 0
(vout
) of the transaction with txid
8a4023db…909ab22f
. The input spends a p2pkh output.
The input’s sequence number is<PHONE_NUMBER>
, which is fffffffd
in hex
code. This means the lock time is enabled (≤fffffffe
) and the
transaction is replaceable (≤fffffffd
) according to BIP125. The
meaning of the sequence number was summarized in Table 29.
After the list of inputs comes the list of transaction outputs. This transaction has a list of two outputs. The first pays 0.00313955 BTC to a p2pkh address you haven’t seen before. This is probably a change output. The second output sends 0.005 BTC to the p2wpkh address created earlier.
Let’s see if the transaction is confirmed yet. You can check, for
example, with getbalance
. In my case, if it shows 0.00500000
, then
the transaction has confirmed:
$ ./bitcoin-cli getbalance 0.00500000
Cool, the money is confirmed! Let’s move on.
A.4.4. Sending money
You’ve received some bitcoins.  To send bitcoins, you can use the sendtoaddress
command. You
need to make a few decisions first:
-
Address to send to
-
How much money to send: 0.001 BTC
-
How urgent the transaction is: not urgent (you’ll be happy if it confirms within 20 blocks)
I’ll send the bitcoins to address bc1qu456…5t7uulqm
, but you should
get another address to send to. If you have no other wallet, you can
create a new address in Bitcoin Core to send to just for experimental
purposes. I’ve obfuscated my address below so that you don’t send to my
address by mistake.
$ ./bitcoin-cli -named sendtoaddress \ address="bc1qu456w7a5mawlgXXXXXXu03wp8wc7d65t7uulqm" \ amount=0.001 conf_target=20 estimate_mode=ECONOMICAL error code: -13 error message: Error: Please enter the wallet passphrase with walletpassphrase first.
Oh, dear! An error. As indicated by the error message, the private keys
are encrypted in the wallet.dat file. Bitcoin Core needs the private
keys to sign the transaction. To make the private keys accessible, you
need to decrypt them. You do this using the walletpassphrase
command
with the -stdin
option to prevent the passphrase from being stored by
your command-line interpreter, such as bash:
$ ./bitcoin-cli -stdin walletpassphrase secretpassword<ENTER> 300<ENTER> <CTRL-D>
The last argument, 300
, is the number of seconds you should keep the
wallet unlocked. After 300 seconds, the wallet will be automatically
locked again in case you forget to lock it manually. Let’s retry the
sendtoaddress
command:
$ ./bitcoin-cli -named sendtoaddress \ address="bc1qu456w7a5mawlgXXXXXXu03wp8wc7d65t7uulqm" \ amount=0.001 conf_target=20 estimate_mode=ECONOMICAL a13bcb16d8f41851cab8e939c017f1e05cc3e2a3c7735bf72f3dc5ef4a5893a2
The command output a txid for the newly created transaction. This means
it went well. You can relock the wallet using the walletlock
command:
$ ./bitcoin-cli walletlock
The wallet is now locked. I’ll list my transactions again:
$ ./bitcoin-cli listtransactions [ { "address": "bc1q2r9mql4mkz3z7yfxvef76yxjd637r429620j75", "category": "receive", "amount": 0.00500000, "label": "", "vout": 1, "confirmations": 1, "blockhash": "000000000000000000240eec03ac7499805b0f3df34a7d5005670f3a8fa836ca", "blockindex": 311, "blocktime":<PHONE_NUMBER>, "txid": "ebfd0d14c2ea74ce408d01d5ea79636b8dee88fe06625f5d4842d2a0ba45c195", "walletconflicts": [ ], "time":<PHONE_NUMBER>, "timereceived":<PHONE_NUMBER>, "bip125-replaceable": "no" }, { "address": "bc1qu456w7a5mawlg35y00xu03wp8wc7d65t7uulqm", "category": "send", "amount": -0.00100000, "vout": 1, "fee": -0.00000141, "confirmations": 0, "trusted": true, "txid": "a13bcb16d8f41851cab8e939c017f1e05cc3e2a3c7735bf72f3dc5ef4a5893a2", "walletconflicts": [ ], "time":<PHONE_NUMBER>, "timereceived":<PHONE_NUMBER>, "bip125-replaceable": "no", "abandoned": false } ]
The new transaction is the last one of the two. It isn’t yet confirmed,
as indicated by "confirmations": 0
. The fee paid was 141 satoshis.
Let’s look into this transaction in detail:
$ ./bitcoin-cli getrawtransaction \ a13bcb16d8f41851cab8e939c017f1e05cc3e2a3c7735bf72f3dc5ef4a5893a2 1 { "txid": "a13bcb16d8f41851cab8e939c017f1e05cc3e2a3c7735bf72f3dc5ef4a5893a2", "hash": "554a3a3e57dcd07185414d981af5fd272515d7f2159cf9ed9808d52b7d852ead", "version": 2, "size": 222, "vsize": 141, "weight": 561, "locktime": 549665, "vin": [ { "txid": "ebfd0d14c2ea74ce408d01d5ea79636b8dee88fe06625f5d4842d2a0ba45c195", "vout": 1, "scriptSig": { "asm": "", "hex": "" }, "txinwitness": [ "30440220212043afeaf70a97ea0aa09a15749ab94e09c6fad427677610286666a3decf0b022076818b2b2dc64b1599fd6b39bb8c249efbf4c546e334bcd7e1874115da4dfd0c01", "020127d82280a939add393ddbb1b8d08f0371fffbde776874cd69740b59e098866" ], "sequence":<PHONE_NUMBER> } ], "vout": [ { "value": 0.00399859, "n": 0, "scriptPubKey": { "asm": "0 4bf041f271bd94385d6bcac8487adf6c9a862d10", "hex": "00144bf041f271bd94385d6bcac8487adf6c9a862d10", "reqSigs": 1, "type": "witness_v0_keyhash", "addresses": [ "bc1qf0cyrun3hk2rshttetyys7kldjdgvtgs6ymhzz" ] } }, { "value": 0.00100000, "n": 1, "scriptPubKey": { "asm": "0 e569a77bb4df5df446847bcdc7c5c13bb1e6ea8b", "hex": "0014e569a77bb4df5df446847bcdc7c5c13bb1e6ea8b", "reqSigs": 1, "type": "witness_v0_keyhash", "addresses": [ "bc1qu456w7a5mawlg35y00xu03wp8wc7d65t7uulqm" ] } } ], "hex": "0200000000010195c145baa0d242485d5f6206fe88ee8d6b6379ead5018d40ce74eac2140dfdeb0100000000feffffff02f3190600000000001600144bf041f271bd94385d6bcac8487adf6c9a862d10a086010000000000160014e569a77bb4df5df446847bcdc7c5c13bb1e6ea8b024730440220212043afeaf70a97ea0aa09a15749ab94e09c6fad427677610286666a3decf0b022076818b2b2dc64b1599fd6b39bb8c249efbf4c546e334bcd7e1874115da4dfd0c0121020127d82280a939add393ddbb1b8d08f0371fffbde776874cd69740b59e09886621630800" }
The first thing to note is that txid
and hash
differ. That’s because
this is a segwit transaction. As you may recall from Chapter 10, the
witness isn’t included in the txid—that’s how you avoid transaction
malleability—but the hash
in the output includes it. Note that size
and vsize
differ, too, which is expected from a segwit transaction.
The fee was 141 satoshis, as shown by the listtransactions
command,
and the vsize
was 141 vbytes. The fee rate was thus selected by
Bitcoin Core to be 1 sat/vbyte.
The transaction has a single input that spends output 1
of transaction
ebfd0d14…ba45c195
. You should recognize this output from the section
where I paid 0.005 BTC to my Bitcoin Core wallet. Because that output
was a p2wpkh output, the signature script (scriptSig
) is empty, and
the txinwitness
contains the signature and pubkey.
The sequence number of the input is<PHONE_NUMBER>, which equals fffffffe
.
This means the transaction has lock time enabled but isn’t replaceable
using BIP125 (opt-in replace-by-fee).
I have two outputs. The first is the change of 0.00399859 BTC back to an address I own. The other is the actual payment of 0.001 BTC. Let’s check the balance again:
./bitcoin-cli getbalance 0.00399859
Yep, there it is. I didn’t have to wait for confirmation to see the
new balance, because getbalance
always includes my own outgoing
unconfirmed transactions. I’ve spent my only UTXO (of 0.005 BTC) and
created a new UTXO of 0.00399859 to myself:
Spent: 0.005 Pay: -0.001 Fee: -0.00000141 =================== Change: 0.00399859
It sums up perfectly.
I’ve shown a few commands you can use to wing your Bitcoin Core node,
but there’s a lot more to it. Explore ./bitcoin-cli help
to find out
more.
Appendix B: Answers to exercises
B.1. Chapter 2
-
256 bits.
-
32 bytes.
-
A cryptographic hash function.
-
061a
is6*256 + (16 + 10) = 1,536 + 26 = 1,562
in decimal form. The binary form of06
is0000 0110
, and the binary form of1a
is0001 1010
, so the full binary representation is0000 0110 0001 1010
. -
No. If it was possible, the function wouldn’t be second-pre-image-resistant.
-
Properties 2 and 4 are lacking.
-
Second-pre-image resistance is stopping the attacker. The attacker needs to find an input that gives the same hash as a certain other input: the cat picture.
-
The money supply increase rate will decrease over time because the reward to Lisa halves every 4 years. This means the total amount of CT to ever be created will be about 21,000,000.
-
The coworkers have read access to the spreadsheet. They can watch the spreadsheet and verify that Lisa doesn’t reward herself too much or too often.
-
The private key is created using a random number generator of some sort. A simple one is a coin that you flip 256 times to generate your 256-bit private key. You can also use your operating system’s built-in random number generator.
-
The private key.
-
The message is hashed because you want signatures to be small and fixed in size. You don’t want the signatures to be big just because the signed message is big.
-
Mallory would need John’s private key to steal cookies from him. She would also need his name, John, to write into the email to Lisa, but that’s easily available in the spreadsheet.
-
Fred can use your public key to encrypt the message and send the encrypted message to you. You can then decrypt that message using your private key.
-
You sign the message using your private key and write the digital signature onto the note in the bottle. Fred can then verify that the signature is in fact made with your private key. He does this by using your public key to decrypt the signature and comparing the decrypted hash with the actual hash of the message. If they match, he can be sure the message is from you.
B.2. Chapter 3
-
The PKH is made short because a) it makes the spreadsheet smaller in size and b) it makes cookie token addresses (and Bitcoin addresses) shorter to write for a user.
-
Yes, you can. There’s a base58check decoding algorithm that does this.
-
It’s used by a payer to translate the recipient’s address into a PKH. The payer needs to write the recipient’s PKH in the email to Lisa.
-
Let’s base58-encode 0047 step by step:
-
Remove leading 00 bytes. There is one, which leaves you with 47.
-
Convert to a decimal number: 47 in hex is 4 × 16 + 7 = 71 in decimal.
-
Divide 71 by 58: 71 = 1 × 58 + 13. The quotient is 1, and the remainder is 13.
-
Divide the quotient, 1, by 58: 1 = 0 × 58 + 1. The quotient is 0, and the remainder is 1.
-
Look up the remainders 13 and 1. Result: E and 2.
-
Add a 1 for the removed 00 byte in step 1, which results in E21.
-
Reverse it: 12E. Done.
-
-
The 4-byte checksum.
-
He must make two separate payments. For example: payment 1 pays 2 CT from @1 to the cafe, and payment 2 pays 8 CT from @2 to the cafe. Another way is to first pay 2 CT from @1 to @2 and then pay 10 CT from @2 to the cafe.
-
Yes it is. Base58check-encode the PKHs to get the addresses.
-
No, because the spreadsheet contains PKHs. Because cryptographic hash functions are one-way functions, you can’t go from PKH to public key.
-
They can look at the amounts. Many of the 10 CT payments are probably cookie purchases.
-
The bad guy can’t steal cookie tokens because he needs the public key to exploit the flaw in the public key derivation function. The spreadsheet contains PKHs; the bad guy can’t get the public key from it.
-
The bad guy needs the private key to sign fraudulent emails to Lisa. Even though he can reverse RIPEMD160, he’d still need to pre-image attack SHA256 and reverse the public key derivation function to get to a working private key.
B.3. Chapter 4
-
bitcoin:155gWNamPrwKwu5D6JZdaLVKvxbpoKsp5S?amount=50
-
Each character corresponds to 6 bits of entropy because 26 = 64. Ten such characters make 60 bits of entropy, which corresponds to 60 coin flips.
-
The four problems:
-
Passwords are easily forgotten.
-
Randomness is hard.
-
The security of a password decreases as technology improves.
-
You need to keep track of two items: the backup and the password. This increases the risk that the backup is lost.
-
-
The seed is created by first generating a huge random number, then the random number is encoded as a mnemonic sentence, and lastly, the mnemonic sentence is used to generate the seed.
-
An xprv consists of a private key and a chain code.
-
An xpub consists of a public key and a chain code.
-
The xprv at path
m/2/1
and the wanted index7
. -
No, you would need xprv
m/2/1
to derive xpubM/2/1/7'
. You first derive hardened xprvm/2/1/7'
fromm/2/1
using hardened xprv derivation and then calculate the xpubM/2/1/7'
fromm/2/1/7'
. -
You can use the following procedure to get the master xprv:
-
Use master xpub
M
to derive xpubM/4
and remember the left-half hash, L4. -
Use
M/4
to derive the left-half hash L41 at index 1. -
Subtract L41 from the private key
m/4/1
to get private keym/4
. -
Subtract L4 from the private key
m/4
to get private keym
. -
m
together with the chain code of xpubM
is the master xprv.
-
-
Yes, you’d be able to steal all funds in any addresses because you can calculate the master xprv.
-
The victim could have used hardening to generate
m/4'
instead. This way, you wouldn’t be able to get the master xprv. If you stolem/4'/1
and the master xpub, you would only be able to steal funds on them/4'/1
key. You wouldn’t be able to calculate theM/4'
xpub. -
The employees can import the xpub for the counter sales account. They will then be able to generate any public keys under that account and thus generate as many addresses as they need without ever having to know any private keys.
-
Your (and Anita’s) wallet can generate 10 addresses ahead of time and monitor the spreadsheet for those addresses. If Anita gets paid to one of these addresses—probably the first of those 10—then your wallet won’t reuse that address when you request a payment from a customer. You would instead take the next unused address.
B.4. Chapter 5
-
You would spend the 4 CT and the 7 CT outputs. The new outputs would be 10 CT to the cafe and 1 CT in change to an address you control.
-
They’re used in inputs to reference transactions from which to spend outputs.
-
Because you can’t spend part of a transaction output. You either spend the output or you don’t. If the spent output contains more value than you’re paying, you need to give back change to yourself.
-
In the signature scripts in the inputs.
-
Because the verifiers need to know what public key to verify the signature with. You can’t verify the signature with a PKH, so you need to explicitly reveal the public key in the signature script.
-
The signature scripts are cleaned so that verifiers don’t have to know the order in which the inputs are signed.
-
Each output of a transaction contains a pubkey script. It contains the second part of a script program. The first part will be provided later, when the output is spent.
-
The Script program must end with OK on top of the stack.
-
A p2sh address always starts with a
3
. You can also recognize it by base58check-decoding it and looking at the first byte. If that byte is 05, it’s a p2sh address. -
You’ll create a transaction with one input and three outputs:
-
10,003 UTXOs. You remove two UTXOs by spending two outputs, and you add five new UTXOs. The net effect on the UTXO set is thus +3 UTXOs.
-
The pubkey script can be, for example,
1
. The spending input can have an empty signature script. The full Script program just puts a1
on the stack. A result stack with non-zero on top means OK. -
OP_ADD 10 OP_EQUAL
. This will first add the two top items on the stack and put the result back on top. Then, you’ll push the number 10 to the stack and compare the two top items. If they’re equal, OK will be pushed to the stack. -
Yes. Your full node verifies everything in the spreadsheet from the very first transaction up to the transaction containing your money from Faiza. It verifies (among other things) the following:
-
Lisa created the expected number of coinbase transactions with the correct amounts in them.
-
For each transaction in the spreadsheet, the value sum of outputs doesn’t exceed the value sum of inputs.
-
All signatures from Faiza’s payment back to all coinbase transactions are OK.
-
-
If there are several UTXOs to the same PKH, then as soon as one of them is spent, the security of the other UTXOs to the same PKH will be degraded. This is because you remove a layer of security, the cryptographic hash function. From this point, you rely solely on the public key derivation function to be secure. You can avoid this problem by using unique addresses for all your incoming payments. Then, all your UTXOs will have different PKHs.
B.5. Chapter 6
-
By the previous block’s block ID, which is the hash of the previous block’s header.
-
The merkle root of a block commits to all transactions in that block.
-
Lisa’s block signature commits to the timestamp, the merkle root (and indirectly all transactions in this block), and the previous block ID (and indirectly the whole blockchain before this block).
-
The first transaction in each block is a coinbase transaction. This coinbase transaction creates 50 new cookie tokens and sends them to Lisa’s cookie token address.
-
All transactions. The hash functions will all result in an index containing
1
because there are no zeroes in the bloom filter. Any item in the transaction that you test will be a positive. -
The following are tested:
-
The txid together with the index that identifies the output to spend
-
All data items in the signature scripts
-
All data items in the pubkey scripts
-
The txid of the transaction
-
-
They aren’t pre-image resistant, collision resistant, or second-pre-image resistant. The output space is small—typically just a few hundred to a few thousand numbers. It will take only a fraction of a second to find a pre-image of, for example,
172
. -
The rightmost leaf must be copied to make an even number of leaves. The same goes for the next level, where the third hash needs to be copied.
-
If Lisa’s private block-signing key is stolen, the thief can create blocks in Lisa’s name. Also, if a bad guy replaces Lisa’s block-signing public key on one or more sources, such as the bulletin board or the intranet, the bad guy can fool people into accepting blocks not signed by Lisa.
-
Lisa can censor transactions, and the shared folder administrator can censor blocks.
-
a) Yes, a new node that downloads all blocks from the shared folder will notice that there are two versions of the block. b) Yes, an old node that has already downloaded the original block will detect that there is an alternate version of the block.
-
The bits at indexes
1
,5
,6
, and7
are set to 1 and the other to 0. The full node would not send this transaction to the lightweight wallet. Nothing that’s tested hashes to only indexes where the bits are1
. This was something of a trick question, because the spent txid and the output index of the spent transaction aren’t tested individually, so 1,6,6 will never be considered by the full node. -
The partial merkle tree is
Number of tx: 3 Flags: ✔✔✘✔✔✔ Hashes 3 4 6
-
The interesting transactions are numbers 7 and 13, or leaf numbers 6 and 10 from the left. You’ve already seen the solution in Section <IP_ADDRESS>, but I provide it here as well for reference.
-
You need to verify the following:
-
The transaction’s txid is in the list of hashes.
-
The root of the partial merkle tree matches the merkle root in the block header.
-
The block header is correctly signed.
-
B.6. Chapter 7
-
She single-handedly decides what transactions get confirmed.
-
The probability of censorship will decrease because all miners must cooperatively decide to censor a transaction to succeed. Otherwise, your transactions will eventually be confirmed by some noncolluding miner.
-
Miners can cheat with random numbers. You can’t prove whether a miner cheated.
-
Verify that the block ID of a block is lower than the target in the block header, and that the target is the agreed-on target.
-
By repeatedly changing the nonce and hashing (double SHA256) the block header until the block ID (the block header hash) is lower than the target.
-
The branch with the most accumulated proof of work. This isn’t necessarily the same as the branch with the most blocks.
-
A miner with a hashrate of 100 Mhash/s can perform 100,000,000 tries per second to find a valid proof of work.
-
The target will increase. If the 2,016 blocks take 15 days instead of the goal of 14 days, then it’s too hard to find blocks, so you need to decrease the difficulty, which means increasing the target.
-
50%. But if you plan to give up at some point, your chances will decrease.
-
The small block will reach the other miners more quickly than the big block because a smaller block travels a computer network faster than a big block. The small block is probably also quicker to verify than the big block. Miners will probably download and verify the small block faster than the big block and continue their mining activity on top of the small block, which gives the small block a higher probability of becoming part of the strongest chain.
-
The target will decrease by a factor of 3/4. The time to produce 2,016 blocks is 1.5 weeks; the first 1,008 blocks take 1 week, and the next 1,008 blocks take 0.5 weeks. So, the new target becomes
\[N= O*\left\{ \begin{array}{ll} \frac{1}{4} & \mbox{if } T \lt 0.5 \\ \frac{T}{2} & \mbox{if } 0.5 \leq T \leq 8 \\ 4 & \mbox{if } 8 \lt T \end{array} =O*\frac{1.5}{2}=O*\frac{3}{4} \right.\] -
Selma has the majority of the hashrate. As long as she plays by the same rules as everyone else, she’s going to earn a lot of block rewards. When she breaks the rules by changing the target prematurely, all full nodes except Selma’s will discard her blocks. Selma will continue working on her own branch of the blockchain with her new rules, while all the rest will work on the branch with the old rules. The branches will be mutually incompatible. The hashrate of the old branch will drop to 48%, but the system will tick on, and everyone will continue their daily lives as normal. Selma, on the other hand, will spend a lot of electricity and time on her new branch, and no one will buy her block rewards. The value of her mined coins will probably be close to zero because she’s not following the rules.
-
The fee-per-byte metric used by most miners will be very low. For every byte of transaction data the miner puts in its block, it will lose a little competitiveness because the block will get bigger and thus slower to transport over the network and to verify. If the fee per byte for the transaction isn’t high enough to compensate for the lost competitiveness, the miner probably won’t include it.
B.7. Chapter 8
-
The shared folder is a bad idea because it gives the shared folder administrator absolute power over what blocks to allow.
-
To relay a block or a transaction means to pass it on to peers.
-
An
inv
message is used to announce to peers that you have a certain block or transaction;inv
stands for inventory. -
It will run the transaction through the bloom filter it got from the wallet. If any tested item in the transaction matches the filter, the node will send the transaction to the lightweight wallet.
-
The full node sends an
inv
to the lightweight wallet after consulting the bloom filter. The wallet can then fetch the transaction if it doesn’t already have it. -
The block header.
-
Because the cafe doesn’t have to obfuscate to its trusted node what addresses belong to the wallet. It sends a very big bloom filter to save data traffic on its mobile phone; a bloom filter that contains mostly zeroes will send almost no false positives.
-
She would verify the signature of the program using the public key she knows belongs to the Bitcoin Core development team. She does this to avoid being tricked into running malicious software.
-
Using a DNS server to get a list of IP addresses for a DNS seed (a DNS name) configured in Bitcoin Core, asking trusted friends, and using hardcoded addresses shipped with Bitcoin Core.
-
The node’s peers will announce any new blocks by sending
headers
messages to the node, even during its synchronization process. -
You need to convince the cafe, Qi, and Tom to hide blocks from Lisa. You can bribe them or threaten them.
-
She sends an
inv
message to Rashid’s node containing the two transaction IDs. -
Your node starts the synchronization process, which will look like this:
B.8. Chapter 9
-
At least one of the inputs must have a sequence number strictly less than
ffffffff
. -
The median of the timestamps of the 11 previous blocks must be strictly later than 2019-12-25 00:00:00.
-
In the rightmost 16 bits of the sequence number.
-
Two transactions on each blockchain: one for the contract transaction and one for the swap transaction.
-
With fake PKHs, the data must be stored forever in the UTXO set because Bitcoin nodes can’t distinguish between fake PKHs and real ones. The nodes won’t be able to tell if the output is unspendable or not. With an
OP_RETURN
output, the node knows that the output is unspendable and thus doesn’t have to keep it in the UTXO set. -
Your first transaction paid a too-small fee and got stuck pending. You then want to replace it with a new transaction that pays a higher fee.
-
Absolute lock time: a transaction is invalid until a certain block height or time. Relative lock time: an input of a transaction is invalid until the spent output has been confirmed for a certain number of blocks or a certain time period.
-
The redeem script contains two branches of code. The first branch will require that both you and Ruth sign to spend the 2 BTC. This can be done at any time. To spend the 2 BTC using the second branch requires that all of the following conditions are met:
-
You have waited until New Year’s Eve.
-
Beth has signed the transaction.
-
You or Ruth signs the transaction.
To be precise, you and Ruth can spend using the first branch with the following signature script (excluding the redeem script):
0 <your sig> <ruth sig> 1
The second branch can be spent at the earliest on New Year’s Eve with
0 <your or ruths sig> <beth sig> 0
The rightmost digit in both these signature scripts will select what branch to use; the rest fulfill the requirement in the respective branch.
The time-locked branch ensures that Beth has no power to collude with either you or Ruth before New Year’s Eve.
-
-
No. The redeem script isn’t known to the nodes until the output is spent. And because you can’t spend an
OP_RETURN
redeem script, nodes will never know about the redeem script. The node will thus never know that this is an unspendable output. -
A full node that receives a transaction will keep it in memory until it’s included in a block. If a second, conflicting transaction arrives, the node will drop that second transaction and not relay it. It will consider the first-seen transaction as the “real” one and the second transaction as a double-spend attempt. Nodes (including miners) aren’t required to follow this policy because it’s just a policy.
-
Miners can always select whatever valid transactions they want to include in their blocks. Thus all transactions are in a way replaceable. A miner can offer replacement as a service—that is, upload a double-spend transaction with a high fee via the miner’s website to have it confirmed in the miner’s next winning block.
It is, of course, simpler for normal users to replace a transaction that has opted in to RBF. But using services like the aforementioned one is simple enough for a motivated thief. The difference in security therefore isn’t as big as you might think.
B.9. Chapter 10
-
The signature scripts.
-
A transaction, T2, that spends an output of an unconfirmed transaction, T1, can become invalid if T1 is changed into T1M while being broadcast, and T1M gets confirmed. This causes a lot of problems for contracts.
-
The time to verify a legacy transaction increases four times when the number of inputs doubles. This is because
-
You need to verify twice the number of signatures.
-
Each signature takes double the time to verify because the transaction to hash has doubled in size.
-
-
To verify that the transaction is included in a block, the lightweight wallet needs to calculate the transaction’s txid. The wallet needs the signatures to calculate the txid because they’re included in the txid.
-
The new behavior of
OP_NOP5
must, if it succeeds, be exactly like the old behavior ofOP_NOP5
. This means it should have no effect on the stack if it succeeds. -
a (p2wpkh) and c (p2wsh) are segwit addresses. d is a p2sh address, but it might contain a nested p2wpkh or p2wsh payment in the redeem script. We can’t say for sure. But the address is a p2sh address, not a segwit address.
-
The witness version is used to make future upgrades easier. The rule is that unknown witness versions are accepted. When a new witness version is deployed, old nodes will accept any payment that spends outputs with that new witness version. This avoids causing old and new nodes to follow different branches of the blockchain.
-
All data items in the signature script are pushed to the stack. No such items exist in the signature script, so there’s nothing to do there. Then,
00
will be pushed followed byc805…cba8
. The Script program is then finished, and the top item on the stack is checked. It’s not zero, which means the spending is valid. -
The new node will notice that the output has the segwit pattern. It will also notice that the witness version is
00
and that the witness program is 20 bytes. That means this is a p2wpkh output. To spend such an output, the signature script must be empty, and the witness must contain exactly a signature and the pubkey corresponding to the witness program,PKHY
. The p2wpkh template is filled in using the signature and public key from the witness field and the PKH from the pubkey script (the witness program). The filled-in template is then run normally. -
The fee merkle root can be placed in the right branch under the witness commitment. But you also need to put the fee merkle root in the witness for the coinbase input so that old segwit nodes can verify the witness root hash.
-
An old segwit node will verify the block exactly as before. The witness reserved value will be taken from the witness of the coinbase input. Using the hash from the witness lets the old node build the witness commitment and compare it with the hash in the
OP_RETURN
output, but it won’t know that the witness reserved value is a fee merkle root. Old nodes thus won’t be able to verify the fee merkle tree.A new node will do the same verification as an old node, but it will also calculate the fee merkle root and compare it to the hash in the coinbase’s witness.
B.10. Chapter 11
-
A soft fork tightens the consensus rules. This means blocks created by Bitcoin New nodes are guaranteed to be accepted by Bitcoin Old nodes.
-
-
The New branch will get wiped out by the Old branch.
-
It will eventually get wiped out when the Old branch catches up with the New branch and surpasses it. This can take quite a few blocks, depending on the initial deficit.
-
Bitcoin New could be equipped with wipeout protection—for example, by requiring that the first block in the split have a certain property that’s not valid in the Old chain. Bitcoin Cash, for example, required that the first block be > 1,000,000 bytes.
-
-
No, it will be outperformed by the New branch, and the Old branch will pretty quickly be wiped out, or reorged.
-
2,016 blocks. The
LOCKED_IN
state is always one retarget period. -
Both. Old nodes can create a block that’s not valid according to New nodes. Conversely, New nodes can create a block that’s not valid according to Old nodes.
-
If the New nodes don’t have a majority of the hashrate, the Old nodes can cause a lasting blockchain split. This would effectively result in two cryptocurrencies.
-
Replay protection is desirable because a transaction intended for one branch of the split shouldn’t risk ending up on the other branch.
-
Yes. Suppose the 11 timestamps before B1, sorted by value, are
a ≤ b ≤ c ≤ d ≤ e ≤ MTP1 ≤ g ≤ h ≤ i ≤ j ≤ k
To calculate MTP2 of block B2 following B1, add T1 to this list. Because a timestamp of a block needs to be strictly later than the MTP of the block, T1 must be sorted to the right of MTP1 in the list. For example:
a ≤ b ≤ c ≤ d ≤ e ≤ MTP1 ≤ g ≤ h ≤ T1 ≤ i ≤ j ≤ k
You must also remove the timestamp of the block with lowest height from the list of timestamps. No matter what timestamp you remove, MTP2 will be either MTP1 (if you remove a timestamp to the right of it), or the timestamp immediately to the right of MTP1 (if you remove a timestamp to the left of it) which can be either g or T1:
If MTP2 = MTP1, then MTP2 < timeout because MTP1 < timeout.
If MTP2 = g, then MTP2 ≤ T1 < timeout.
If MTP2 = T1 then MTP2 < timeout because T1 < timeout.
So, the MTP of B2 is less than timeout in all cases, and all blocks (>95%) of the last 2,016 blocks signal support, which means the deployment will move to
LOCKED_IN
and—2,016 blocks later—toACTIVE
. -
A portion (<30%) of the economy starts rejecting blocks that don’t comply with your soft fork. This means you’ll cause a blockchain split that will remain as long as a majority of miners support the Old branch.
-
When most of the economy starts rejecting Old blocks, miners probably won’t want to mine Old blocks because the block rewards will become nearly worthless for them. It would be hard for miners to sell their Old coins on an exchange or pay for electricity with them. If they switch to mine New blocks instead, plenty of options exist for exchanging their block rewards for goods, services, or other currencies.
-
The nonmining users using Old software will automatically switch to the New branch once that branch is stronger than the Old branch. This is because, in a soft fork, the New branch is valid according to the Old software.
Appendix C: Web resources
- Web resource 1
-
Satoshi Nakamoto, “Bitcoin: A Peer-to-Peer Electronic Cash System,” 2008, http://mng.bz/lppR.
- Web resource 2
-
Bitcoin Stack Exchange, http://mng.bz/BDDl.
- Web resource 3
-
Bitcoin Developer Reference, http://mng.bz/dPP1.
- Web resource 4
-
Bitcoin source code repository, http://mng.bz/rBBj.
- Web resource 5
-
Kalle Rosenbaum, source code for Grokking Bitcoin, http://mng.bz/qBO2.
- Web resource 6
-
“Financial Inclusion Data / Global Findex,” The World Bank, 2014, http://mng.bz/Vqqx.
- Web resource 7
-
“Reception of WikiLeaks: Response from the financial industry,” Wikipedia, http://mng.bz/gYnV.
- Web resource 8
-
Menelaos Hadjicostis, “Bank of Cyprus Depositors Lose 47.5% of Savings,” USA Today, July 29, 2013, http://mng.bz/pEez.
- Web resource 9
-
Bitcoin improvement proposals (BIPs), GitHub, http://mng.bz/OA0E.
- Web resource 10
-
Choose Your Bitcoin Wallet, http://mng.bz/xJJ6.
- Web resource 11
-
Andrea Corbellini, “Elliptic Curve Point Addition,” http://mng.bz/YOBA.
- Web resource 12
-
Discussion of why double SHA256 is used in Bitcoin, Stack Exchange Cryptography, http://mng.bz/G2aO.
- Web resource 13
-
Complete list of Script operators in Bitcoin, Bitcoin Wiki, http://mng.bz/A22Q.
- Web resource 14
-
Arthur Gervais, Ghassan O. Karame, Damian Gruber, and Srdjan Capkun, “On the Privacy Provisions of Bloom Filters in Lightweight Bitcoin Clients,” Cryptology ePrint Archive, http://mng.bz/ZZZ9.
- Web resource 15
-
Peter Todd, “What Attack Does the Difficulty Drop Rate Limiter Prevent?”, http://mng.bz/zgWQ.
- Web resource 16
-
Lightning Labs, Lightning Resources, http://mng.bz/RGGa.
- Web resource 17
-
A blockchain explorer showing the ascii-art transaction discussed in Chapter 9, http://mng.bz/J88Q.
- Web resource 18
-
Running a Full Node, http://mng.bz/2AAw.
- Web resource 19
-
Bitcoin Core download page, http://mng.bz/177R.
- Web resource 20
-
Getting Started with Bitcoin, http://mng.bz/P885.


Photo Bucket
more_vert
edit
Edit
delete
Delete
login
Sign Out
LOADING
Edit this image's caption
Caption
Delete this picture?
Are you sure you want to delete this picture?


This paragraph should be hidden.
This is a visible paragraph.
Note: The hidden attribute is not supported in IE10 or earlier versions.


One last thing...
We've sent you an email with a temporary password. Please check your email address and change your password.
Password must:
- have at least 1 uppercase letter
- have at least 1 lowercase letter
- have at least 1 digit
- be at least 8 characters long


June 16, 2018
Comments [3]
Big Sky, MT
This hike is great for people of all experience levels. There are some steep parts near the summit, but the panoramic views near the top are well worth the work to get there. The trailhead starts just on the east side of highway 5 just north of the rest stop. You can pull off on the shoulder to park your car.
Charlotte, NC
November 3, 2018
A nice trail that winds through the bogs and marshes near the sea. There is access to the beach near the end of the trail. It's approximately 5 miles long but worth every step.
Baudette, MN
June 23, 2017
You will never find a better camping location in your life. The site looks over the rainy river as it winds it's way through the US and Canada. There are large limestone banks on both sides of the river and it is an excellent location for viewing the wildlife with a cup of java.
Teton, WY
May 26, 2018
I walked to what seemed like the edge of the world when there are clouds below you. This lookout location is one of the most beautiful spots in the world IMO. Not for the faint of heart.
Banff, AB
Apr 4, 2016
This trail starts at a gnarly 13,000 feet and is for expert level climbers only. There are parts near the middle where you will need either a guide or proper rapelling gear to traverse the rock face. There is a camping spot near the summit for people who have no brain, I would not recommend staying there as the weather can turn nasty in a quick hurry in those locations.
Carolina, PR
December 12, 2018
Due to state regulations you must be with a guide to hike this trail. This is one of the more scenic routes on the island, and is accessible for all ages and experience levels. There is a pincturesque bridge that traverses the canopy of the jungle and leads to a spectacular hidden waterfall. Please comment on this post if you are interested in going.
Bolivia
October 9, 2017
I had an amazing guided rafting trip through one of the main rivers in Bolivia. Our guide, Pedro, was very friendly, helpful, and spoke very good english. The adventure was amazing and they had lunch prepared for us on the shores of the river when we ended. I would highly recommend this trip to anybody.
Luquillo, PR
December 14, 2018
This hike is about a 30 minute one way trip from the car to the secluded beach. Located just past the Conquistador Resort, it is a trek through the jungle to get to the pristine sands. Because it is remote, there usually aren't too many people out there. It's located in a spot where there are minimal waves and it's perfect for relaxatioin.
Norma, TN
August 28, 2016
Near the end of this trail is this beautiful picture of the train tracks crossing the gorge. The trail is about 10 miles in length and has ample spaces for camping. Please be sure to check whether there is a fire ban before starting one. The sound of the bugs chirping at night is so relaxing and the stars are beautiful.


Java Iterator class can help you to iterate through every element in a collection. Here is a simple example:
import java.util.*;
public class Example{
public static void main(String []args){
ArrayList mylist = new ArrayList();
mylist.add("Hello");
mylist.add("Java");
mylist.add("4");
Iterator it = mylist.iterator();
while(it.hasNext()){
Object element = it.next();
System.out.println((String)element);
}
}
}
In this problem you need to complete a method func. The method takes an ArrayList as input. In that ArrayList there is one or more integer numbers, then there is a special string "###", after that there are one or more other strings. A sample ArrayList may look like this:
element[0]=>42
element[1]=>10
element[2]=>"###"
element[3]=>"Hello"
element[4]=>"Java"
You have to modify the func method by editing at most 2 lines
so that the code only prints the elements after the special string "###". For the sample above the output will be:
Hello
Java
Note: The stdin doesn't contain the string "###", it is added in the main method.
To restore the original code in the editor, click the top left icon on the editor and create a new buffer.


🔑JavaScript implementation of the parity secret store for use in ocean.
This client abstracts the interface of the Parity Secret Store to just two methods encryptDocument
and decryptDocument
. It uses a local parity node to sign the generation of keys and stores them remotely into an instance of the secret store.
Start by adding the package to your dependencies:
npm i @oceanprotocol/secret-store-client
To get a new instance of SecretStore do the following:
`
ecmascript 6
import SecretStore from "@oceanprotocol/secret-store-client"
const secretStore = new SecretStore({ secretStoreUri: "https://secret-store.dev-ocean.com", parityUri: "http://localhost:8545", address: "0xed243adfb84a6626eba46178ccb567481c6e655d", password: "unittest", threshold: 2, })
To encrypt a document do the following:
```ecmascript 6
const testDocument = {
so: "ocean",
soWow: true,
}
// generate random 64 digit numerical id
const serverKeyId = generateRandomId()
/* this will:
* - sign the given serverKeyId with the private key from the given address (unlocked with given password)
* - generate a server key based in the given serverKeyId
* - generate a document key derived from the server key
* - store the document key in secret store
* - encrypt the document and return it
*/
const encryptedDocument = await secretStore.encryptDocument(serverKeyId, testDocument)
To decrypt a document do the following:
`
ecmascript 6
/* this will:
`
Now both documents are the same:
`
ecmascript 6
assert(testDocument.so === decryptedDocument.so)
## Development
To start development you need to:
```bash
npm i
npm start
Testing needs a local instance of parity client and secret store. You can spin up these services using oceanprotocol/barge:
git clone https://github.com/oceanprotocol/barge
cd barge
bash -x start_ocean.sh --latest --no-brizo --no-pleuston --local-spree-node 2>&1 > start_ocean.log &
To start test you need to:
npm run test
To run a single testsuite ParityClient
for example:
npm run test -- -g "ParityClient"
To watch tests
npm run test:watch
This will start a watcher for changes of the code.
To create code coverage
npm run test:cover
To create code documentation
npm run doc
npm run build
For a new patch release, execute on the machine where you're logged into your npm account:
npm run release
In case you have 2FA setup on npm.js, pass a code as One Time Password:
npm run release --otp <yourcode>
Command is powered by release-it
package, defined in the package.json
.
That's what the command does without any user interaction:
package.json
If you want to create a minor or major release, use these commands:
npm run release-minor
npm run release-major
`
Copyright 2018 Ocean Protocol Foundation Ltd.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Generated using TypeDoc


Maxwell S. Foley
2595 Bryden Rd. | Bexley, OH 43209 |<PHONE_NUMBER>
Experience
- Attended the Columbus Academy from fall of 1999 to spring of 2012.
- Ran cross country for three seasons
- Was the co-founder and Chief Justice of the political club
- Honorable Mention in the Scholastic Art and Writing awards
- Achieved a score of 5 on eight separate Advanced Placement tests
- Attended the Rhode Island School of Design pre-college program as a painting major in the summer of 2012
- Attended the Putney School from fall of 2012 to spring of 2013.
- Chose to spend a year at an alternative high school in order to broaden my horizons and have new experiences
- Worked on the school's dairy farm, waking up at 5:30 AM daily to milk cows, clean cow pens, feed sheep, turkeys, pigs, and chickens, among other things
- Worked in the school's kitchen, washing dishes
- Currently am an undergraduate at Washington University in St. Louis
- Pursuing double major in studio art and computer science
- Active in KWUR student radio and the Zeta Beta Tau fraternity
- Worked as an intern at the Department of Biomedical Informatics at the Ohio State University College of Medicine in summer of 2014
-
Developed Java applet for analyzing miRNA data in cancer patients in order to determine which genes are linked with incidents of melanoma
-
Designed web-based portal for nurses to relay information to elderly patients
- Worked as a teaching assistant at St. Louis Chess Club and Scholastic Center in the summer of 2015
- Worked on a two-man team to develop an educational video game about the carbon cycle in Adobe Flash
The product was developed under a grant from the National Science Foundation and terrestrial ecologist Ann Elizabeth Russell of Iowa State University.
Skills
- Coding (Java, C++, Perl, Python, and others)
- Web design (HTML, CSS, MySQL, PHP, JavaScript)
- Drawing, painting, working with wood and metal
- Photoshop, inDesign, Illustrator, Cinema 4D, Processing, Blender 3D, Abelton Live
- Writing


Sorry, your browser doesn't support the <canvas> element.
Gravity:
Velocity:
Drag:
Obstacles:
Angle:
Height:
Copy To Clipboard
Toggle Edit Mode


"UI for Cryptocurrency application"
"An application that will help user to buy or sell any Cryptocurrency."


Scientific Coordinator:
Dr George Lekakos<EMAIL_ADDRESS>Research streams
- Recommender Systems algorithms
- Persuasive Systems
- Big Data Analytics (BDA) and BDA Management for competitive advantage
- FinTech applications design
- User-centric Interaction and Interface design
- E-commerce and e-government
- IoT applications
Research Objectives
- Design new hybridization techniques for personalization algorithms
- Develop new models for building Competitive Advantage for the Data-Driven Enterprise
- Design consumer services enhanced with intelligent features in support of consumer’s daily living
- Design new types of personalized multimodal interfaces based on Artificial Companions Technology
- Build omnichannel customer experience based on personalized recommendations through interactive tools in physical environment (eg smart mirrors in physical retail stores) and online (eg chatbots, personal assistants)
- Develop persuasive models and persuasive messages based on communication and information theories
- Application of Deep Neural Networks in recommendation architectures achieving high recommendation quality and aiming at better customer satisfaction.
- Implementation of persuasive technologies in recommendation systems based on user-centric characteristics
- Developing models for real-time recommendation engines


Sorry, there is a problem with the service
Try again later.
If you keep getting the same error, contact the support team.
{% extends 'core/base.html' %} {% block title %}Error{% endblock title %} {% block content %}
Try again later.
If you keep getting the same error, contact the support team.


blog (2)
Adding to the blog
November 25, 2016
I ended up copying some links over from my work page so I can have them out in the wild.
Datproc, Presto and PySpark
July 29, 2022
Google Dataproc, Presto, and Jupyter
setup (1)
Adding to the blog
November 25, 2016
I ended up copying some links over from my work page so I can have them out in the wild.
start (1)
Rolling!
November 24, 2016
OK I’m opening this blog to help track my various activities and lessons learned. Hoping to capture good gists and also code snippets, links, and more.
welcome (2)
Rolling!
November 24, 2016
OK I’m opening this blog to help track my various activities and lessons learned. Hoping to capture good gists and also code snippets, links, and more.
You're up and running!
March 3, 2014
Next you can update your site name, avatar and other options using the _config.yml file in the root of your repository (shown below).


A single zip file will be available for download. It will include all result files along the the original data file. All result data files will be CSV format.
The zip file will included the base name of the original file along with the date and time.
The individual files will include the same basename along with a suffix to represent each step of the calculation process.
The entire criteria file is included to allow the user to check for non-matching Index Name and/or criteria columns.
As an example if the input file was “xxx.csv” the result files will look like those in Table 1 below.
The results file will retain all columns from the input file. Additional fields will be added from the StreamCat and NHDplus datasets as described in the Table 2 below.
| Output file | Description |
|---|---|
| xxx | Original input file |
| xxx_indexclassparam_RESULTS | Original input file with additional fields appended. This file will be ready to run the Assign Index Class function in the File Builder section of the BCGcalc Shiny app. |
| Column | Description |
|---|---|
| COMID | NHDplus COMID derived from StreamCat using latitude, longitude, and EPSG values provided by the user. |
| <existing columns> | Columns from input data. Latitude and Longitude fields will be moved to after COMID. |
| EPSG_CALC | EPSG value used to generate COMID |
| WSAREASQKM | Total watershed area (km2) based on EPA StreamCat dataset (Hill et al. 2016) (not exact watershed delineation) |
| elev_m | Mean elevation (meters) of local catchment area (km2) based on EPA StreamCat dataset (Hill et al. 2016) (not exact watershed delineation) |
| pslope_nhd | % NHDPlusV2 flowline slope (slope*100) |
| slopelenkm | length of NHDPlusV2 flowline (which the slope is based on) |
| gnis_name | waterbody name based on NHDPlusV2 |
| streamorde | Strahler stream order. Source: NHD+ VAA file |
| ftype | Flowline type based on NHDPlusV2 (e.g., stream/river, artificial path, connector/ditch) |
| fcode | Flowline code based on NHDPlusV2 |
Last updated 2023-06-01


|
XLMulator: Excel XLM Macro Emulator
|
Functions | |
| def | safe_print (text) |
| Sometimes printing large strings when running in a Docker container triggers exceptions. More... | |
| def | output (color, text) |
| Print colored text to stdout. More... | |
Variables | |
| bool | quiet = False |
| dictionary | colors |
| string | ENDC = '\033[0m' |
| def XLM.color_print.output | ( | color, | |
| text | |||
| ) |
Print colored text to stdout.
color - (str) The color to use. 'g' = green, 'r' = red, 'y' = yellow.
text - (str) The text to print.
Definition at line 45 of file color_print.py.
| def XLM.color_print.safe_print | ( | text | ) |
Sometimes printing large strings when running in a Docker container triggers exceptions.
This function just wraps a print in a try/except block to not crash when this happens.
| text | (str) The text to print. |
Definition at line 16 of file color_print.py.
| dictionary XLM.color_print.colors |
Definition at line 30 of file color_print.py.
| string XLM.color_print.ENDC = '\033[0m' |
Definition at line 35 of file color_print.py.
| bool XLM.color_print.quiet = False |
Definition at line 7 of file color_print.py.


RegExp Tester
Mariela Gamboa
1409 Coral Bell Dr. Joliet, IL 60435
<EMAIL_ADDRESS>(708)580-1028
Education
Lewis University, Romeoville, IL
- B.S. Computer Science Expected: Dec.2021
Joliet Junior College, Joliet, IL
- Associate in Applied Science in Management Information Systems May 2019
Experience
Cashier February 2020-March 2020
FunFlatables, Joliet, IL
- Cashier duties
- Cleaned the inflatables
- Cleaned the store
- Stocked the snacks and drinks
Sortation Associate November 2017-January 2020
Amazon, Crest Hill, IL
- Scanned packages and place the packages in the correct pallet
- Wrap pallets
- Fix packages that are damaged
- Help coworkers or help in other parts of the building if needed so customers receive their orders on time
Certifications
- Certificate of Achievement in Management Information Systems
- Certificate of Completion in Microsoft Office Specialist
Language Skills
Fluent in English and Spanish.


Converts a file with characters in any supported character encoding to one with ASCII and/or Unicode escapes, or visa versa.
native2ascii [options] [inputfile [outputfile]]
native2ascii
converts files that are encoded to any
character encoding that is supported by the Java runtime
environment to files encoded in ASCII, using Unicode escapes
("\uxxxx" notation) for all characters that are not part of the
ASCII character set. This process is required for properties files
containing characters not in ISO-8859-1 character sets. The tool
can also perform the reverse conversion.
If outputfile
is omitted, standard output is used
for output. If, in addition, inputfile
is omitted,
standard input is used for input.
-reverse
-encoding encoding_name
java.nio.charset.Charset.defaultCharset
method) is
used. The encoding_name
string must be the name of a
character encoding that is supported by the Java runtime
environment - see the Supported
Encodings document.


In this example we want to introduce how to use formulas within the text.
Inline formulas are created using the formula editor of OpenOffice: .
Formula boxes are created by simply including them in a new paragraph with a caption and without any other textual element in it, as follows.


Hello.
I'm Mutsa Meda,
front-end web developer & web designer.
About
I'm a highly-motivated, front-end web developer and designer with a passion for creative problem solving and creating user interfaces that balance functionality and aesthetics.
Tech Toolbox
HTML5
CSS3
JavaScript
Bootstrap
Git
Sass
Other skills include web content development, Adobe Photoshop and WordPress.


activity cruzi temperature nymphs pallidipennis Trypanosoma temperatures infected infection vector triatomine Chilpancingo prophenoloxidase PMG different Morelos survival {border-style °C, higher triatomines px;} #ffffff;} climate proPO change strain Chagas disease immune AMG fifth-instar insect intestine parasite rectum region vectors insects respect status Fig. Rhodnius non-infected (Fig. (Hemiptera: AMG, Nacional PBS activity, differences enzyme results used Autónoma Universidad determine effect incubated observed placed px; sterile strain, transmission {font-family °C. Parasitol. Temperature Triatoma control font-size interactions nymph prolixus response study °C) (AMG, **** Dis. Meccus P < . Reduviidae) double; effects group groups increase levels lower midgut showed strains °C). ± (PO) (proPO) ./s--- Cabrera-Bravo Infection Med Parasit Phenoloxidase Prophenoloxidase Table Trends Triatominae) Trop blood border-color border-width bugs capacity changes control, data decrease digestive diseases expected feed feeding high highest indicate kept model phenoloxidase rates regions reproduction risk scenarios solid; {font-style {font-weight ./S- ./j.pt... ./journal.pntd. Azambuja BG-R Climate Corrected Córdoba-Aguilar Elliot Entomol. Interactions Lorenzo México Negl Survival analysis analyzed bold clear control), courier; cruzi, development em; experimental fever fitness global human implications incubation infestans known lethal linear mean mice min parasites pattern posterior predictive pt;} rate rectum) reduced result status, strains. studies supernatant support work


Type a word in any language, print and let your kids trace it
Font size:
Dots:
Print
Project maintained by
avipinto
Hosted on GitHub Pages


History
The standard chess rules are set by FIDE (Fédération Internationale des Échecs), the international governing body for chess. Slight modifications are made by some national organizations for their own purposes. There are variations of the rules for fast chess, correspondence chess, online chess, and Chess960. Chess is a two-player board game utilizing a chessboard and sixteen pieces of six types for each player. Each type of piece moves in a distinct way. The goal of the game is to checkmate (threaten with inescapable capture) the opponent's king. Games do not necessarily end in checkmate; players often resign if they believe they will lose. A game can also end in a draw in several ways. Besides the basic moves of the pieces, rules also govern the equipment used, time control, conduct and ethics of players, accommodations for physically challenged players, and recording of moves using chess notation. Procedures for resolving irregularities that can occur during a game are provided as well.
Initial setup
Chess is played on a chessboard, a square board divided into 64 squares (eight-by-eight) of alternating color, which is similar to that used in draughts (checkers) (FIDE 2008). No matter what the actual colors of the board, the lighter-colored squares are called "light" or "white", and the darker-colored squares are called "dark" or "black". Sixteen "white" and sixteen "black" pieces are placed on the board at the beginning of the game. The board is placed so that a white square is in each player's near-right corner. Horizontal rows are called ranks and vertical rows are called files.
Continue reading
To continue learning the rules of chess, please visit the wikipedia article


TypeEntry (Class)
Namespace: stdlibXtf.Common
Define the entry for the collections of known sonar and packets.
Constructors
| TypeEntry() | Initializes a new instance of the TypeEntry class that has default zero values. |
| TypeEntry(Byte, String, String) | Initializes a new instance of the TypeEntry class with the given values. |
Properties
| ID | Gets the number that identify the kind of packet header. |
| Name | Gets the known name of the packet. |
| Description | Gets the known description of the packet. |
Examples
example ...
Remarks
remarks ...


--- layout: post title: CSS3 keyframe animation date: type: post parent_id: '0' published: false password: '' status: private categories: [] tags: [] meta: _edit_last: '12737289' _kad_blog_head: none _kad_post_summery: text _kad_sidebar_choice: sidebar-primary _kad_blog_author: 'no' _kad_blog_carousel_similar: 'no' restapi_import_id: 59486cef9f102 original_post_id: '862' _wp_old_slug: '862' author: login: nemopear email<EMAIL_ADDRESS>display_name: nemopear first_name: NUTCHAYA last_name: VORAYINGYONG permalink: "/" ---
@keyframes point-fade { from { opacity:0; } to { opacity:1;} }
animation:point-fade linear 1; /* call our keyframe named fadeIn, use animattion ease-in and repeat it only 1 time */ animation:point-fade linear 1; animation-fill-mode: forward; /* this makes sure that after animation is done we remain at the last keyframe value (opacity: 1)*/


remote resilience
2020
Remote Resilience is an online resource for individuals to find support, resources and fun distractions during the Covid-19 crisis. Originally taking form as a downloadable PDF, it morphed into a website for easier access, broader scope and for improving the overall user experience. I primarily used a palette of pastels to make the site soothing and approachable and Karla to keep the text clean, legible and easily read.
Screenshot of the landing page for Remote Resilience
In addition to researching, writing copy, + designing the website, I also created the illustrations using Figma
To showcase resources, I created cards with a short description and an illustration that corresponded to the section theme and the site's brand
In addition to designing the site, I also wrote all the copy, did all the research and coded it myself. It's still a work in progress, but I'm continually adding, refining and researching and expanding.


Ubuntu/ Debian use Apt (Advanced Package Tool) as their package manager (a package manager is a tool that assist you on resolving dependencies when installing, upgrading, configuring, and removing software).
Through out this guide, we only use apt-get install to install a package. In this part of the guide, I will show you how to get the most out of Apt package manger.
apt-get update
apt-get upgrade
Although name “upgrade”, the command is only for update packages that are already installed in your system.
apt-get install [package name]
The command also update that package if it has already installed.
apt-get install --no-install-recommends [package name]
apt-get remove [package name]
To remove a package along with all of its configuration file
apt-get --purge remove [package name]
apt-cache search [package name/ related word]
For instance, you can search for the key word “image viewer” to find all the info about image viewer in repositories.
apt-cache search “image viewer”
It’s very useful when you trying to install a minimal Ubuntu system (mostly by using the ”–no-install-recommends” flag) and sometimes find that some applications are lacking features (you need to installs some more of it recommends).
apt-cache depends [package name]
apt-cache policy [package-name]
apt-cache show [package-name]
Although not using apt but I find the below is a essential command to supplement to apt features.
dpkg -s [package name]
In fact, I often use it rather than apt-cache show/policy.
In my experience, with just all these commands, you can effectively manage your applications and your Ubuntu system.


[1]
facilities on site include a shop children 's play area great for dog owners.
[2]
there 's also a shop children 's play area nature trail fishing lake bar and restaurant.


0'>
Attempting to connect to server... {{countdownService.timer}}s
Game is hosted on a free server, hence it may take up to a minute to connect.
Could not connect to server
Still attempting to connect to server in the background. You may wait or check back later.


We exchange blockchain!
- orchestrate transparent web-readiness
- unleash e-business initiatives
- target value-added technologies
- redefine proactive solutions
- integrate dynamic e-services
- innovate dot-com technologies
- generate extensible solutions
- transition 24/7 infomediaries


Manchester City team news: Injury, suspension list vs. Chelsea
Reigning champions Manchester City will be looking to get back to winning ways when they host Chelsea on Saturday.
by Sean WilsonPep Guardiola's side were beaten 3-1 by league leaders Liverpool last time out and slipped down into fourth in the Premier League table as a result.
However, victory over third-placed Chelsea would see City leapfrog their opponents and prevent the Reds from widening the gap at the top of the league.
Here, Sports Mole rounds up City's latest injury and suspension news ahead of Saturday's contest.
Status: Minor doubt
Type of injury: Muscle
Possible return date: November 23 (vs. Chelsea)
Ederson was forced to miss the defeat to Liverpool but has been back in training over the international break and is very likely to return to the starting lineup against Chelsea.
Status: Out
Type of injury: Knee
Possible return date: January 18 (vs. Crystal Palace)
Guardiola has insisted that Sane will return before the end of the season, placing a comeback for the German winger at some point between December and February.
Status: Out
Type of injury: Knee
Possible return date: Unknown
City's defence has suffered greatly in the absence of Laporte but no timescale has yet been given for the centre-back's return after he suffered a serious knee injury.
Status: Out
Type of injury: Knee
Possible return date: December 7 (vs. Manchester United)
City are well-stocked at left-back and will hope that the options they have will step up in Zinchenko's absence, with the Manchester derby earmarked for his return.
MAN CITY'S SUSPENSION LIST
Return date: November 26 (vs. Shakhtar Donetsk)
The midfielder has been handed a one-match ban as a result of a social media post involving teammate Benjamin Mendy, meaning he is unavailable to face Chelsea.
body check tags ::


Antipersona simulates the experience of using Twitter as if you're signed in from any user account of your choice, providing a window into someone else's social media point-of-view. When you "become" an account on Antipersona, you can see the same timeline they see and receive the same notifications (for follows, mentions, and retweets) they receive, for 24 hours.
The advent of social media has turned our identities into discrete entities that we can mold to our wishes. At the same time, it has made us feel closer to other people's identities, enabling us to live a low-resolution version of their lives alongside them day by day. The boundary separating our own identities from those of the people that surround us has become increasingly blurred.
Perhaps being confined to a single identity is not how we want to exist in the world anymore. If that's the case, we need to come up with novel social and technological arrangements for sharing and adopting identities, turning them into a new kind of commons.
Antipersona offers a glimpse into a future of frictionless identity adoption.


{% extends 'layouts/base.html' %} {% block title %} Subtask B {% endblock title %} {% block content %}
Task: Select the most corresponding reason why this statement is against common sense.
Given an illogical statement, the trained NLP model have to choose the best of 3 explanations as to why the sentence is illogical.
False Sentence: {{falseSent}}
Explaination 1: {{sent0}}
Explaination 2: {{sent1}}
Explaination 3: {{sent2}}
{% endif %}


| DOSE: T+ 0:00 |
0.25 g |
oral |
Catnip |
(tea) |
| T+ 0:30 |
1 cig. |
smoked |
Hops |
(tar / resin) |
| T+ 0:30 |
1 cig. |
smoked |
Tobacco |
(tar / resin) |
| T+ 2:00 |
1 cig. |
smoked |
Cannabis |
(plant material) |
I had this weird experience on Catnip once. I smoke Mariuhana regularly from since I was seventeen years of age and have developed an experience with different psychedelic drugs over the years, including Psilocybin Mushrooms, Morning Glory, H.B.Woodrose, Calamus, Ephedra, MDMA and all kind of herbs I buy at my local Smartshop. I'm a social drinker, absolutely not regularly but I can get really drunk sometimes. I love Cats, I've got four now and during the time of the experience and previous experience with Catnip by smoking it with Weed and Tobacco, gave me kind of a fluffy feeling, nice and relaxed. I also drank the tea sometimes.
This particular evening was at a friday in the summer of 2002. I was alone at home as I usualy am when I'm using some mushrooms or other more trip-related substances. MDMA is more of a social drug to me but I 'experiment' on my own mostly, I think it's more honest to the experience itself to be by myself and enjoying the full experience, rather than to have a paranoia experience because people around me don't understand what's happening. And I enjoy it this way, I never have much trouble being alone anyway and I found that as long as I'm alone I really do have the most useful/intense experiences. I only make a Mushroom-trip together with other people if I realy trust them and they are of equal mind-set like me.
So here I was with a new brand of Catnip wich smelled surprisingly fresh and a kind of lemon-minty, other than I was used to. I was in a chill mood, refreshed from a long shower and made up my usual mushroom-set with dimmed lights and lots of burning candles accompanied by some spacey ambient. I had some of this stuff the week before (the Catnip that is) so I knew it was stronger than usual but that time I was pretty strung out from work and only noticed that it made me very heavy, sleepy and relaxed.
This time I was much more up to realy explore this. I was expecting something more than usual but this was a complete surprise. So I had boiled some water (I always use 0,5l. as a standard with my experiences) put in it 25gr. of Catnip, let it stand for about 30min. and filtered it in a paper cofee filter. The dark-brown strong tea has a very pleasant lemon-mint-tea taste. I felt the first effects while I was drinking it, a subtle feeling of increasing heaviness and relaxation and after that a very mild visual distortion, vibrating as a Cat's purr in my eyes. This came up in the first 15 to 30min. after drinking the tea.
I remembered than I had some Hop-resin left and decided to try it with the Catnip. I smeared a thin film of the Golden Honey Fluid on a cigarette paper, rolled it around a Camel with filter, took out the filter and replaced it with a little cardpaper filtertip. When I light it up it had a bitter taste to it, not to bad thou, weird enough a little bit like smoking beer. But it get's worse nearer to the bottom.
Only after a few hits I felt everything changing. I hadn't done Mushrooms in a while, but I felt this same sensation I sometimes feel when the mushrooms kick in, like something is taking over. My vision became very clear with almost shining colors and gradually everything became to move slowly in a fluid kind of motion.
By this time my cats dropped in one by one. Of course I gave them some to see if Cats and people could be high together and I could be having a wild immagination at that moment but during the 'trip' I certainly had a stronger feeling of connecting with my animals with mostly body-language, purring and meowing sounds and a strange feeling of just knowing that there was 'something' between us. Very mysterious, very loving.
After a while, maybe half an hour after the cigarette, I noticed that the effect of the Catnip was still going sronger. Everything became very fluid when I sat on the couch but I was very able to walk around and do stuff. When I sat down the fluidness returned.
It must be one and a half hour after smoking the Hop-cigarette now and I haven't smoked a joint or pipe from a few hours before taking the Catnip. I decide to roll a nice one and the effect surprises me again. Instead of feeling a Mariuhana-high, the effect of the Catnip and Hop increases a few times and it's like time is starting to slow down, everything inside feels calm, still and loving and music sounds slow and with extremely prolonged tones.
I'm so in love with my cats without wanting to cuddle them to death. Just seeing the look in there eyes when they look at me is enough. Their defenitely is some kind of Bastet-spirit around and I'm totally in awe. I didn't expect this. And after the next one and a half hour I smoked another joint and the same feelings and effects came on although somewhat less strong. After this the effects gradually wore off slowly to be replaced by a mild relaxing Mariuhana-Catnip high.
But by then I was wondering how in the hell I was getting there in the first place and I have to admit, after nummerous experiments afterward, also in the same kind of setting, even the same substances didn't give the same as that evening did.
Concluding: Maybe a once in a lifetime experience. The build up of the 'trip' was very much like with mushrooms but also very different of caracter. Whereas Mushrooms give me a very active and constantly changing mindset (busy with this, thinking about, extremely giggely and so on) this made me very serene and still. the whole trip had a very mysterious glow in it's appearance and like I said there was a very strong time-manipulative edge to it, although it felt also like time didn't matter very much. It very much felt like I really encountered some different type of dimension not to far away from ours with different types of rules about time and the substance of reality. I felt very much at one also with my environment as if my mind was flowing into it and out of it into me again. Very very fuid, serene, mysterious and loving.
The next day after a not to long but very sound sleep I felt completely revitalized and renewed. And after all this I regret one thing, and that is that I can't seem to create this state of mind again for a second time. But it still inspires me too, just thinking about it. And maybe that was all that Bastet/Catnip wanted me to learn, that I can find a true ally in her.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


'Stir of Echoes' (1999)
A movie review by Walter Frith
<EMAIL_ADDRESS>Member of the 'Online Film Critics Society' http://www.ofcs.org
Kevin Bacon usually does his best work as a character actor. His three best performances are in 'Sleepers' (1996) where he played a sexually abusive and brutally violent reform school guard. In 'Murder in the First' (1995), he played a man driven to the brink of insanity after being locked in the solitary confinement wing of prison for too long and in 'JFK', he played a male prostitute with a passion for wanting to tell the truth and his low rent state of mind displayed a protracted passion for political ignorance. Despite his great work, Bacon has never been nominated for an Academy award. Some of my friends liked his work in 1992's 'A Few Good Men' and 1994's 'The River Wild' and it's hard to ignore him in those films as well.
"We bury our dead alive, don't we?" This is a quote from an episode of television's 'The X-Files'.  An interesting theory and the idea of paranormal intrigue involving the dead has long been a fascinating part of going to the movies. But how many film makers and actors get it right?
Hypnosis. How much do we really know about it? According to what we learn in 'Stir of Echoes', only about 8 per cent of the population can really go under its influence. If this is true, Tom Witzky (Kevin Bacon in a good leading role) is one of the 8 per cent. Tom and his wife Maggie (Kathryn Erbe) attend a house party in their Chicago neighbourhod one evening where the subject of hypnosis comes up and Tom agrees to be put under the spell by his sister-in-law Lisa (Ileana Douglas). Shortly after he is in a complete trance, Tom begins to experience flashes of psychic visions involving a dead teenage girl and her spirit roaming about in his home and around the neighbourhood. This is a part of the plot carried out for the entire film. We learn that the Witzky's son Jake (Zachary David Cope) can see the ghost of dead people. And now dad begins to exhibit some of the same characteristics. A clever way to portray this in the movie. Usually, in other films, we see the eldest members of the family with this sense come forward first and then the children but in this case it comes naturally to the child while dad has it buried in his sub conscious mind and has it brought out by the magic of hypnosis.
'Stir of Echoes' is a mind numbing and adrenalin pumping thriller that uses the supernatural, a thrilling sub text and crime as its main elements of entertainment. As the film progresses, it appears to make no sense whatsoever, a merry go round of unpleasant images that don't seem to tell us anything. But then it clicks in in an anti-climactic manner to illustrate why it kept stringing us along from the start.
The film is based on the novel 'A Stir of Echoes' by Richard Matheson whose other novel 'What Dreams May Come', was brought to the big screen in 1998 starring Robin Williams as a man who goes to heaven but learns his wife is in hell and strives to bring her back with him to eternal paradise. Matheson has a fascination with fantasy but 'Stir of Echoes' is more than that. It's an honest and genuine thriller that sends shivers down one's spine and I was very impressed with writer/director David Koepp's ability to keep the chills coming and keep the whole thing seem credible to feed the notion that things displayed in this film are possible if you believe the ideas of some theologians and people who make a habit documenting the paranormal experience.
I immediately drew comparisons from this film to 1983's 'The Dead Zone' and this year's 'The Sixth Sense'. Those films have a more human look to them that 'Stir of Echoes'. A more calculating sense of emotion if you will. But for all of its effort, 'Stir of Echoes' stops just short of being a great character study. It seems more concerned with the chills than with developing great characters all around. It still manages to haunt us with the miraculous wonder of great storytelling and it may be one of the year's defining films that keeps in check with the definition of "on the edge of your seat".
OUT OF 5 > * * * 1/2
Visit FILM FOLLOW-UP by Walter Frith http://www.cgocable.net/~wfrith/movies.htm
* * * * * - a must see * * * * 1/2 - don't miss it * * * * - an excellent film * * * 1/2 - a marginal recommendation * * * - can't quite recommend it * * 1/2 - don't recommend it * * - avoid it * 1/2 - avoid it seriously * - avoid it AT ALL COSTS 1/2 - see it at your own risk zero - may be hazardous to your health
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


BACK
Vegetable.
What is cut. What is cut by it. What is cut by it in.
It was a cress a crescent a cross and an unequal scream, it was upslanting, it was radiant and reasonable with little ins and red.
News. News capable of glees, cut in shoes, belike under pump of wide chalk, all this combing.
GO
my answer: watercress
I read this story once but have never been able to find it again: Sometime around the middle of the last century, a women’s magazine printed a letter from a reader, in which it was proposed that an elegant presentation for asparagus would be to freeze a bundle of the vegetable in a block of ice. The magazine’s staff responded that this would indeed be elegant, but they were unsure how it would be eaten.
GO
BACK
Cooking.
Alas, alas the pull alas the bell alas the coach in china, alas the little put in leaf alas the wedding butter meat, alas the receptacle, alas the back shape of mussle, mussle and soda.
GO
Cochinchina is a region encompassing the southern third of Vietnam. It was a French colony from 1862 to 1954.
Recommended Readings on French Cooking and Translation:
GO
"When gourmandise becomes gluttony, voracity or debauchery, it loses its name and attributes, falling into the hands of the moralist who will treat it by advice, or the medical man who will treat it by remedy. Gourmandise, as the professor has described it, has a name only in French; neither the Latin gula, English 'gluttony' nor German lusternheit, expresses it, and we recommend all who attempt a translation of this instructive book to preserve the word, changing the article which produces it only." — Jean Anthelme Brillat-Savarin
"Indeed, stock is everything in cooking, at least in French cooking. Without it, nothing can be done. If one's stock is good, what remains of the work is easy; if, on the other hand, it is bad or merely mediocre, it is quite hopeless to expect anything approaching a satisfactory result." — Auguste Escoffier
"The best foreign cooking is in the homes of the French who have been forced for one reason or another to live in their colonies. Even Italian dishes are rarely well prepared by the French. As for American dishes, they are scarcely recognisable. But after two or three years in Indo-China or Africa, they return not only with the recipes of the local cooking but with the materials unobtainable in France and a knowledge of how to prepare them." — Alice B. Toklas
BACK
Chicken.
Pheasant and chicken, chicken is a peculiar third.
GO
Which is a peculiar third?
I've always thought this section was funny, although I doubt many others do. David Burke, the chef at Townhouse in New York, I think might. For at least the past few years, he has had on his menu a dish called Duck Duck Duck. At one point it consisted of a seared breast, a foie gras dumpling and a confit thigh, but it seems that the thigh has at some point been replaced by a meatloaf. Apparently Duck Duck Duck may be many different things—and to many different people, as Masaharu Morimoto (of Iron Chef fame) includes on his menu a dish of the same name. His version includes a Peking duck leg, a soft duck egg and a duck sandwich on a foie gras croissant. New York magazine called Morimoto's dish "an inspired postmodern dissertation."
Complications proliferate. Burke has accused Morimoto of stealing his dish, and Morimoto, at his Napa restaurant, offers a dish called Duck Duck Goose that introduces gooseberries to the mix.


Akan names come from a traditional naming system for people of Ghana. A child’s name is determined by factors surrounding his or her birth. For example, the day of their birth or the manner in which they were born may determine which name they get according to their gender. These Akan names signify the day one is born. According to Akan tradition, each child is born with a name associated to their soul. The day the child is born is therefore determined by the soul. The well thought and organized naming system of the Akan’s was initiated by the ancestors and has attracted so many people’s attention as they desire to know more about these names. As a matter of fact, it is possible to tell what led to someone’s birth, the day they were born and their rank among the siblings just by their names.


TaskScheduler
public struct TaskScheduler
extension TaskScheduler: TaskExecutor
Undocumented
-
Undocumented
Declaration
Swift
public static let main: TaskScheduler
-
Undocumented
Declaration
Swift
public static let global: TaskScheduler
-
Undocumented
Declaration
Swift
public static let immediate: TaskScheduler
-
Undocumented
Declaration
Swift
@inlinable public init(scheduler: @escaping (@escaping () -> Void) -> Void, isCurrent: @escaping () -> Bool = { false })
-
Undocumented
Declaration
Swift
@inlinable public func execute(_ block: @escaping () -> Void)
-
Undocumented
Declaration
Swift
@inlinable public static func runLoop(_ runLoop: RunLoop) -> TaskScheduler
-
Undocumented
Declaration
Swift
@inlinable public static func dispatchQueue(_ queue: DispatchQueue, qos: DispatchQoS = .unspecified, flags: DispatchWorkItemFlags = [], group: DispatchGroup? = nil) -> TaskScheduler
-
Undocumented
Declaration
Swift
@inlinable public static func operationQueue(_ queue: OperationQueue) -> TaskScheduler
-
Undocumented
Declaration
Swift
@inlinable public func taskScheduler() -> TaskScheduler