It's that time of year again, and we've got a new version of macOS on our hands! This year we've finally jumped off the 10.xx naming scheme and now going to 11! And with that, a lot has changed under the hood in macOS. As with previous years, we'll be going over what's changed in macOS and what you should be aware of as a macOS and Hackintosh enthusiast.
Has Nvidia Support finally arrived?
What has changed on the surface
A whole new iOS-like UI
Broken Kexts in Big Sur
What has changed under the hood
New Kernel cache system: KernelCollections!
New Kernel Requirements
Secure Boot Changes
No more symbols required
Broken Kexts in Big Sur
MSI Navi installer Bug Resolved
New AMD OS X Kernel Patches
Other notable Hackintosh issues
Several SMBIOS have been dropped
Extra long install process
X79 and X99 Boot issues
New RTC requirements
Legacy GPU Patches currently unavailable
What’s new in the Hackintosh scene?
Dortania: a new organization has appeared
Dortania's Build Repo
True legacy macOS Support!
Intel Wireless: More native than ever!
Clover's revival? A frankenstein of a bootloader
Death of x86 and the future of Hackintoshing
Getting ready for macOS 11, Big Sur
Has Nvidia Support finally arrived?
Sadly every year I have to answer the obligatory question, no there is no new Nvidia support. Currently Nvidia's Kepler line is the only natively supported gen. However macOS 11 makes some interesting changes to the boot process, specifically moving GPU drivers into stage 2 of booting. Why this is relevant is due to Apple's initial reason for killing off Web Drivers: Secure boot. What I mean is that secure boot cannot work with Nvidia's Web Drivers due to how early Nvidia's drivers have to initialize at, and thus Apple refused to sign the binaries. With Big Sur, there could be 3rd party GPUs however the chances are still super slim but slightly higher than with 10.14 and 10.15.
What has changed on the surface
A whole new iOS-like UI
Love it or hate it, we've got a new UI more reminiscent of iOS 14 with hints of skeuomorphism(A somewhat subtle call back to previous mac UIs which have neat details in the icons) You can check out Apple's site to get a better idea:
A feature initially baked into APFS back in 2017 with the release of macOS 10.13, High Sierra, now macOS's main System volume has become both read-only and snapshotted. What this means is:
3rd parties have a much more difficult time modifying the system volume, allowing for greater security
OS updates can now be installed while you're using the OS, similar to how iOS handles updates
Time Machine can now more easily perform backups, without file inconsistencies with HFS Plus while you were using the machines
However there are a few things to note with this new enforcement of snapshotting:
OS snapshots are not calculated as used space, instead being labeled as purgeable space
Disabling macOS snapshots for the root volume with break software updates, and can corrupt data if one is applied
What has changed under the hood
Quite a few things actually! Both in good and bad ways unfortunately.
New Kernel Cache system: KernelCollections!
So for the past 15 years, macOS has been using the Prelinked Kernel as a form of Kernel and Kext caching. And with macOS Big Sur's new Read-only, snapshot based system volume, a new version of caching has be developed: KernelCollections! How this differs to previous OSes:
Kexts can no longer be hot-loaded, instead requiring a reboot to load with kmutil
OS Snapshots are now verified on each boot to ensure no system volume modifications occurred
apfs.kext and AppleImage4.kext verify the integrity of these snapshots
While technically these security features are optional and can be disabled after installation, many features including OS updates will no longer work reliably once disabled. This is due to the heavy reliance of snapshots for OS updates, as mentioned above and so we highly encourage all users to ensure at minimum SecureBootModel is set to Default or higher.
Note: ApECID is not required for functionality, and can be skipped if so desired.
Note 2: OpenCore 0.6.3 or newer is required for Secure Boot in Big Sur.
No more symbols required
This point is the most important part, as this is what we use for kext injection in OpenCore. Currently Apple has left symbols in place seemingly for debugging purposes however this is a bit worrying as Apple could outright remove symbols in later versions of macOS. But for Big Sur's cycle, we'll be good on that end however we'll be keeping an eye on future releases of macOS.
New Kernel Requirements
With this update, the AvoidRuntimeDefrag Booter quirk in OpenCore broke. Because of this, the macOS kernel will fall flat when trying to boot. Reason for this is due to cpu_count_enabled_logical_processors requiring the MADT (APIC) table, and so OpenCore will now ensure this table is made accessible to the kernel. Users will however need a build of OpenCore 0.6.0 with commit bb12f5for newer to resolve this issue. Additionally, both Kernel Allocation requirements and Secure Boot have also broken with Big Sur due to the new caching system discussed above. Thankfully these have also been resolved in OpenCore 0.6.3. To check your OpenCore version, run the following in terminal: nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:opencore-version If you're not up-to-date and running OpenCore 0.6.3+, see here on how to upgrade OpenCore: Updating OpenCore, Kexts and macOS
Broken Kexts in Big Sur
Unfortunately with the aforementioned KernelCollections, some kexts have unfortunately broken or have been hindered in some way. The main kexts that currently have issues are anything relying on Lilu's userspace patching functionality:
Big Sur dropped a few Ivy Bridge and Haswell based SMBIOS from macOS, so see below that yours wasn't dropped:
iMac14,3 and older
Note iMac14,4 is still supported
MacPro5,1 and older
MacMini6,x and older
MacBook7,1 and older
MacBookAir5,x and older
MacBookPro10,x and older
If your SMBIOS was supported in Catalina and isn't included above, you're good to go! We also have a more in-depth page here: Choosing the right SMBIOS For those wanting a simple translation for their Ivy and Haswell Machines:
iMac13,1 should transition over to using iMac14,4
iMac13,2 should transition over to using iMac15,1
iMac14,2 and iMac14,3 should transition over to using iMac15,1
Note: AMD CPUs users should transition over to MacPro7,1
iMac14,1 should transition over to iMac14,4
Currently only certain hardware has been officially dropped:
"Official" Consumer Ivy Bridge Support(U, H and S series)
These CPUs will still boot without much issue, but note that no Macs are supported with consumer Ivy Bridge in Big Sur.
Ivy Bridge-E CPUs are still supported thanks to being in MacPro6,1
Ivy Bridge iGPUs slated for removal
HD 4000 and HD 2500, however currently these drivers are still present in 11.0.1
Similar to Mojave and Nvidia's Tesla drivers, we expect Apple to forget about them and only remove them in the next major OS update next year
Due to the new snapshot-based OS, installation now takes some extra time with sealing. If you get stuck at Forcing CS_RUNTIME for entitlement, do not shutdown. This will corrupt your install and break the sealing process, so please be patient.
X79 and X99 Boot issues
With Big Sur, IOPCIFamily went through a decent rewriting causing many X79 and X99 boards to fail to boot as well as panic on IOPCIFamily. To resolve this issue, you'll need to disable the unused uncore bridge:
With macOS Big Sur, AppleRTC has become much more picky on making sure your OEM correctly mapped the RTC regions in your ACPI tables. This is mainly relevant on Intel's HEDT series boards, I documented how to patch said RTC regions in OpenCorePkg:
For those having boot issues on X99 and X299, this section is super important; you'll likely get stuck at PCI Configuration Begin. You can also find prebuilts here for those who do not wish to compile the file themselves:
For some reason, Apple removed the AppleIntelPchSeriesAHCI class from AppleAHCIPort.kext. Due to the outright removal of the class, trying to spoof to another ID (generally done by SATA-unsupported.kext) can fail for many and create instability for others. * A partial fix is to block Big Sur's AppleAHCIPort.kext and inject Catalina's version with any conflicting symbols being patched. You can find a sample kext here: Catalina's patched AppleAHCIPort.kext * This will work in both Catalina and Big Sur so you can remove SATA-unsupported if you want. However we recommend setting the MinKernel value to 20.0.0 to avoid any potential issues.
Legacy GPU Patches currently unavailable
Due to major changes in many frameworks around GPUs, those using ASentientBot's legacy GPU patches are currently out of luck. We either recommend users with these older GPUs stay on Catalina until further developments arise or buy an officially supported GPU
What’s new in the Hackintosh scene?
Dortania: a new organization has appeared
As many of you have probably noticed, a new organization focusing on documenting the hackintoshing process has appeared. Originally under my alias, Khronokernel, I started to transition my guides over to this new family as a way to concentrate the vast amount of information around Hackintoshes to both ease users and give a single trusted source for information. We work quite closely with the community and developers to ensure information's correct, up-to-date and of the best standards. While not perfect in every way, we hope to be the go-to resource for reliable Hackintosh information. And for the times our information is either outdated, missing context or generally needs improving, we have our bug tracker to allow the community to more easily bring attention to issues and speak directly with the authors:
Kexts here are built right after commit, and currently supports most of Acidanthera's kexts and some 3rd party devs as well. If you'd like to add support for more kexts, feel free to PR: Build Repo source
True legacy macOS Support!
As of OpenCore's latest versioning, 0.6.2, you can now boot every version of x86-based builds of OS X/macOS! A huge achievement on @Goldfish64's part, we now support every major version of kernel cache both 32 and 64-bit wise. This means machines like Yonah and newer should work great with OpenCore and you can even relive the old days of OS X like OS X 10.4! And Dortania guides have been updated accordingly to accommodate for builds of those eras, we hope you get as much enjoyment going back as we did working on this project!
Intel Wireless: More native than ever!
Another amazing step forward in the Hackintosh community, near-native Intel Wifi support! Thanks to the endless work on many contributors of the OpenIntelWireless project, we can now use Apple's built-in IO80211 framework to have near identical support to those of Broadcom wireless cards including features like network access in recovery and control center support. For more info on the developments, please see the itlwm project on GitHub: itlwm
Note, native support requires the AirportItlwm.kext and SecureBootModel enabled on OpenCore. Alternatively you can force IO80211Family.kext to ensure AirportItlwm works correctly.
Airdrop support currently is also not implemented, however is actively being worked on.
Clover's revival? A frankestien of a bootloader
As many in the community have seen, a new bootloader popped up back in April of 2019 called OpenCore. This bootloader was made by the same people behind projects such as Lilu, WhateverGreen, AppleALC and many other extremely important utilities for both the Mac and Hackintosh community. OpenCore's design had been properly thought out with security auditing and proper road mapping laid down, it was clear that this was to be the next stage of hackintoshing for the years we have left with x86. And now lets bring this back to the old crowd favorite, Clover. Clover has been having a rough time of recent both with the community and stability wise, with many devs jumping ship to OpenCore and Clover's stability breaking more and more with C++ rewrites, it was clear Clover was on its last legs. Interestingly enough, the community didn't want Clover to die, similarly to how Chameleon lived on through Enoch. And thus, we now have the Clover OpenCore integration project(Now merged into Master with r5123+). The goal is to combine OpenCore into Clover allowing the project to live a bit longer, as Clover's current state can no longer boot macOS Big Sur or older versions of OS X such as 10.6. As of writing, this project seems to be a bit confusing as there seems to be little reason to actually support Clover. Many of Clover's properties have feature-parity in OpenCore and trying to combine both C++ and C ruins many of the features and benefits either languages provide. The main feature OpenCore does not support is macOS-only ACPI injection, however the reasoning is covered here: Does OpenCore always inject SMBIOS and ACPI data into other OSes?
Death of x86 and the future of Hackintoshing
With macOS Big Sur, a big turning point is about to happen with Apple and their Macs. As we know it, Apple will be shifting to in-house designed Apple Silicon Macs(Really just ARM) and thus x86 machines will slowly be phased out of their lineup within 2 years. What does this mean for both x86 based Macs and Hackintoshing in general? Well we can expect about 5 years of proper OS support for the iMac20,x series which released earlier this year with an extra 2 years of security updates. After this, Apple will most likely stop shipping x86 builds of macOS and hackintoshing as we know it will have passed away. For those still in denial and hope something like ARM Hackintoshes will arrive, please consider the following:
We have yet to see a true iPhone "Hackintosh" and thus the likely hood of an ARM Hackintosh is unlikely as well
There have been successful attempts to get the iOS kernel running in virtual machines, however much work is still to be done
Apple's use of "Apple Silicon" hints that ARM is not actually what future Macs will be running, instead we'll see highly customized chips based off ARM
For example, Apple will be heavily relying on hardware features such as WX, kernel memory protection, Pointer Auth, etc for security and thus both macOS and Applications will be dependant on it. This means hackintoshing on bare-metal(without a VM) will become extremely difficult without copious amounts of work
Also keep in mind Apple Silicon will no longer be UEFI-based like Intel Macs currently are, meaning a huge amount of work would also be required on this end as well
So while we may be heart broken the journey is coming to a stop in the somewhat near future, hackintoshing will still be a time piece in Apple's history. So enjoy it now while we still can, and we here at Dortania will still continue supporting the community with our guides till the very end!
Getting ready for macOS 11, Big Sur
This will be your short run down if you skipped the above:
Lilu's userspace patcher is broken
Due to this many kexts will break:
WhateverGreen's DRM and -cdfon patches
Many Ivy Bridge and Haswell SMBIOS were dropped
See above for what SMBIOS to choose
Ivy Bridge iGPUs are to be dropped
Currently in 11.0.1, these drivers are still present
For the last 2, see here on how to update: Updating OpenCore, Kexts and macOS In regards to downloading Big Sur, currently gibMacOS in macOS or Apple's own software updater are the most reliable methods for grabbing the installer. Windows and Linux support is still unknown so please stand by as we continue to look into this situation, macrecovery.py may be more reliable if you require the recovery package. And as with every year, the first few weeks to months of a new OS release are painful in the community. We highly advise users to stay away from Big Sur for first time installers. The reason is that we cannot determine whether issues are Apple related or with your specific machine, so it's best to install and debug a machine on a known working OS before testing out the new and shiny. For more in-depth troubleshooting with Big Sur, see here: OpenCore and macOS 11: Big Sur
Bluehole - Let's talk Wellbia/XINGCOD3 user privacy risks for the sake of transparency
For those who don't know.. XINGCODE-3 is a kernel (ring0) privillege process under xhunter1.sys owned by the Korean company Wellbia (www.wellbia.com). Unlike what people say, Wellbia isn't owned or affiliated with Tencent, however, XINGCOD3 is custom designed contractor for each individual game - mainly operating in the APAC region, many of them owned by Tencent. XINGCODE-3 is outsourced to companies as a product modified to the specific characteristics of the game. The process runs on the highest privilegied level of the OS upon boot and is infamous for being an essential rootkit - on a malware level, it has the highest vulnerability to be abused should Wellbia or any of the 3rd Party Companies be target of an attack. It has been heavily dissected by the hacking community as being highly intrusive and reversed engineered (although nowadays still easily bypassable by a skilled and engaged modder by created a custom Win Framework). While most is true for a standard anti-cheating, users should be aware that XINGCOD3 able to scan the entire user memory cache, calls for DLL's, including physical state API's such as GetAsyncKeyState where it scans for the physical state of hardware peripherals, essentially becoming a hardware keylogger. Studying the long history of reverse engineering of this software has shown that Wellbia heavily collects user data for internal processing in order to create whitelists of processes and strings analyzed by evaluating PE binaries - having full access to your OS it also is known to scan and having access to user file directories and collecting and storing paths of modified files under 48 hours for the sake of detecting possible sources of bypassing. All this data is ultimately collected by Wellbia to their host severs - also via API calls to Korean servers in order to run services such as whitelists, improve algorithm accuracy and run comparative statistics and analysis based on binaries, strings and common flags. Usually this is a high risk for any service, including BattleEye, EasyAntiCheat, etc. but what's worrying in Wellbia, thus. Bluehole's are actually a couple of points: (not to mention you can literally just deny the service from installing, which by itself is already a hilarious facepalm situation and nowhere does the TSL call for an API of the service)
Starting off, Wellbia is a rather small development company with having only one product available on the market for rather small companies, the majority hold by Chinese government and countries where the data handling, human rights and user privacy is heavily disregarded. This makes my tinfoil hat think that the studio's network security isn't as fortified as a Sony which had abused rootkits, just due to budget investment alone. Their website is absolutely atrocious and amateur - and for an international company that deals with international stakeholders and clients it's impressive the amount of poor english, errors and ambiguous information a company has in their presentation website - there's instances where the product name is not even correctly placed in their own EULA - if a company cannot invest even in basic PR and presentation something leaves me a bitter taste that their network security isn't anything better. They can handle user binaries but network security is a completely different work. The fact that hackers are easily able to heartbeat their API network servers leaves me confirming this.
This the most fun one. Wellbia website and terms conditions explicitely say that they're not held accountable should anything happen - terms that you agree and are legally binded to by default by agreeing to Bluehole's terms and conditions:" Limitations of Company Responsibility
IGNCODE3 is a software provided for free to users. Users judge and determine to use services served by software developers and providers, and therefore the company does not have responsibility for results and damages which may have occurred from XIGNCODE3 installation and use.
2. Company has no responsibility attributable to user’s computer or network environment-based reasons.
3. Company has no responsibility for XIGNCODE3 and XIGNCODE3 based service errors, XIGNCODE3 and XIGNCODE3 based service prohibition from other services are attributable to user-based reasons."
(the fact that in 1. they can't even care to write properly the name of their product means how little they care about things in general - you can have a look at this whole joke of ToS's that I can probably put more effort in writting it: https://www.wellbia.com/?module=Html&action=SiteComp&sSubNo=5 - so I am sorry if I don't trust where my data goes into) 3) It kinda pisses me that Bluehole adopted this in the midst of the their product got released post-purchase. When I initially bought the product, in nowhere was written that the user operative system data was being collected by a third party company to servers located in APAC (and I'm one of those persons who heavily reads terms and conditions) - and the current ToS's still just touch this topic on the slightest and ambiguously - it does not say which data gets collected, discloses who and where it's hold - "third party" could be literally anyone - a major disrespect for your consumers. I'm kinda of pissed off as when I initially purchase the product in very very early stages of the game I didn't agree for any kernel level data collection to be held abroad without disclosure of what data is actually being collected otherwise it would have been a big No on the purchase. The fact that you change the rules of the game and the terms of conditions in the midst of the product release leaves me with two options Use to Your Terms or Don't Use a product I've already purchased now has no use - both changes ingame and these 3rd party implementations are so different from my initial purchase that I feel like it's the equivalent of purchasing a shower which in the next year is so heavily modified that it decides to be a toilet. I would really like for you Bluehole to show me the initial terms and conditions to when the game was initially released and offer me a refund once you decided to change the product and terms and conditions midway which I don't agree with but am left empty handed with no choice but to abandon the product - thus making this purchase a service which I used for X months and not a good. I really wish this topic had more visibility as I know that the majority of users are even in the dark about this whole thing and Valve and new game companies really make an effort in asserting their product's disclosures about data transparency and the limit of how much a product can change to be considered a valid product resembelance upon purchase when curating their games in the future - I literally bought a third person survival shooter and ended up with a rootkit chinese FPS. Sincerely, a pissed off customer - who unlike the majority is concerned about my data privacy and I wish you're ever held accountable for changing sensitive contract topics such as User Privacy mid-release. ----- EDIT: For completely removing it from your system should you wish: Locate the file Xhunter1.sysThis file is located in this directory: C:\Windows\xhunter1.sys Remove the Registry Entry (regedit on command prompt)The entry is located here: HKEY_LOCAL_MACHINE > SYSTEM > ControlSet001 > Services > xhunter For more information about XINGCOD3 and previous succesful abuses which show the malignant potential of the rootkit (kudos to Psychotropos): - https://x86.re/blog/xigncode3-xhunter1.sys-lpe/ - https://github.com/Psychotropos/xhunter1_privesc
Back around 2008, I built a machine with a 3ware RAID controller, and set up 15 1TB drives in RAID 6. At some point in maybe 2010, I had 3 (or maybe only 2) drives fail due to (most likely) overheating. I was unable to rebuild the array at the time, even with swapping out the failed drive/s. I don't remember the details. More than a decade later, I still have all 15 drives, in a box, labeled with their order, and the original 3ware controller, and a desiccant pack. I have no idea if the drives still work, but I am finally ready to try to recover the data from them, assuming they still work. After a bit of duckduckgo-ing, it appears that I really only have 2 options - use recovery software or use a recovery service where I ship out my drives. The data on these drives, while nice to have, is not worth me sending them to a 3rd party. I am, however, willing to spend a little money on the recovery software if I need to. Based on my searching, it appears that there are 3 viable options: * https://www.diskinternals.com/raid-recovery/ * https://www.stellarinfo.com/article/raid6-data-recovery.php * http://www.freeraidrecovery.com/ The Diskinternals solution looks like it may be the easiest, but I'm not sure what to expect when I actually try to use it. The Stellar one looks good as well - it has instructions with screenshots and I was able to find a video of someone actually using it. But it needs some technical parameters that I have no idea how to retrieve - maybe I could hook up the old controller and read them by accessing the controller from the bios? I will try that once I'm ready to get my hands dirty. The ReclaiMe one appears to be easy and free, claiming that it will automatically determine the parameters that Stellar expects you to supply. Seems too good to be true, especially as a free product. Their site and their claims make me not trust them... So to get started on this project, the very first thing I want to do is take some kind of image of each of the 15 drives. Do any of you have recommendations for the best way to do this? The first step in Diskinternals instructions (which are on this separate page for some reason - https://www.diskinternals.com/raid-recovery/raid-6-data-recovery/) list creating a "binary image" of the disk/s. Once I do this, then do I need to mount it somehow? Do I need some separate program to do that in Windows? I know that I can (and will) look this up, but taking an image of known corrupted drives for the purposes of RAID data recovery with specialized recovery software seems to be a pretty special case, and I want to make sure that the image I take is what will be needed to attempt the recovery. I don't know how many times I'll be able to read from these old drives. I did a little searching before posting this about disk imaging/cloning - it seems like I need an image, not a clone. Clonezilla looks like the best option (and I've used it before). I've heard good things about Acronis, but their new pricing model turns me off. Most of the alternatives to Clonezilla (Acronis, Paragon, Macrium) don't have technical-enough language to earn my trust. I also took a look at isobuster, because that's a program I already have, but it looks like its ability to take raw images does not include HDDs. A quick search of datahoarder using the search term "raid 6" didn't bring up any posts that had addressed this scenario - most were about swapping/rebuilding. Any help, guidance, insight, etc. is appreciated. Thanks!
How to generate (relative) secure paper wallets and spend them (Newbies)
How to generate (relative) secure paper walletsEveryone is invited to suggest improvements, make it easier, more robust, provide alternativers, comment on what they like or not, and also critizice it. Also, this is a disclaimer: I'm new to all of this. First, I didn't buy a hardware wallet because they are not produce in my country and I couldnt' trust they are not tampered. So the other way was to generate it myself. (Not your keys not your money) I've instructed myself several weeks reading various ways of generating wallets (including Glacier). As of now, I think this is THE BEST METHOD for a non-technical person which is high security and low cost and not that much lenghty. FAQs:Why I didn't use Coleman's BIP 39 mnemonic method? Basically, I dont know how to audit the code. As a downside, we will have to really write down accurately our keys having in mind that a mistype is fatal. Also, we should keep in mind that destruction of the key is fatal as well. The user has to secure the key from losing the keys, theft and destruction. Lets start You'll need:
an old computer without hard drive that will never touch the internet again.
a USB stick of 8gb or more or CD (never use this USB again for other purposes or connect it to an online computer)
a Dice (for using coins you will need to flip it 256 times and convert Binary to HEX)
Open up LiLi and insert your flash drive.
Make sure you’ve selected the correct drive (click refresh if drive isn’t showing).
Choose “ISO/IMG/ZIP” and select the Ubuntu ISO file you’ve downloaded in the previous step.
Make sure only “Format the key in FAT32” is selected.
Click the lightning bolt to start the format and installation process
Restart your computer. Clicking F12 or F1 during the boot-up process will allow you to choose to run your operating system from your flash drive or CD. After the Ubuntu operating system loads you will choose the “try Ubuntu” option.
4. Roll the dice 100 times and convert into a 32-byte hexadecimal number by using dice2key
To generate a Bitcoin private key using normal, run the following command to convert the dice rolls into a 32-byte hexadecimal number:source dice2key (100 six-sided dice rolls)
5. Run newBitcoinKey 0x + your private key and it will give you your: public address, bitcoin address and WIF.Save the Private Key and Bitcoin Address. Check several times that you handwritten it correctly. You can check by re entering the code in the console from your paper. (I recommend writing down the Private Key which is in HEX and not the WIF since this one is key sensitive and you can lose it, or write it wrong. Also, out of the private key you can get the WIF which will let you transfer your funds). If you lose your key, you lose your funds. Be careful. If auditing the code for this is not enough for you, you can also test the code by inputting a known private keys to tell if the bitcoin address generated is legit or not. I recommend you generate several keys and addresses as this process is not super easy to do. Remember that you should never reuse your paper wallets (meaning that you should empty all of the funds from this one adress if you are making a payment). As such, a couple of addresses come handy.
At this point, there should be no way for information to leak out of the live CD environment. The live CD doesn't store anything on the hard disk, and there is no network connection. Everything that happens from now on will be lost when the computer is rebooted. Now, start the "Terminal" program, and type the following command: source ~/bitcoin.shThis will load the address-calculation script. Now, use the script to find the Bitcoin address for your private key: newBitcoinKey 0x(your dice digits)Replace the part that says "(your dice digits)" with 64 digits found by rolling your pair of hexadecimal dice 32 times. Be sure there is no space between the "0x" and your digits. When all is said and done, your terminal window should look like this: [email protected]:~$ source ~/[email protected]:~$ newBitcoinKey 0x8010b1bb119ad37d4b65a1022a314897b1b3614b345974332cb1b9582cf03536---secret exponent: 0x8010B1BB119AD37D4B65A1022A314897B1B3614B345974332CB1B9582CF03536public key: X: 09BA8621AEFD3B6BA4CA6D11A4746E8DF8D35D9B51B383338F627BA7FC732731 Y: 8C3A6EC6ACD33C36328B8FB4349B31671BCD3A192316EA4F6236EE1AE4A7D8C9compressed: WIF: L1WepftUBemj6H4XQovkiW1ARVjxMqaw4oj2kmkYqdG1xTnBcHfC bitcoin address: 1HV3WWx56qD6U5yWYZoLc7WbJPV3zAL6Hiuncompressed: WIF: 5JngqQmHagNTknnCshzVUysLMWAjT23FWs1TgNU5wyFH5SB3hrP bitcoin address: [email protected]:~$The script produces two public addresses from the same private key. The "compressed" address format produces smaller transaction sizes (which means lower transaction fees), but it's newer and not as well-supported as the original "uncompressed" format. Choose which format you like, and write down the "WIF" and "bitcoin address" on a piece of paper. The "WIF" is just the private key, converted to a slightly shorter format that Bitcoin wallet apps prefer. Double-check your paper, and reboot your computer. Aside from the copy on the piece of paper, the reboot should destroy all traces of the private key. Since the paper now holds the only copy of the private key, do not lose it, or you will lose the ability to spend any funds sent to the address!
Conclusion With this method you are creating an airgapped environment that will never touch the internet. Also, we are checking that the code we use its not tampered. If this is followed strictly I see virtually no chances of your keys being hacked. How to spend your funds from a securely generated paper wallet. Almost all tutorials seen online, will let you import or sweep you private keys into the desktop wallet or mobile wallet which are hot wallets. In the meantime, you are exposed and all of your work to secure the cold storage is being thrown away. This method will let you sign the transaction offline (you will not expose your private key in an online system). You'll need:
your phone (android) or another computer
The source of this method is taken from CryptoGuide from Youtube https://www.youtube.com/watch?v=-9kf9LMnJpI&t=86s . Basically you can follow his video as it is foolproof. Please check that Electrum distribution is signed. The summarized steps are:
Download Electrum on both devices and check its signed for safey.Disconnect your phone from the internet (flight mode= All connections off) and input your private key in ElectrumGenerate the transaction in your desktop and export it via QR (never leave unspent BTC or you will lose them)In your phone, open Electrum > Send > QR (this will import the transaction) and scan the desktop exported transactionSign the transaction in your phone.Export the signed transaction in QRLoad the signed transaction in the desktop Electrum and broadcast it to the network.Wait until 3 confirmations to connect your phone to the internet again.
Ideas for improvement:
It would be a good idea to install (I dont know how) a QR generator in Ubuntu to scan the WIF with our airgapped phone and make it easier to import the key.
Multisig can be a really good option to implement.
Im not sure if Electrum is 100% safe. I've used it and it has worked for me but I read several people recommending using Bitcoin's platform directly.
So thats it. I hope someone can find this helpful or help in creating a better method. If you like, you can donate at 1Che7FG93vDsbes6NPBhYuz29wQoW7qFUH
Forex Signals Reddit: top providers review (part 1)
Forex Signals - TOP Best Services. Checked!
To invest in the financial markets, we must acquire good tools that help us carry out our operations in the best possible way. In this sense, we always talk about the importance of brokers, however, signal systems must also be taken into account. The platforms that offer signals to invest in forex provide us with alerts that will help us in a significant way to be able to carry out successful operations. For this reason, we are going to tell you about the importance of these alerts in relation to the trading we carry out, because, without a doubt, this type of system will provide us with very good information to invest at the right time and in the best assets in the different markets. financial Within this context, we will focus on Forex signals, since it is the most important market in the world, since in it, multiple transactions are carried out on a daily basis, hence the importance of having an alert system that offers us all the necessary data to invest in currencies. Also, as we all already know, cryptocurrencies have become a very popular alternative to investing in traditional currencies. Therefore, some trading services/tools have emerged that help us to carry out successful operations in this particular market. In the following points, we will detail everything you need to know to start operating in the financial markets using trading signals: what are signals, how do they work, because they are a very powerful help, etc. Let's go there!
What are Forex Trading Signals?
https://preview.redd.it/vjdnt1qrpny51.jpg?width=640&format=pjpg&auto=webp&s=bc541fc996701e5b4dd940abed610b59456a5625 Before explaining the importance of Forex signals, let's start by making a small note so that we know what exactly these alerts are. Thus, we will know that the signals on the currency market are received by traders to know all the information that concerns Forex, both for assets and for the market itself. These alerts allow us to know the movements that occur in the Forex market and the changes that occur in the different currency pairs. But the great advantage that this type of system gives us is that they provide us with the necessary information, to know when is the right time to carry out our investments.
In other words, through these signals, we will know the opportunities that are presented in the market and we will be able to carry out operations that can become quite profitable.
Profitability is precisely another of the fundamental aspects that must be taken into account when we talk about Forex signals since the vast majority of these alerts offer fairly reliable data on assets. Similarly, these signals can also provide us with recommendations or advice to make our operations more successful.
»Purpose: predict movements to carry out Profitable Operations
In short, Forex signal systems aim to predict the behavior that the different assets that are in the market will present and this is achieved thanks to new technologies, the creation of specialized software, and of course, the work of financial experts. In addition, it must also be borne in mind that the reliability of these alerts largely lies in the fact that they are prepared by financial professionals. So they turn out to be a perfect tool so that our investments can bring us a greater number of benefits.
The best signal services today
We are going to tell you about the 3 main alert system services that we currently have on the market. There are many more, but I can assure these are not scams and are reliable. Of course, not 100% of trades will be a winner, so please make sure you apply proper money management and risk management system.
1. 1000pipbuilder (top choice)
Fast track your success and follow the high-performance Forex signals from 1000pip Builder. These Forex signals are rated 5 stars on Investing.com, so you can follow every signal with confidence. All signals are sent by a professional trader with over 10 years investment experience. This is a unique opportunity to see with your own eyes how a professional Forex trader trades the markets. The 1000pip Builder Membership is ordinarily a signal service for Forex trading. You will get all the facts you need to successfully comply with the trading signals, set your stop loss and take earnings as well as additional techniques and techniques! You will get easy to use trading indicators for Forex Trades, including your entry, stop loss and take profit. Overall, the earnings target per months is 350 Pips, depending on your funding this can be a high profit per month! (In fact, there is by no means a guarantee, but the past months had been all between 600 – 1000 Pips). >>>Know more about 1000pipbuilder Your 1000pip builder membership gives you all in hand you want to start trading Forex with success. Read the directions and wait for the first signals. You can trade them inside your demo account first, so you can take a look at the performance before you make investments real money! Features:
Forex signals sent by email and SMS
Entry price, take profit and stop loss provided
Suitable for all time zones (signals sent over 24 hours)
Digital Derivatives Markets (DDMarkets) have been providing trade alert offerings since May 2014 - fully documenting their change ideas in an open and transparent manner. September 2020 performance report for DD Markets. Their manner is simple: carry out extensive research, share their evaluation and then deliver a trading sign when triggered. Once issued, daily updates on the trade are despatched to members via email. It's essential to note that DDMarkets do not tolerate floating in an open drawdown in an effort to earnings at any cost - a common method used by less professional providers to 'fudge' performance statistics. Verified Statistics: Not independently verified. Price: plans from $74.40 per month. Year Founded: 2014 Suitable for Beginners: Yes, (includes handy to follow trade analysis) VISIT -------
If you are looking or a forex signal service with a reliable (and profitable) music record you can't go previous Joel Kruger and the team at JKonFX. Trading performance file for JKonFX. Joel has delivered a reputable +59.18% journal performance for 2016, imparting real-time technical and fundamental insights, in an extremely obvious manner, to their 30,000+ subscriber base. Considered a low-frequency trader, alerts are only a small phase of the overall JKonFX subscription. If you're searching for hundreds of signals, you may want to consider other options. Verified Statistics: Not independently verified. Price: plans from $30 per month. Year Founded: 2014 Suitable for Beginners: Yes, (includes convenient to follow videos updates). VISIT
The importance of signals to invest in Forex
Once we have known what Forex signals are, we must comment on the importance of these alerts in relation to our operations. As we have already told you in the previous paragraph, having a system of signals to be able to invest is quite advantageous, since, through these alerts, we will obtain quality information so that our operations end up being a true success.
»Use of signals for beginners and experts
In this sense, we have to say that one of the main advantages of Forex signals is that they can be used by both beginners and trading professionals. As many as others can benefit from using a trading signal system because the more information and resources we have in our hands. The greater probability of success we will have. Let's see how beginners and experts can take advantage of alerts:
Beginners: for inexperienced these alerts become even more important since they will thus have an additional tool that will guide them to carry out all operations in the Forex market.
Professionals: In the same way, professionals are also recommended to make use of these alerts, so they have adequate information to continue bringing their investments to fruition.
Now that we know that both beginners and experts can use forex signals to invest, let's see what other advantages they have.
When we dedicate ourselves to working in the financial world, none of us can spend 24 hours in front of the computer waiting to perform the perfect operation, it is impossible. That is why Forex signals are important, because, in order to carry out our investments, all we will have to do is wait for those signals to arrive, be attentive to all the alerts we receive, and thus, operate at the right time according to the opportunities that have arisen. It is fantastic to have a tool like this one that makes our work easier in this regard.
»Carry out profitable Forex operations
These signals are also important, because the vast majority of them are usually quite profitable, for this reason, we must get an alert system that provides us with accurate information so that our operations can bring us great benefits. But in addition, these Forex signals have an added value and that is that they are very easy to understand, therefore, we will have a very useful tool at hand that will not be complicated and will end up being a very beneficial weapon for us.
»Decision support analysis
A system of currency market signals is also very important because it will help us to make our subsequent decisions. We cannot forget that, to carry out any type of operation in this market, previously, we must meditate well and know the exact moment when we will know that our investments are going to bring us profits . Therefore, all the information provided by these alerts will be a fantastic basis for future operations that we are going to carry out.
»Trading Signals made by professionals
Finally, we have to recall the idea that these signals are made by the best professionals. Financial experts who know perfectly how to analyze the movements that occur in the market and changes in prices. Hence the importance of alerts, since they are very reliable and are presented as a necessary tool to operate in Forex and that our operations are as profitable as possible.
What should a signal provider be like?
https://preview.redd.it/j0ne51jypny51.png?width=640&format=png&auto=webp&s=5578ff4c42bd63d5b6950fc6401a5be94b97aa7f As you have seen, Forex signal systems are really important for our operations to bring us many benefits. For this reason, at present, there are multiple platforms that offer us these financial services so that investing in currencies is very simple and fast. Before telling you about the main services that we currently have available in the market, it is recommended that you know what are the main characteristics that a good signal provider should have, so that, at the time of your choice, you are clear that you have selected one of the best systems.
»Must send us information on the main currency pairs
In this sense, one of the first things we have to comment on is that a good signal provider, at a minimum, must send us alerts that offer us information about the 6 main currencies, in this case, we refer to the euro, dollar, The pound, the yen, the Swiss franc, and the Canadian dollar. Of course, the data you provide us will be related to the pairs that make up all these currencies. Although we can also find systems that offer us information about other minorities, but as we have said, at a minimum, we must know these 6.
»Trading tools to operate better
Likewise, signal providers must also provide us with a large number of tools so that we can learn more about the Forex market.
We refer, for example, to technical analysis above all, which will help us to develop our own strategies to be able to operate in this market.
These analyzes are always prepared by professionals and study, mainly, the assets that we have available to invest.
»Different Forex signals reception channels
They must also make available to us different ways through which they will send us the Forex signals, the usual thing is that we can acquire them through the platform's website, or by a text message and even through our email. In addition, it is recommended that the signal system we choose sends us a large number of alerts throughout the day, in order to have a wide range of possibilities.
»Free account and customer service
Other aspects that we must take into account to choose a good signal provider is whether we have the option of receiving, for a limited time, alerts for free or the profitability of the signals they emit to us. Similarly, a final aspect that we must emphasize is that a good signal system must also have excellent customer service, which is available to us 24 hours a day and that we can contact them at through an email, a phone number, or a live chat, for greater immediacy. Well, having said all this, in our last section we are going to tell you which are the best services currently on the market. That is, the most suitable Forex signal platforms to be able to work with them and carry out good operations. In this case, we will talk about ForexPro Signals, 365 Signals and Binary Signals.
Forex Signals Reddit: conclusion
To be able to invest properly in the Forex market, it is convenient that we get a signal system that provides us with all the necessary information about this market. It must be remembered that Forex is a very volatile market and therefore, many movements tend to occur quickly. Asset prices can change in a matter of seconds, hence the importance of having a system that helps us analyze the market and thus know, what is the right time for us to start operating. Therefore, although there are currently many signal systems that can offer us good services, the three that we have mentioned above are the ones that are best valued by users, which is why they are the best signal providers that we can choose to carry out. our investments. Most of these alerts are quite profitable and in addition, these systems usually emit a large number of signals per day with full guarantees. For all this, SignalsForexPro, Signals365, or SignalsBinary are presented as fundamental tools so that we can obtain a greater number of benefits when we carry out our operations in the currency market.
I really enjoyed m4nz's recent post: Getting into DevOps as a beginner is tricky - My 50 cents to help with it and wanted to do my own version of it, in hopes that it might help beginners as well. I agree with most of their advice and recommend folks check it out if you haven't yet, but I wanted to provide more of a simple list of things to learn and tools to use to compliment their solid advice.
While I went to college and got a degree, it wasn't in computer science. I simply developed an interest in Linux and Free & Open Source Software as a hobby. I set up a home server and home theater PC before smart TV's and Roku were really a thing simply because I thought it was cool and interesting and enjoyed the novelty of it. Fast forward a few years and basically I was just tired of being poor lol. I had heard on the now defunct Linux Action Show podcast about linuxacademy.com and how people had had success with getting Linux jobs despite not having a degree by taking the courses there and acquiring certifications. I took a course, got the basic LPI Linux Essentials Certification, then got lucky by landing literally the first Linux job I applied for at a consulting firm as a junior sysadmin. Without a CS degree, any real experience, and 1 measly certification, I figured I had to level up my skills as quickly as possible and this is where I really started to get into DevOps tools and methodologies. I now have 5 years experience in the IT world, most of it doing DevOps/SRE work.
People have varying opinions on the relevance and worth of certifications. If you already have a CS degree or experience then they're probably not needed unless their structure and challenge would be a good motivation for you to learn more. Without experience or a CS degree, you'll probably need a few to break into the IT world unless you know someone or have something else to prove your skills, like a github profile with lots of open source contributions, or a non-profit you built a website for or something like that. Regardless of their efficacy at judging a candidate's ability to actually do DevOps/sysadmin work, they can absolutely help you get hired in my experience. Right now, these are the certs I would recommend beginners pursue. You don't necessarily need all of them to get a job (I got started with just the first one on this list), and any real world experience you can get will be worth more than any number of certs imo (both in terms of knowledge gained and in increasing your prospects of getting hired), but this is a good starting place to help you plan out what certs you want to pursue. Some hiring managers and DevOps professionals don't care at all about certs, some folks will place way too much emphasis on them ... it all depends on the company and the person interviewing you. In my experience I feel that they absolutely helped me advance my career. If you feel you don't need them, that's cool too ... they're a lot of work so skip them if you can of course lol.
LPI Linux Essentials - basic multiple choice test on Linux basics. Fairly easy especially if you have nix experience, otherwise I'd recommend a taking a course like I did. linuxacademy worked for me, but there are other sites out there that can help. For this one, you can probably get by just searching youtube for the topics covered on the test.
Linux Foundation Certified System Administrator - This one is a hands on test which is great, you do a screen share with a proctor and ssh into their server; then you have a list of objectives to accomplish on the server pretty much however you see fit. Write a big bash script to do it all, do like 100 mv commands manually, write a small program in python lol, whatever you want so long as you accomplish the goals in time.
Amazon Web Services certs - I would go for the all 3 associate level certs if you can: Solutions Architect, SysOps Administrator, Developer. These are quite tedious to study for as they can be more a certification that you know which AWS products to get your client to use than they are a test of your cloud knowledge at times. For better or worse, AWS is the top cloud provider at the moment so showing you have knowledge there opens you up to the most jobs. If you know you want to work with another cloud provider then the Google certs can be swapped out here, for example. I know that with the AWS certs, I get offers all the time for companies that use GCP even though I have no real experience there. Folks with the google certs: is the reverse true for you? (genuinely asking, it would be useful for beginners to know).
Certified Kubernetes Administrator - I don't actually have this cert since at this point in my career I have real Kubernetes experience on my resume so it's kind of not needed, but if you wanted learn Kubernetes and prove it to prospective employers it can help.
Tools and Experimentation
While certs can help you get hired, they won't make you a good DevOps Engineer or Site Reliability Engineer. The only way to get good, just like with anything else, is to practice. There are a lot of sub-areas in the DevOps world to specialize in ... though in my experience, especially at smaller companies, you'll be asked to do a little (or a lot) of all of them. Though definitely not exhaustive, here's a list of tools you'll want to gain experience with both as points on a resume and as trusty tools in your tool belt you can call on to solve problems. While there is plenty of "resume driven development" in the DevOps world, these tools are solving real problems that people encounter and struggle with all the time, i.e., you're not just learning them because they are cool and flashy, but because not knowing and using them is a giant pain!
Linux! - Unless you want to only work with Windows for some reason, Linux is the most important thing you can learn to become a good DevOps professional in my view. Install it on your personal laptop, try a bunch of different distributions, develop an opinion on systemd vs. other init systems ;), get a few cloud servers on DigitalOcean or AWS to mess around with, set up a home server, try different desktop environments and window managers, master a cli text editor, break your install and try to fix it, customize your desktop until it's unrecognizable lol. Just get as much experience with Linux as possible!
git - Aside from general Linux knowledge, git is one of the most important tool for DevOps/SREs to know in my view. A good DevOps team will usually practice "git ops," i.e., making changes to your CI/CD pipeline, infrastructure, or server provisioning will involve making a pull request against the appropriate git repo.
terraform - terraform is the de facto "infrastructure as code" tool in the DevOps world. Personally, I love it despite it's pain points. It's a great place to start once you have a good Linux and cloud knowledge foundation as it will allow you to easily and quickly bring up infrastructure to practice with the other tools on this list.
packer - While not hugely popular or widely used, it's such a simple and useful tool that I recommend you check it out. Packer lets you build "immutable server images" with all of the tools and configuration you need baked in, so that your servers come online ready to start working immediately without any further provisioning needed. Combined with terraform, you can bring up Kubernetes clusters with a single command, or any other fancy DevOps tools you want to play with.
ansible - With the advent of Kubernetes and container orchestration, "configuration management" has become somewhat less relevant ... or at least less of a flashy and popular topic. It is still something you should be familiar with and it absolutely is in wide use at many companies. Personally, I love the combination of ansible + packer + terraform and find it very useful. Chef and Puppet are nice too, but Ansible is the most popular last I checked so unless you have a preference (or already know Ruby) then I'd go with that.
jenkins - despite it's many, many flaws and pain points lol, Jenkins is still incredibly useful and widely used as a CI/CD solution and it's fairly easy to get started with. EDIT: Upon further consideration, Jenkins may not be the best choice for beginners to learn. At this point, you’re probably better off with something like GitLab: it’s a more powerful and useful tool, you’ll learn YAML for its config, and it’s less of a pain to use. If you know Jenkins that’s great and it will help you get a job probably, but then you might implement Jenkins since it’s what you know ... but if you have the chance, choose another tool.
postgres - Knowledge of SQL databases is very useful, both from a DBA standpoint and the operations side of things. You might be helping developers develop a new service and helping with setting up schema (or doing so yourself for an internal tool), or you might be spinning up an instance for devs to access, or even pinpointing that a SQL query is the bottleneck in an app's performance. I put Postgres here because that's what I personally use and have seen a lot in the industry, but experience with any SQL database will be useful.
nginx - nginx is commonly used an http server for simple services or as an ingress option for kubernetes. Learn the basic config options, how to do TLS, etc.
docker - Ah, the buzzword of yesteryear. Docker and containerization is still incredibly dominant as a paradigm in the DevOps world right now and it is paramount that you learn it and master it. Be comfortable writing Dockerfiles, troubleshooting docker networking, the fundamentals of how linux containers work ... and definitely get familiar with Alpine Linux as it will most likely be the base image for most of your company's docker images.
kubernetes - At many companies, DevOps EngineeSite Reliability Engineer effectively translates to "Kubernetes Babysitter," especially if you're new on the job. Container orchestration, while no longer truly "cutting edge" is still fairly new and there is high demand for people with knowledge and experience with it. Work through Kubernetes The Hard Way to bring up a cluster manually. Learn and know the various "primitives" like pods and replicasets. Learn about ingress and how to expose services.
There are many, many other DevOps tools I left out that are worthwhile (I didn't even touch the tools in the kubernetes space like helm and spinnaker). Definitely don't stop at this list! A good DevOps engineer is always looking to add useful tools to their tool belt. This industry changes so quickly, it's hard to keep up. That's why it's important to also learn the "why" of each of these tools, so that you can determine which tool would best solve a particular problem. Nearly everything on this list could be swapped for another tool to accomplish the same goals. The ones I listed are simply the most common/popular and so are a good place to start for beginners.
Any language you learn will be useful and make you a better sysadmin/DevOps Eng/SRE, but these are the 3 I would recommend that beginners target first.
Bash - It's right there in your terminal and for better or worse, a scarily large amount of the world's IT infrastructure depends on ill-conceived and poorly commented bash scripts. It's bash scripts all the way down. I joke, but bash is an incredibly powerful tool and a great place to start learning programming basics like control flow and variables.
Python - It has a beautiful syntax, it's easy to learn, and the python shell makes it quick to learn the basics. Many companies have large repos of python scripts used by operations for automating all sorts of things. Also, many older DevOps tools (like ansible) are written in python.
Go - Go makes for a great first "systems language" in that it's quite powerful and gives you access to some low level functionality, but the syntax is simple, explicit and easy to understand. It's also fast, compiles to static binaries, has a strong type system and it's easier to learn than C or C++ or Rust. Also, most modern DevOps tools are written in Go. If the documentation isn't answering your question and the logs aren't clear enough, nothing beats being able to go to the source code of a tool for troubleshooting.
Expanding your knowledge
As m4nz correctly pointed out in their post, while knowledge of and experience with popular DevOps tools is important; nothing beats in-depth knowledge of the underlying systems. The more you can learn about Linux, operating system design, distributed systems, git concepts, language design, networking (it's always DNS ;) the better. Yes, all the tools listed above are extremely useful and will help you do your job, but it helps to know why we use those tools in the first place. What problems are they solving? The solutions to many production problems have already been automated away for the most part: kubernetes will restart a failed service automatically, automated testing catches many common bugs, etc. ... but that means that sometimes the solution to the issue you're troubleshooting will be quite esoteric. Occam's razor still applies, and it's usually the simplest explanation that works; but sometimes the problem really is at the kernel level. The biggest innovations in the IT world are generally ones of abstractions: config management abstracts away tedious server provisioning, cloud providers abstract away the data center, containers abstract away the OS level, container orchestration abstracts away the node and cluster level, etc. Understanding what it happening beneath each layer of abstraction is crucial. It gives you a "big picture" of how everything fits together and why things are the way they are; and it allows you to place new tools and information into the big picture so you'll know why they'd be useful or whether or not they'd work for your company and team before you've even looked in-depth at them. Anyway, I hope that helps. I'll be happy to answer any beginnegetting started questions that folks have! I don't care to argue about this or that point in my post, but if you have a better suggestion or additional advice then please just add it here in the comments or in your own post! A good DevOps Eng/SRE freely shares their knowledge so that we can all improve.
This post draws on my personal experiences and challenges over the past term at school, which I entered with hardly any knowledge of DSA (data structures and algorithms) and problem-solving strategies. As a self-taught programmer, I was a lot more familiar and comfortable with general programming, such as object-oriented programming, than with the problem-solving skills required in DSA questions. This post reflects my journey throughout the term and the resources I turned to in order to quickly improve for my coding interview. Here're some common questions and answers What's the interview process like at a tech company? Good question. It's actually pretty different from most other companies.
(What It's Like To Interview For A Coding Job
First time interviewing for a tech job? Not sure what to expect? This article is for you.
Here are the usual steps:
First, you’ll do a non-technical phone screen.
Then, you’ll do one or a few technical phone interviews.
Finally, the last step is an onsite interview.
Some companies also throw in a take-home code test—sometimes before the technical phone interviews, sometimes after. Let’s walk through each of these steps.
The non-technical phone screen
This first step is a quick call with a recruiter—usually just 10–20 minutes. It's very casual. Don’t expect technical questions. The recruiter probably won’t be a programmer. The main goal is to gather info about your job search. Stuff like:
Your timeline. Do you need to sign an offer in the next week? Or are you trying to start your new job in three months?
What’s most important to you in your next job. Great team? Flexible hours? Interesting technical challenges? Room to grow into a more senior role?
What stuff you’re most interested in working on. Front end? Back end? Machine learning?
Be honest about all this stuff—that’ll make it easier for the recruiter to get you what you want. One exception to that rule: If the recruiter asks you about your salary expectations on this call, best not to answer. Just say you’d rather talk about compensation after figuring out if you and the company are a good fit. This’ll put you in a better negotiating position later on.
The technical phone interview(s)
The next step is usually one or more hour-long technical phone interviews. Your interviewer will call you on the phone or tell you to join them on Skype or Google Hangouts. Make sure you can take the interview in a quiet place with a great internet connection. Consider grabbing a set of headphones with a good microphone or a bluetooth earpiece. Always test your hardware beforehand! The interviewer will want to watch you code in real time. Usually that means using a web-based code editor like Coderpad or collabedit. Run some practice problems in these tools ahead of time, to get used to them. Some companies will just ask you to share your screen through Google Hangouts or Skype. Turn off notifications on your computer before you get started—especially if you’re sharing your screen! Technical phone interviews usually have three parts:
Beginning chitchat (5–10 minutes)
Technical challenges (30–50 minutes)
Your turn to ask questions (5–10 minutes)
The beginning chitchat is half just to help your relax, and half actually part of the interview. The interviewer might ask some open-ended questions like:
Tell me about yourself.
Tell me about something you’ve built that you’re particularly proud of.
I see this project listed on your resume—tell me more about that.
You should be able to talk at length about the major projects listed on your resume. What went well? What didn’t? How would you do things differently now? Then come the technical challenges—the real meet of the interview. You’ll spend most of the interview on this. You might get one long question, or several shorter ones. What kind of questions can you expect? It depends. Startups tend to ask questions aimed towards building or debugging code. (“Write a function that takes two rectangles and figures out if they overlap.”). They’ll care more about progress than perfection. Larger companies will want to test your general know-how of data structures and algorithms (“Write a function that checks if a binary tree is ‘balanced’ in O(n)O(n) ↴ time.”). They’ll care more about how you solve and optimize a problem. With these types of questions, the most important thing is to be communicating with your interviewer throughout. You'll want to "think out loud" as you work through the problem. For more info, check out our more detailed step-by-step tips for coding interviews. If the role requires specific languages or frameworks, some companies will ask trivia-like questions (“In Python, what’s the ‘global interpreter lock’?”). After the technical questions, your interviewer will open the floor for you to askthemquestions. Take some time before the interview to comb through the company’s website. Think of a few specific questions about the company or the role. This can really make you stand out. When you’re done, they should give you a timeframe on when you’ll hear about next steps. If all went well, you’ll either get asked to do another phone interview, or you’ll be invited to their offices for an onsite.
The onsite interview
An onsite interview happens in person, at the company’s office. If you’re not local, it’s common for companies to pay for a flight and hotel room for you. The onsite usually consists of 2–6 individual, one-on-one technical interviews (usually in a small conference room). Each interview will be about an hour and have the same basic form as a phone screen—technical questions, bookended by some chitchat at the beginning and a chance for you to ask questions at the end. The major difference between onsite technical interviews and phone interviews though: you’ll be coding on a whiteboard. This is awkward at first. No autocomplete, no debugging tools, no delete button…ugh. The good news is, after some practice you get used to it. Before your onsite, practice writing code on a whiteboard (in a pinch, a pencil and paper are fine). Some tips:
Start in the top-most left corner of the whiteboard. This gives you the most room. You’ll need more space than you think.
Leave a blank line between each line as you write your code. Makes it much easier to add things in later.
Take an extra second to decide on your variable names. Don’t rush this part. It might seem like a waste of time, but using more descriptive variable names ultimately saves you time because it makes you less likely to get confused as you write the rest of your code.
If a technical phone interview is a sprint, an onsite is a marathon. The day can get really long. Best to keep it open—don’t make other plans for the afternoon or evening. When things go well, you’ wrap-up by chatting with the CEO or some other director. This is half an interview, half the company trying to impress you. They may invite you to get drinks with the team after hours. All told, a long day of onsite interviews could look something like this:
10am-12pm: two back-to-back technical interviews, each about an hour.
12pm-1pm: one or several engineers will take you to lunch, perhaps in the company’s fancy office cafeteria.
1pm-4pm: three back-to-back technical interviews, each about an hour.
4pm-5pm: interview with the CEO or some sort of director.
Code tests aren’t ubiquitous, but they seem to be gaining in popularity. They’re far more common at startups, or places where your ability to deliver right away is more important than your ability to grow. You’ll receive a description of an app or service, a rough time constraint for writing your code, and a deadline for when to turn it in. The deadline is usually negotiable. Here's an example problem: Write a basic “To-Do” app. Unit test the core functionality. As a bonus, add a “reminders” feature. Try to spend no more than 8 hours on it, and send in what you have by Friday with a small write-up. Take a crack at the “bonus” features if they include any. At the very least, write up how you would implement it. If they’re hiring for people with knowledge of a particular framework, they might tell you what tech to use. Otherwise, it’ll be up to you. Use what you’re most comfortable with. You want this code to show you at your best. Some places will offer to pay you for your time. It's rare, but some places will even invite you to work with them in their office for a few days, as a "trial.") Do I need to know this "big O" stuff? Big O notation is the language we use for talking about the efficiency of data structures and algorithms. Will it come up in your interviews? Well, it depends. There are different types of interviews. There’s the classic algorithmic coding interview, sometimes called the “Google-style whiteboard interview.” It’s focused on data structures and algorithms (queues and stacks, binary search, etc). That’s what our full course prepares you for. It's how the big players interview. Google, Facebook, Amazon, Microsoft, Oracle, LinkedIn, etc. For startups and smaller shops, it’s a mixed bag. Most will ask at least a few algorithmic questions. But they might also include some role-specific stuff, like Java questions or SQL questions for a backend web engineer. They’ll be especially interested in your ability to ship code without much direction. You might end up doing a code test or pair-programming exercise instead of a whiteboarding session. To make sure you study for the right stuff, you should ask your recruiter what to expect. Send an email with a question like, “Is this interview going to cover data structures and algorithms? Or will it be more focused around coding in X language.” They’ll be happy to tell you. If you've never learned about data structures and algorithms, or you're feeling a little rusty, check out our Intuitive Guide to Data Structures and Algorithms. Which programming language should I use? Companies usually let you choose, in which case you should use your most comfortable language. If you know a bunch of languages, prefer one that lets you express more with fewer characters and fewer lines of code, like Python or Ruby. It keeps your whiteboard cleaner. Try to stick with the same language for the whole interview, but sometimes you might want to switch languages for a question. E.g., processing a file line by line will be far easier in Python than in C++. Sometimes, though, your interviewer will do this thing where they have a pet question that’s, for example, C-specific. If you list C on your resume, they’ll ask it. So keep that in mind! If you’re not confident with a language, make that clear on your resume. Put your less-strong languages under a header like ‘Working Knowledge.’ What should I wear? A good rule of thumb is to dress a tiny step above what people normally wear to the office. For most west coast tech companies, the standard digs are just jeans and a t-shirt. Ask your recruiter what the office is like if you’re worried about being too casual. Should I send a thank-you note? Thank-you notes are nice, but they aren’t really expected. Be casual if you send one. No need for a hand-calligraphed note on fancy stationery. Opt for a short email to your recruiter or the hiring manager. Thank them for helping you through the process, and ask them to relay your thanks to your interviewers. 1) Coding Interview Tips How to get better at technical interviews without practicing Chitchat like a pro. Before diving into code, most interviewers like to chitchat about your background. They're looking for:
Metacognition about coding. Do you think about how to code well?
Ownership/leadership. Do you see your work through to completion? Do you fix things that aren't quite right, even if you don't have to?
Communication. Would chatting with you about a technical problem be useful or painful?
You should have at least one:
example of an interesting technical problem you solved
example of an interpersonal conflict you overcame
example of leadership or ownership
story about what you should have done differently in a past project
piece of trivia about your favorite language, and something you do and don't like about said language
question about the company's product/business
question about the company's engineering strategy (testing, Scrum, etc)
Nerd out about stuff. Show you're proud of what you've done, you're amped about what they're doing, and you have opinions about languages and workflows. Communicate. Once you get into the coding questions, communication is key. A candidate who needed some help along the way but communicated clearly can be even better than a candidate who breezed through the question. Understand what kind of problem it is. There are two types of problems:
Coding. The interviewer wants to see you write clean, efficient code for a problem.
"I have to at least look at all of the items, so I can't do better than O(n)O(n)."
"The brute force approach is to test all possibilities, which is O(n^2)O(n2)."
"The answer will contain n^2n2 items, so I must at least spend that amount of time."
Get your thoughts down. It's easy to trip over yourself. Focus on getting your thoughts down first and worry about the details at the end. Call a helper function and keep moving. If you can't immediately think of how to implement some part of your algorithm, big or small, just skip over it. Write a call to a reasonably-named helper function, say "this will do X" and keep going. If the helper function is trivial, you might even get away with never implementing it. Don't worry about syntax. Just breeze through it. Revert to English if you have to. Just say you'll get back to it. Leave yourself plenty of room. You may need to add code or notes in between lines later. Start at the top of the board and leave a blank line between each line. Save off-by-one checking for the end. Don't worry about whether your for loop should have "<<" or "<=<=." Write a checkmark to remind yourself to check it at the end. Just get the general algorithm down. Use descriptive variable names. This will take time, but it will prevent you from losing track of what your code is doing. Use names_to_phone_numbers instead of nums. Imply the type in the name. Functions returning booleans should start with "is_*". Vars that hold a list should end with "s." Choose standards that make sense to you and stick with them. Clean up when you're done. Walk through your solution by hand, out loud, with an example input. Actually write down what values the variables hold as the program is running—you don't win any brownie points for doing it in your head. This'll help you find bugs and clear up confusion your interviewer might have about what you're doing. Look for off-by-one errors. Should your for loop use a "<=<=" instead of a "<<"? Test edge cases. These might include empty sets, single-item sets, or negative numbers. Bonus: mention unit tests! Don't be boring. Some interviewers won't care about these cleanup steps. If you're unsure, say something like, "Then I'd usually check the code against some edge cases—should we do that next?" Practice. In the end, there's no substitute for running practice questions. Actually write code with pen and paper. Be honest with yourself. It'll probably feel awkward at first. Good. You want to get over that awkwardness now so you're not fumbling when it's time for the real interview. 2) Tricks For Getting Unstuck During a Coding Interview Getting stuck during a coding interview is rough. If you weren’t in an interview, you might take a break or ask Google for help. But the clock is ticking, and you don’t have Google. You just have an empty whiteboard, a smelly marker, and an interviewer who’s looking at you expectantly. And all you can think about is how stuck you are. You need a lifeline for these moments—like a little box that says “In Case of Emergency, Break Glass.” Inside that glass box? A list of tricks for getting unstuck. Here’s that list of tricks. When you’re stuck on getting started 1) Write a sample input on the whiteboard and turn it into the correct output "by hand." Notice the process you use. Look for patterns, and think about how to implement your process in code. Trying to reverse a string? Write “hello” on the board. Reverse it “by hand”—draw arrows from each character’s current position to its desired position. Notice the pattern: it looks like we’re swapping pairs of characters, starting from the outside and moving in. Now we’re halfway to an algorithm. 2) Solve a simpler version of the problem. Remove or simplify one of the requirements of the problem. Once you have a solution, see if you can adapt that approach for the original question. Trying to find the k-largest element in a set? Walk through finding the largest element, then the second largest, then the third largest. Generalizing from there to find the k-largest isn’t so bad. 3) Start with an inefficient solution. Even if it feels stupidly inefficient, it’s often helpful to start with something that’ll return the right answer. From there, you just have to optimize your solution. Explain to your interviewer that this is only your first idea, and that you suspect there are faster solutions. Suppose you were given two lists of sorted numbers and asked to find the median of both lists combined. It’s messy, but you could simply:
Concatenate the arrays together into a new array.
Sort the new array.
Return the value at the middle index.
Notice that you could’ve also arrived at this algorithm by using trick (2): Solve a simpler version of the problem. “How would I find the median of one sorted list of numbers? Just grab the item at the middle index. Now, can I adapt that approach for getting the median of two sorted lists?” When you’re stuck on finding optimizations 1) Look for repeat work. If your current solution goes through the same data multiple times, you’re doing unnecessary repeat work. See if you can save time by looking through the data just once. Say that inside one of your loops, there’s a brute-force operation to find an element in an array. You’re repeatedly looking through items that you don’t have to. Instead, you could convert the array to a lookup table to dramatically improve your runtime. 2) Look for hints in the specifics of the problem. Is the input array sorted? Is the binary tree balanced? Details like this can carry huge hints about the solution. If it didn’t matter, your interviewer wouldn’t have brought it up. It’s a strong sign that the best solution to the problem exploits it. Suppose you’re asked to find the first occurrence of a number in a sorted array. The fact that the array is sorted is a strong hint—take advantage of that fact by using a binary search. Sometimes interviewers leave the question deliberately vague because they want you to ask questions to unearth these important tidbits of context. So ask some questions at the beginning of the problem. 3) Throw somedata structuresat the problem. Can you save time by using the fast lookups of a hash table? Can you express the relationships between data points as a graph? Look at the requirements of the problem and ask yourself if there’s a data structure that has those properties. 4) Establish bounds on space and runtime. Think out loud about the parameters of the problem. Try to get a sense for how fast your algorithm could possibly be:
“I have to at least look at all the items, so I can’t do better than O(n)O(n) ↴ time”.
“The brute force approach is to test all possibilities, which is O(n^2)O(n2) time. So the question is whether or not I can beat that time.”
“The answer will contain n^2n2 items, so I must at least spend that amount of time.”
When All Else Fails 1) Make it clear where you are. State what you know, what you’re trying to do, and highlight the gap between the two. The clearer you are in expressing exactly where you’re stuck, the easier it is for your interviewer to help you. 2) Pay attention to your interviewer. If she asks a question about something you just said, there’s probably a hint buried in there. Don’t worry about losing your train of thought—drop what you’re doing and dig into her question. Relax. You’resupposedto get stuck. Interviewers choose hard problems on purpose. They want to see how you poke at a problem you don’t immediately know how to solve. Seriously. If you don’t get stuck and just breeze through the problem, your interviewer’s evaluation might just say “Didn’t get a good read on candidate’s problem-solving process—maybe she’d already seen this interview question before?” On the other hand, if you do get stuck, use one of these tricks to get unstuck, and communicate clearly with your interviewer throughout...that’s how you get an evaluation like, “Great problem-solving skills. Hire.” 3) Fixing Impostor Syndrome in Coding Interviews “It's a fluke that I got this job interview...” “I studied for weeks, but I’m still not prepared...” “I’m not actually good at this. They’re going to see right through me...” If any of these thoughts resonate with you, you're not alone. They are so common they have a name: impostor syndrome. It’s that feeling like you’re on the verge of being exposed for what you really are—an impostor. A fraud. Impostor syndrome is like kryptonite to coding interviews. It makes you give up and go silent. You might stop asking clarifying questions because you’re afraid they’ll sound too basic. Or you might neglect to think out loud at the whiteboard, fearing you’ll say something wrong and sound incompetent. You know you should speak up, but the fear of looking like an impostor makes that really, really hard. Here’s the good news: you’renotan impostor. You just feel like an impostor because of some common cognitive biases about learning and knowledge. Once you understand these cognitive biases—where they come from and how they work—you can slowly fix them. You can quiet your worries about being an impostor and keep those negative thoughts from affecting your interviews.
Everything you could know
Here’s how impostor syndrome works. Software engineering is a massive field. There’s a huge universe of things you could know. Huge. In comparison to the vast world of things you could know, the stuff you actually know is just a tiny sliver: That’s the first problem. It feels like you don’t really know that much, because you only know a tiny sliver of all the stuff there is to know.
The expanding universe
It gets worse: counterintuitively, as you learn more, your sliver of knowledge feels like it'sshrinking. That's because you brush up against more and more things you don’t know yet. Whole disciplines like machine learning, theory of computation, and embedded systems. Things you can't just pick up in an afternoon. Heavy bodies of knowledge that take months to understand. So the universe of things you could know seems to keep expanding faster and faster—much faster than your tiny sliver of knowledge is growing. It feels like you'll never be able to keep up.
What everyone else knows
Here's another common cognitive bias: we assume that because something is easy for us, it must be easy for everyone else. So when we look at our own skills, we assume they're not unique. But when we look at other people's skills, we notice the skills they have that we don't have. The result? We think everyone’s knowledge is a superset of our own: This makes us feel like everyone else is ahead of us. Like we're always a step behind. But the truth is more like this: There's a whole area of stuff you know that neither Aysha nor Bruno knows. An area you're probably blind to, because you're so focused on the stuff you don't know. We’ve all had flashes of realizing this. For me, it was seeing the back end code wizard on my team—the one that always made me feel like an impostor—spend an hour trying to center an image on a webpage.
It's a problem of focus
Focusing on what you don't know causes you to underestimate what you do know. And that's what causes impostor syndrome. By looking at the vast (and expanding) universe of things you could know, you feel like you hardly know anything. And by looking at what Aysha and Bruno know that you don't know, you feel like you're a step behind. And interviews make you really focus on what you don't know. You focus on what could go wrong. The knowledge gaps your interviewers might find. The questions you might not know how to answer. But remember: Just because Aysha and Bruno know some things you don't know, doesn't mean you don't also know things Aysha and Bruno don't know. And more importantly, everyone's body of knowledge is just a teeny-tiny sliver of everything they could learn. We all have gaps in our knowledge. We all have interview questions we won't be able to answer. You're not a step behind. You just have a lot of stuff you don't know yet. Just like everyone else. 4) The 24 Hours Before Your Interview
Feeling anxious? That’s normal. Your body is telling you you’re about to do something that matters.
The twenty-four hours before your onsite are about finding ways to maximize your performance. Ideally, you wanna be having one of those days, where elegant code flows effortlessly from your fingertips, and bugs dare not speak your name for fear you'll squash them. You need to get your mind and body in The Zone™ before you interview, and we've got some simple suggestions to help. 5) Why You're Hitting Dead Ends In Whiteboard Interviews
The coding interview is like a maze
Listening vs. holding your train of thought
Finally! After a while of shooting in the dark and frantically fiddling with sample inputs on the whiteboard, you've came up with an algorithm for solving the coding question your interviewer gave you. Whew. Such a relief to have a clear path forward. To not be flailing anymore. Now you're cruising, getting ready to code up your solution. When suddenly, your interviewer throws you a curve ball. "What if we thought of the problem this way?" You feel a tension we've all felt during the coding interview: "Try to listen to what they're saying...but don't lose your train of thought...ugh, I can't do both!" This is a make-or-break moment in the coding interview. And so many people get it wrong. Most candidates end up only half understanding what their interviewer is saying. Because they're only half listening. Because they're desperately clinging to their train of thought. And it's easy to see why. For many of us, completely losing track of what we're doing is one of our biggest coding interview fears. So we devote half of our mental energy to clinging to our train of thought. To understand why that's so wrong, we need to understand the difference between what we see during the coding interview and what our interviewer sees.
The programming interview maze
Working on a coding interview question is like walking through a giant maze. You don't know anything about the shape of the maze until you start wandering around it. You might know vaguely where the solution is, but you don't know how to get there. As you wander through the maze, you might find a promising path (an approach, a way to break down the problem). You might follow that path for a bit. Suddenly, your interviewer suggests a different path: But from what you can see so far of the maze, your approach has already gotten you halfway there! Losing your place on your current path would mean a huge step backwards. Or so it seems. That's why people hold onto their train of thought instead of listening to their interviewer. Because from what they can see, it looks like they're getting somewhere! But here's the thing: your interviewer knows the whole maze. They've asked this question 100 times. I'm not exaggerating: if you interview candidates for a year, you can easily end up asking the same question over 100 times. So if your interviewer is suggesting a certain path, you can bet it leads to an answer. And your seemingly great path? There's probably a dead end just ahead that you haven't seen yet: Or it could just be a much longer route to a solution than you think it is. That actually happens pretty often—there's an answer there, but it's more complicated than you think.
Hitting a dead end is okay. Failing to listen is not.
Your interviewer probably won't fault you for going down the wrong path at first. They've seen really smart engineers do the same thing. They understand it's because you only have a partial view of the maze. They might have let you go down the wrong path for a bit to see if you could keep your thinking organized without help. But now they want to rush you through the part where you discover the dead end and double back. Not because they don't believe you can manage it yourself. But because they want to make sure you have enough time to finish the question. But here's something they will fault you for: failing to listen to them. Nobody wants to work with an engineer who doesn't listen. So when you find yourself in that crucial coding interview moment, when you're torn between holding your train of thought and considering the idea your interviewer is suggesting...remember this: Listening to your interviewer is themostimportant thing. Take what they're saying and run with it. Think of the next steps that follow from what they're saying. Even if it means completely leaving behind the path you were on. Trust the route your interviewer is pointing you down. Because they can see the whole maze. 6)How To Get The Most Out Of Your Coding Interview Practice Sessions When you start practicing for coding interviews, there’s a lot to cover. You’ll naturally wanna brush up on technical questions. But how you practice those questions will make a big difference in how well you’re prepared. Here’re a few tips to make sure you get the most out of your practice sessions. Track your weak spots One of the hardest parts of practicing is knowing what to practice. Tracking what you struggle with helps answer that question. So grab a fresh notebook. After each question, look back and ask yourself, “What did I get wrong about this problem at first?” Take the time to write down one or two things you got stuck on, and what helped you figure them out. Compare these notes to our tips for getting unstuck. After each full practice session, read through your entire running list. Read it at the beginning of each practice session too. This’ll add a nice layer of rigor to your practice, so you’re really internalizing the lessons you’re learning. Use an actual whiteboard Coding on a whiteboard is awkward at first. You have to write out every single character, and you can’t easily insert or delete blocks of code. Use your practice sessions to iron out that awkwardness. Run a few problems on a piece of paper or, if you can, a real whiteboard. A few helpful tips for handwriting code:
Start in the top-left corner. You want all the room you can get.
Leave blank space between each line of code. This makes it much easier to add things later.
Slow down. Take an extra second to think of descriptive variable names. You might be tempted to move faster by using short variable names, but that actually ends up costing more time. It’ll make your code harder to debug!
Set a timer Get a feel for the time pressure of an actual interview. You should be able to finish a problem in 30–45 minutes, including debugging your code at the end. If you’re just starting out and the timer adds too much stress, put this technique on the shelf. Add it in later as you start to get more comfortable with solving problems. Think out loud Like writing code on a whiteboard, this is an acquired skill. It feels awkward at first. But your interviewer will expect you to think out loud during the interview, so you gotta power through that awkwardness. A good trick to get used to talking out loud: Grab a buddy. Another engineer would be great, but you can also do this with a non-technical friend. Have your buddy sit in while you talk through a problem. Better yet—try loading up one of our questions on an iPad and giving that to your buddy to use as a script! Set aside a specific time of day to practice. Give yourself an hour each day to practice. Commit to practicing around the same time, like after you eat dinner. This helps you form a stickier habit of practicing. Prefer small, daily doses of practice to doing big cram sessions every once in a while. Distributing your practice sessions helps you learn more with less time and effort in the long run. part -2 will be upcoming in another post !
Customer retention is a goal every business owner should be obsessed with. At the end of the day it's cheaper to retain an existing customer than it is to acquire a new one. But how do you ensure that your customers keep using your service? Are there any simple, yet effective ways to reduce or even prevent churn? As it turns out there's one simple strategy you can use to keep your customers around even if they're about to leave your platform. Let's explore what it is and why it works.
Why you should obsess over customer retention
As already stated in the introduction it's important to focus on customer retention when building a sustainable business. Acquiring customers can be an expensive endeavour. If you're not (yet) in a position where your product grows through Word-of-Mouth you're likely spending a good portion of your revenue on paid ads and marketing to drive traffic to your service. Only a few of your thousands of visitors will eventually try your product and convert to become a paying customer. Optimizing this marketing and sales funnel is a tricky and costly activity. Think about it for a minute. Who finances your learnings and tweakings of such funnel? Correct, your existing customers. That's why keeping your users happy and around is one of the most important business objectives.
Why customers are churning
If you think about it, there's really only one reason why your customers are leaving your platform:
Your product isn't a crucial part of their life anymore
While this sounds harsh I'd like you to think about all the services you're currently subscribing to. Now imagine that you can only keep one. What would you cancel? Probably everything except the one you can't live without. Of course, the preferences are different from person to person and they change over time. And that's the exact reason why people cancel their subscription with your service: Their preferences have changed and they might want to take a pause from your service or need something else entirely.
"Churn Baby Churn"
Now that we know why your customers churn, it's time to get into their shoes and think about ways to keep them around. One of the "industry" standards is to send out a survey once they're about to leave to gather feedback and convince them to stay. Some services offer coupon codes if for example the user has clicked on the "it's too expensive" option in the survey. Other tactics are more on the "dark patterns" side of things. Hiding buttons, asking double negative questions or using other techniques to make it nearly impossible to leave. Needless to say that customers of businesses practicing such tactics aren't the ones who spread the word on how awesome the product is. Quite the opposite. But let's take a step back for a minute and ask ourselves why this "should I stay or should I go" question has to be binary in the first place. Isn't there something "right in the middle"? Something where a user can stay but somehow go at the same time?
"Wait a minute... or a month..."
The solution to this dilemma is dead simple and obvious, yet rarely used: Make it possible to pause the subscription. Yes, it's that simple. Just offer a way to pause a subscription and get back to it once your users current circumstances have changed. Now you might think that it's a really bad idea to let users pause their subscription. They'll pause and never come back. So essentially it's a "passive churn" as they haven't left the platform yet but might never use it again. The stale user data is sitting in the database and your dashboards are still showing hockey-stick growth. Furthermore it's a huge implementation effort as pausing and resuming subscriptions isn't something considered business critical and hence wasn't implemented just yet. Those are all valid concerns and some of them might turn out to be true even if you have a "pause- and resume your subscription" system in place. But let's take a seconds to look at the other side of the equation.
Why pausing is a good idea
They very first thing that comes to mind is the COVID-19 pandemic we're currently in. A lot of business scaled back and hence had to cancel subscriptions to their favorite SaaS tools to cut costs. A common "save the customer tactic" used here was to get in touch with the business owner and offer heavy discounted year long subscription plans. That way businesses could reassess if they should really quit and leave the huge discount on the table or just go with it and double down to benefit from the sweet, discounted multi-year subscription deal. Letting business put their subscription on hold would be another strategy that could be used to help retain and eventually reactivate your users during this pandemic. Put yourself into your customers shoes again for a minute. Wouldn't you want to pay it back in the future if your supplier lent you a helping hand and wasn't "forcing" you out the door? Even if your customers pause their account you still have their E-Mail address to reach out to them and keep them informed about your product. In fact you should use this opportunity to stay in touch, ask them how they're doing and providing something of value along the way. That way you keep the communication "warm" and your business stays on "their radar". There's a higher likelihood that they think about your service when times have changed and they're about to scale things up again. Having a way to pause a subscription is an action that's usually taken with some level of consideration. If your customer wants to quit (s)he'll just cancel the subscription anyway. Offering a way to pause for the time-being is another option your users might just not have right now, so they're forced to make a very binary decision and therefore they just quit. What you should also think about is that pausing a subscription doesn't necessarily mean that you'll lose revenue for sure. There are different and very creative ways in which you can implement the pause. My gym for example simply extends my membership for the amount of months I put my membership on hold. In the summer I make use of this feature since I do my workouts outside anyways. However those 3-4 months I "save" are simply "added" to my contract. I just have a little bit more control about how and where I spend my time with sports. You can get really creative here and invent other ways for this mechanism to work if you really want to ensure that you don't lose revenue. A last, important point is that you can use this functionality as a competitive advantage and "marketing material". Be sure to add the fact that people can pause their subscription to your list of product benefits. Add it to the copy right next to your "Subscribe Now" button. Addressing objections and concerns right before the call-to-action is about to happen will drastically increase your conversion rates.
Things to keep in mind when going down that path
Now you might be excited and eager to implement this strategy in the near future but before you do so I'd like to call out a couple of things you should keep in mind when implementing it. First of all: Keep it simple. There's no need to jump right into code and implement this functionality end-to-end. Do it manually in the beginning. Update the database records and the subscription plans for people who want to pause their subscription by hand. Maybe you find out that very few people want to make use of this feature. What you definitely want to put in place is your new copywriting. As discussed above you should ensure that your marketing website is updated and reflects the recent change you just introduced. Next up you want to have an automated follow-up E-Mail sequence / Drip campaign setup for pausing customers. Keep in touch. Ask for problems they had with your software and help them succeed in whatever they're up to right now. You might want to jump on a quick call to gather some feedback as to why they paused and understand what needs to be in place for them to come back. If you do this, please ensure that you're genuinely interested in the communication. There's nothing worse for a user than composing a reply and shooting the E-Mail into the marketing void. A very important, yet often overlooked step is to have a tool in place which deals with "passive churn". Such a system ensures that the credit cards on file are up to date and chargeable. There could be an overlap between your users pausing their subscription and their credit cards expiring. You don't want to make them look bad because of that. You could even think about a "concierge service" which onboards them in person once they'll come back. Combine this with a quick update on all the new features / updates they missed and are not yet familiar with. Lastly you absolutely don't want to make it hard for your users to pause their subscription. As mentioned above, avoid dark patterns at all costs. And more importantly: Don't penalize them for pausing. Messages such as "We'll retain your data for the next 60 days" are inappropriate in the day and age of "Big Data" and access to Petabytes of storage for a nickel and dime.
I'd like to challenge you to think about adding the possibility to pause a subscription. Is it suitable for your business? Would it help you retain and reactive more customers (especially in the current situation we're in)? If you're about to add it, keep in mind that it doesn't have to be complicated. Start with a simple E-Mail form your users can fill out to let you know for how long they want to pause. Just make sure that you follow the best practices outlined above and that you advertise that it's now possible for your customers to pause their subscriptions.
Customer retention is one of the most important metrics every business owner should focus on. It's the existing customers who finance the Customer Acquisition Costs that are necessary to bring new users into the door. It's almost always cheaper to keep your existing customers happy than to lose them and acquire brand new ones. Unfortunately a lot of SaaS services only offer a very binary option for their subscription plans. As a user you're either in or you're out. You stay or you leave. But what if a user wants to take a pause for a few months because of current changes in life circumstances? Offering a way to pause a subscription is a simple, yet effective way to retain and eventually reactive your existing customers. Remember that a pause is temporary. If you follow-up with them on a continuous basis and help them succeed they'll eventually come back. Maybe even as a raving, more loyal fan of your brand. I hope that you enjoyed this article and I'd love to invite you to subscribe to my Newsletter if you're interested in more, action-oriented posts like this. Do you have any questions, feedback or comments? Feel free to reach out via E-Mail or connect with me on Twitter. This post was originally published on philippmuens.com
Practicing SR since July 2017; currently have a 3+ month streak
2 accounts got shadowbanned for uploading this post. Spam filter kept on removing it this post. Messaged the moderators, but received no answer. Removed many links, so check post history for full version. First time making a Reddit post. Estimated Reading Time: 15 minutes Brief summary of post:
History of Journey
Using Subliminals (affirmations converted into audio) to reprogram the subconscious, overcome nocturnal emissions, and turbo-charge the Law of Attraction
Experience from meditation retreats
Massive booklist covering psychotherapy, spirituality, and general books such as negotiating and advanced social skills
Fundamental shifts that occurred
Experiences with semen-retention benefits
How I overcame and conquered negative entities
Tantric meditation method that actually works with zero side effects
Experience on speaking Japanese for 1 full hour with native speakers without notes after 3 months of learning
Terminology: Wet dream/WD – sexual dream causing semen emission while sleeping Nocturnal Emission/NE – semen emission occurring while sleeping even without dreaming Semen-retention/SR streak – avoiding porn, masturbation, and ejaculation whether conscious or unconscious Nofap Hardmode – avoiding porn, masturbation, and conscious ejaculation. Unconscious ejaculation/WD is considered fine. As the title suggests, my current streak started in the middle of June 2017. Haven’t watched any porn or masturbated in 3 years. Experienced almost all the benefits such as massive attraction (men, women, children), an aura/energy surrounding me, enhanced charisma, less need for sleep, insane levels of energy, drive, and motivation, zero anxiety or fear, massive confidence occasionally bordering on arrogance, increased manifestation/LOA, people admiring/respecting me for no reason, online attraction, less procrastination, better athletic performance, greater creativity/intelligence, the desire to live a purposeful life, greater emphasis on spirituality, and much much more. Could probably write several posts just on the benefits themselves. Only thing that didn’t improve was my skin, which was later fixed using subliminals. It’s been a long journey, so I’ll start with background information, and later elaborate on how I managed to go from nocturnal emissions every 5 days (avg) to having a perfect SR streak for 3 months. Used to watch anime which led to hentai (2013), and eventually western/japanese porn. Don’t even bother to search these terms on Google. It’s not worth it. Thankfully, those days are long behind me. As a side-note, I discovered the nofap/semen-retention subreddit in November 2017. Didn’t even know about SR before that. I was raised a Catholic in a fairly religious family. Always started various streaks, and eventually broke them due to boredom/emotional coping/curiosity about new videos. Thankfully, I got good grades, read books, and was interested in self-development, but all that time spent on porn was a complete waste. Assuming I spent at least 2 hours everyday for 4 years (1460 days), it amounts to 122 complete days or around 4 months in total. It’s pretty sad on reflection, but at least the experience is now absorbed, and I can write this post. On June 2017, after summer break started and final exams were over, I decided to permanently quit this habit. Downloaded an application called Cold Turkey and completely blocked all websites I used to visit. Now use Leechblock, which is available on most browsers (also use it to block/restrict access to non-NSFW websites which impair productivity like ESPN). Started 30 minutes of daily meditation (mindfulness + metta). Still continue the habits to this day, although the length is increased to 1 hour. Read Mindfulness in Plain English by Bhante Gunaratana and Lovingkindness by Sharon Salzberg for instructions. Have re-read these books multiple times. Mindfulness will allow you to be self-aware of your mental conditioning, while metta (feeling compassion for yourself, a friend, neutral person, and enemy) can remove thoughts of lust and fundamentally alter your mental programming. Compassion is a very powerful exercise. Read “The Mindful Path to Self-Compassion by Christopher Germer” while you’re at it and learn tonglen. All of these books contain zero fluff, and are invaluable reads. Started drinking 16 glasses of water (thought it would help skin, but helped in other ways), and doing 100 pushups + 100 sit-ups everyday. Increased it to 200 pushups + 200 sit-ups after 1 month. After 2 months, I made a decent amount of gains (SR helps), and people started asking me workout tips and what gym I go to. Had a Kindle Paperwhite, which is frankly one of my most valued possessions. Still works perfectly fine after 5 years, and costs only $130. Buy one now. Read a lot of books mostly consisting of biographies/spirituality/practical social skills/800+ page novels for around 6 hours per day. Still try to read for at least 15 minutes/1 chapter even when extremely busy. Will post a small booklist at the end of this post. You can upload books to it for free if you lack money. Visit (gen.lib.rus.ec), download the ebook in epub/mobi format, open it with Calibre (https://calibre-ebook.com/), and send it to Kindle using USB. Knowledge is an investment that produces continuous returns. Warren Buffett spends 80% of his time just reading! and takes action based on that knowledge. Even managed to have the motivation to learn Japanese by joining a foreign language exchange website. People, especially women, accepted and sent a lot of invitations to have a conversation; didn’t realize online attraction was due to SR back then. None of us showed our faces, so my physical appearance had nothing to do with it. From experience, the best way to learn a language was to make a phrase sheet with the most common phrases/questions, such as “okay”, “that’s awesome”, “what is that word in English/Japanese?” Basically a human AI bot. Don’t waste time trying to learn how to write the alphabet, although my primary purpose was to learn how to speak. Google Translate is good enough to understand the pronunciation. I learned Japanese primarily by watching Terrace House. First watched the episode with subtitles, then re-watched it without, while simultaneously writing all the connectives/conversational phrases. You can try unique methods to remember, but brute-force memorization/review worked the best. Never tried Anki since it was cumbersome to use. For the accent, the best way is to watch Japanese people trying to speak English, and try to mirror their accent as much as possible. It honestly helps. After 3 months, I could have a full 1 hour conversation in Japanese with a native speaker without looking at any notes. I wasn’t “fluent” (still stuttered and made mistakes), but it was a huge amount of progress for starting from scratch. Eventually after 6 months, I gave up practicing/speaking the language. I was mainly trying to fulfill a childhood fantasy, and I’m glad I tried since I learned a lot from it and got to talk with interesting people. But in reality, I stopped watching anime, and honestly never needed to speak Japanese in real-life. Now I barely remember any of the words, except a few basic phrases. Could probably last 30 seconds of full conversation at best. So, everything was going great until December 2017. During this time period, I probably had wet dreams/nocturnal emissions every 1 – 2 months. Barely felt much difference since there was a decent time interval between emissions. Drank 2 glasses of water everyday before bed, slept on my stomach, and ate spicy food (practices that cause nocturnal emissions), but was perfectly fine. However in December I started having emissions every 2 weeks. Initially didn’t care about it. In January it started happening every 1 week. Nothing really changed in my life during this time to cause emissions to increase. Then it started happening every 5 days, every 3 days, sometimes even 2 days in a row! Most of you will have no idea how terrible it feels to be on top of the world, and then suddenly crash down. The difference between living life with/without SR benefits is night and day. Even after sleeping 10 hours, I used to feel completely exhausted. People ignored me, or worse started “joking” around me. Complete disrespect by friends, family, and acquaintances. No energy/motivation to do anything. Constant brain fog, could barely concentrate. Felt even worse than my porn days when I ejaculated everyday. Voice completely shot, started feeling anxious about oral presentations for no reason, when I always excelled. Felt like my soul was dying. Those were really dark times. People started saying I “changed”, and started pointing out and constantly magnifying my flaws. It’s strange how people exaggerate our skills/talents on SR, while they completely ignore them post WD/ejaculation, and focus only on your flaws/mistakes. It makes you lose trust in everyone around you, as if all of them are energy vampires who only like you due to SR. I grew desperate. During this whole time I meditated, practiced no lust/no arousal as best as possible since July 2017, yet emissions increased massively in frequency. Some occurred due to sexual dreams, but most were nocturnal emissions. Thought I had a UTI at first, and went to a general practitioner. He didn’t seem very reliable, so I went to a prominent urologist. Did all sorts of tests, paid a good amount of money, and the doctor said everything was fine. Having nocturnal emissions every 5 days was perfectly normal at my age. Encouraged me to masturbate regularly if it became an inconvenience :) So medical science obviously failed. Started following all the tips/methods in this subreddit, and believe me I tried almost everything no matter how uncomfortable or time-consuming. Omad, avoid food/water before bed, vegetarianism, tantric meditation, different diets, various sleeping positions, no/increased meditation before bed, no/more exercise, yogic exercises, qigong, some tips mentioned by Soaring Eagle, prayed to God. None of them worked. The only method I didn’t try extensively were kegels. Initially tried a normal + reverse kegel routine, then found an article by coincidence on this subreddit about someone who permanently damaged their penis from doing kegels. Immediately stopped, thank you to that person for sharing your experience. It’s as if the universe was looking out for me. Best to avoid such risky methods even if you’re desperate. Currently sleep on my back since it avoids any "accidental physical stimulation" from occurring. So this nocturnal emission phenomena continued for over a year. Some methods worked better than others, while for some, I wasn’t sure if it was merely the placebo effect. In mid-2019 I came across subliminal videos (finally the good part!) on YouTube. (https://www.youtube.com/watch?v=P0W5AB1sGr0) This video explains it more thoroughly, but basically you convert affirmations (sentences like “I am happy/smart/handsome”) into audio using text-to-speech software and reprogram your subconscious mind. Tried a beauty subliminal (https://www.youtube.com/watch?v=xEXaAsm-Iys) as a joke, but the next day I noticed changes in my facial structure. Listened for an hour the first day, which was easy given the music. You have no idea how amazing it feels to know that you can control your reality just by using your mind. Completely magical. Supposedly it works due to the Law of Attraction; you can find out more by reading/watching “The Secret” by Rhonda Byrne, and later reading all the books by Neville Goddard. Started using a skin subliminal as well (https://www.youtube.com/watch?v=iqi8Q80pspk and later moved onto https://www.youtube.com/watch?v=COxz8hvl14Y ), and now my skin is completely normal. Visited prominent US dermatologists, tried all sorts of acne medicine including Accutane, and even did SR, yet none of them worked. Skin was pretty terrible, and I was glad it got fixed. Took around 4 months of daily listening although it can be shortelonger depending on your belief, blockages, and levels of positivity. There’s a CIA document on holographic universes, astral projection, time travel, and psychic powers if you need scientific validation: https://www.cia.gov/library/readingroom/docs/CIA-RDP96-00788R001700210016-5.pdf Disclaimer: Although there can be bad subliminal makers, they are very rare, and there has been only 2 of them in the history of the community. Someone named MindPower and Rose subliminals. The vast majority (99%) put positive affirmations. It’s best that you verify by checking all the comments, seeing their subscriber count, general personality, etc, but ultimately there’s no guarantee. The only way to make sure the affirmations are 100% positive and safe are to make them yourself or use a subliminal that blocks negative affirmations. One thing to note is that physical change (biokinesis; search that term)/spiritual subliminals utilize the prana in your body to a certain extent to make changes. It makes sense since physical change is essentially a psychic poweenergy work. So your SR benefits/aura might temporarily decrease. Hydration is also recommended, and you will notice feeling thirsty. Personally drink 20 glasses of water everyday. Obviously, my interest now turned towards using subliminals to cure nocturnal emissions. Unfortunately there’s a huge lack of subliminals regarding semen-retention or those targeted towards nocturnal emissions. Initially bought a subliminal using a paid request (you pay a subliminal maker for a specialized subliminal), but it didn’t work that well. Desired to be permanently free of nocturnal emissions, or at least reduce the frequency to once a month. So I decided to make my own subliminal. The affirmations will be posted below, and this is how I eventually cured my nocturnal emissions. Steps on how to make your own subliminal:
Write all the affirmations in a word document and save it.
Download text-to-speech software like Balabolka and output the audio file in wav format (you want both uncompressed + lossless)
Optional but recommended; download an audio editor like Audacity, and fast-forward the audio as much as possible using the “Change Tempo” effect. Personally I speed the audio to one second and then loop it 1000x. Continue the process as much as possible, but never make the audio length less than 1 second. Some subliminal makers make their subliminals even more powerful by creating multiple audio streams of their affirmations using different voices, merging all the voices together, and speeding them up. It’s called layering. Why super-sped affirmations work better can be somewhat explained by this article (https://www.psychologytoday.com/us/blog/sensorium/201812/experiments-suggest-humans-can-directly-observe-the-quantum), but science still doesn’t have all the answers. Will take time.
Affirmations Link:https://www.reddit.com/pureretention/comments/hg0tjb/practicing_sr_since_july_2017_finally_conquered/ (same content; scroll down to the subliminal section and download the affirmations file from the mega link) Listened to this personal subliminal for 1 hour everyday for an entire month. Still listen just to be safe. Took months of testing and editing affirmations to make it perfect. Experienced massive sexual dreams on certain days, more than normal, and found out that entities could be responsible. Try to avoid this subreddit as well, since reading the posts can trigger memories. More energetically sensitive now, and sometimes there’s a lot of low-vibrational energy. On a side-note, porn cripples your aura and invites negative entities (https://www.awakeningstaryoga.com/blog/expanding-away-from-porn-aura). Non-subliminal solutions:
The entire channel is a gem; these were some of the best. Have used them for a few months and feel much lighter and peaceful; experienced only headaches due to subconscious absorbing the affirmations, but zero negative effects. Advice: Remember to immediately download any subliminal video you find that is useful in wav format (https://www.savethevideo.com/download). Subliminal channels are sometimes deleted by YouTube (spam filter) or the creators themselves. Waited 3 whole months before deciding to make a Reddit post to make sure the method was 100% foolproof. Remember many people offering solutions in the past, yet 1 month later they would have another wd/nocturnal emission. The first month there was a lot of fear. Will I have a wet dream/nocturnal emission tonight? Was so traumatized it was difficult getting to sleep every night. After the 2nd month, I experimented with sleeping on my stomach and eating/drinking before bed. Nothing happened. Stopped recently to stay careful. After 2 years of suffering, this is a method that has worked. Try and see for yourself. Present day: How do you feel now? Some days it’s meh (due to flatline) like today; on other days I feel divine. No idea why flatline still occurs. Have regained all the benefits, feel love and happiness all the time. Experience intense states of bliss in meditation more frequently, although it’s just a distraction. Religiously/Spiritually I’ve moved from Christianity to Buddhism/Advaita Vedanta/parts of New Age. Found them more practical and useful in life. Was inspired to aim for spiritual enlightenment after reading “The 3 pillars of Zen” by Philip Kapleau. Read it, it might change your life. Have attended a number of meditation retreats now, along with 10-day ones. Everyone reading this post should try it. Understood how much our mental programming defined us, and that we aren’t are thoughts. Our childhood traumas define so much of our habitual reactions. Realized its okay to feel bored rather than chasing after constant stimulation. Even attended a Jhana retreat, which is exclusive for people who have attended prior retreats. Entered intense states of meditative absorption, understood the permeability/impermanence of reality, and had all sorts of mystical experiences. Experienced past lives; can confirm my mind did not make it up, since it’s an experience you can constantly replicate using the same methods. Before attempting such methods, you need to have the ability to sit down and meditate continuously for at least 3 hours. If you live in the US, attend IMS (Insight Meditation Society) or any prominent Vipassana/Theravada related retreat. Zen is a valid form of enlightenment, but it personally felt unstructured. Gave up music, took time since I was convinced it was needed for creativity. Instead, it was just a substitute source of dopamine and a way to avoid my emotions. Have much less brain fog after quitting. Only communicate using regular phone calls these days, which no one uses, and Snapchat/WhatsApp for texting. Avoid stories, waste of time. Instagram/TwitteFacebook are a waste of time unless you are using it for business purposes. The only social media you really need is LinkedIn. Women: You’ll learn more about them by reading romantic novels, Korean mangas, and watching Kdramas then reading all that seduction/red pill stuff. Focus on general charisma (men and women) instead of a specific gender. Read “The Charisma Myth” by Olivia Fox Cabane; it’s the most practical book on social skills I have ever read, and possibly the most life-changing as well. Teaches you self-awareness, applies Buddhist psychology to social interaction. Used to train executives in Google, read it now (and do all the exercises). The bibliography sent me on a rabbit hole that made me read ton of books on psychotherapy, meditation, mindfulness, and Buddhism; this was before SR. Inspired me to practice meditation, although the habit only became regular after SR. Read books such as Crucial Conversations by Al Switzer, Difficult Conversations by Douglas Stone, How to Talk so Kids will Listen by Adele Faber (works very well in general since even adults have childhood programming, and can act like children), Never Split the Difference by Chris Voss (FBI's chief international hostage and kidnapping negotiator from 2003 to 2007), Getting More by Stuart Diamond (trains negotiators at Google), and Pitch Anything by Oren Klaff (more theoretical but useful). Also read The Definitive Book of Body Language by Allan Pease and What Every Body is Saying by Joe Navarro. These are all books that will greatly improve your human interactions and contain limited fluff. Have re-read all of these books in difficult times, and they have never let me down. You should read it as well. Even if you become a monk, there’s lots of social infighting even in monasteries. Highly-developed social skills are invaluable whenever you are dealing with individuals. Read “How to make friends and influence people” by Dale Carnegie once in a while, since most forget to apply his “basic” advice. Learned a lot about oral presentations by watching Alan Shore on Boston Legal (TV show). Current position in life? Studying for a bachelor’s degree. My family is financially well-off, and my father is paying for my college tuition and dorm. Scholarships aren’t available for all income levels. Although I come from “privilege”, the above information can help anyone regardless of their financial position. We live in an era where information is accessible to all social classes, so excuses aren’t that relevant. If you’re practicing SR, you are already 20 steps closer to success. The tips above can be applied for free as long as you have a computesmartphone. Read books starting from today, knowledge is a source of power. People spend so much time reading the news, scrolling social media feeds, reacting to comments, chatting about useless things with friends, binging shows on Netflix, browsing YouTube/Reddit, that time quietly passes by. Time is the most valuable commodity you have; don’t waste such a limited resource on things that will contribute nothing towards your purpose in life. Once it’s spent, you can never get it back. Personally, I schedule the next day before going to bed. Leisure, Reading, Schoolwork, Meditation, everything is mapped out perfectly. Try to eliminate habits that just waste time and stick to your schedule perfectly (working on it myself). If you feel tired after work/studying, take a nap or meditate instead of receiving even more stimulation from videogames, YouTube, or other artificial dopamine sources. Try NoSurf.
The End of Your World by Adyashanti (fantastic writer; must-read if you have had an awakening experience or believe you are "enlightened")
How to Attain Enlightenment -> The Essence of Enlightenment by James Swartz (best introduction to Advaita Vedanta I have read so far)
I am That by Sri Nisargadatta Maharaj
In the Buddha's Words by Bhikkhu Bodhi (best introduction to Buddhist scripture)
Why Buddhism is True by Robert Wright (secular perspective but informative; his previous book The Moral Animal is a good introduction to evolutionary psychology. Read this first if you are non-spiritual)
Wisdom Wise and Deep by Shaila Catherine (comprehensive introduction by one of the best Jhana teachers in the US)
Manual of Insight by Mahasi Sayadaw
Emptiness: A Practical Guide by Guy Armstrong (good introduction to the Buddhist version of reality)
Books by Loch Kelly (practical guide to non-dual meditation practices within Buddhism; The Little Book of Being by Diana Winston may be a better introduction)
Seeing that Frees by Rob Burbea (really advanced but profound)
Musashi by Eiji Yoshikawa (Taiko is decent as well, but this one was a masterpiece)
Romance of the Three Kingdoms trans. Moss Roberts
The Dream of the Red Chamber trans. David Hawkes (read it in the summer of 2017, profound but not all may see the deeper meaning)
The Nine Cloud Dream trans. Heinz Insu Fenkl
Atlas Shrugged by Ayn Rand (Inspirational for Entrepreneurs, however don’t start adopting this book as economic philosophy. It’s just a novel!)
The Alchemist by Paulo Coelho (read now if you are experiencing an existential crisis)
Dostoevsky’s Crime and Punishment + The Brothers Karamazov (optional reading; prefer Pevear translation)
Perry Mason and Sherlock Holmes Series (pleasure reading but not useless)
Psychotherapy (never visited a therapist, but found these useful):
Getting Past Your Past by Francine Shapiro (by the founder of EMDR, best practical book on trauma and exercises to resolve it)
Complex PTSD: From Surviving to Thriving (another immensely practical book on recovering from trauma)
Breaking the Cycle by George Collins (best practical workbook on sexual addiction I have read; all should read)
Get out of your mind and into your life by Steven Hayes (Was mentioned in the charisma myth booklist; take control of your thoughts and mind by the founder of ACT)
Mindful Compassion by Paul Gilbert and Choden (prominent researcher on compassion applied to therapy; part one can be boring, but part two on practical exercises is invaluable)
Feeling Book by David Burns (rightfully a classic book on therapy and CBT; read if you are suffering from depression)
Healing Development Trauma by Laurence Heller (best book on the impact of childhood/development trauma but meant for therapists, might explain why we use addiction to cope from childhood memories; google ACE study as well)
The Boy who was raised as a Dog by Bruce Perry (stories about children experiencing trauma. Increases empathy for yourself and others; you realize how childhood trauma affects how a lot of people think and behave)
Whole Again: Healing Your Heart and Rediscovering Your True Self After Toxic Relationships and Emotional Abuse by Jackson MacKenzie (fantastic book on recovering from relationship abuse. Many of us have emotional baggage that fuels coping and addiction loops. Read Healing from Hidden Abuse by Shannon Thomas as well.)
Self-Compassion by Kristen Neff (optional reading, but complimentary)
For biographies, read those of presidents and important leaders. Also about famous/successful individuals. Read all of Ron Chernow’s books. Abuse the Amazon Search Engine and look through their categories. Reading biographies can fundamentally enhance your worldview so you realize that real-life issues are much more nuanced and gray rather than black and white. Also shows how successful people deal with difficult crises and their perspective on life. Especially for public policy. If a President implements an economic policy that has short-term gains, but long-term loss, he has a greater chance of being re-elected. However, short-term loss in favor of long-term gain is the correct policy. Employ critical-thinking! Avoid cable news even if you need to stay informed. Don’t even have a television in my house. Unnecessary. Just read 2 – 3 reputable news sources for 20 minutes max. Sometimes I even avoid the news since there’s too much negativity. https://www.reddit.com/kundalini/comments/1unyph/a_tantric_perspective_on_the_use_of_sexual_energy/ (tantric meditation technique that actually works; you are supposed to do it for 1 hour. Optional.) https://www.reddit.com/kundalini/comments/2zn8ev/grounding_201_two_effective_quick_methods/ (energetic protection + grounding method after doing the tantric meditation) Avoid learning Mantak Chia’s techniques from a book, since some have suffered side-effects to their energetic/biological body. For NEO, Tibetan buddhists practice meditation for 13 years before attempting it (https://en.wikipedia.org/wiki/Karmamudr%C4%81). Not easy. Not sure about women, since SR streak is more important. Don’t pick a partner to fulfill some kind of emotional void, or due to societal programming where women are held to be the ultimate goal. Spiritual Enlightenment is the ultimate goal now, but even enlightened people need money for food and shelter. Youtubers I follow are Graham Stephan, Ryan Serhant, Rupert Spira, and https://www.youtube.com/channel/UCUX1V5UNWP1RUkhLewe77ZQ (cured women objectification for me; wholesome content) although mostly I avoid the website. Easy to loose track of time. Avoid smoking, alcohol, recreational drug use (https://www.elitedaily.com/wellness/drugs-alcohol-aura-damage/1743959), casual sex (https://mywakingpath.wordpress.com/tag/aura/; sensitive images but useful), and fast food. Budget your money, and learn how to save as much as possible. Hope everyone reading this post experiences their definition of success and leads a purposeful life. Will end it by stating two quotes that have inspired and guided me: “You yourself have to change first, or nothing will change for you!” ― Hideaki Sorachi “It is not important to be better than someone else, but to be better than you were yesterday.” ― Jigoro Kano (Founder of Judo) Update 1, 2, 3: Added a post summary and the audio as well in the affirmations link Update 4: https://starseedsunited.com/negative-entities-and-psychic-attacks (basic article on entities) Some solutions are posted above. Updated* daily routine:
Binary Options signals are a major requirement for traders to take trading decisions. The signal industry is large and booming one. There are countless signal providers out there, so it becomes really difficult as a trader to make a choice. For newbie traders, this task can be quite intimidating, but these trading signals are beneficial for them. The best binary options trading software is a platform system that is clean, efficient, and simple for the user to learn. At How We Trade we use Tradorax, because their straight-forward platform really limits any trade entry mistakes a trader may be inclined to make. Prevent User Errors. Binary options are not necessarily easy to master, but mechanics of trading them are simple, and entering ... All Binary Options Software Reviews. This list includes every single binary options software I’ve ever reviewed. If you are looking for a specific review, just use the search function. Very few of these systems qualify for best binary options software status, but the reviews provide valuable insight and offer insight into the market is a whole. In addition to the free binary robot software, you will need to get a real account with a broker. The software will normally recommend binary options brokers to open an account and deposit with. Programme The Software. We don't mean that you need to be a programmer to operate the software, but you do need to tell it what you want. Set your ... The biggest factor in winning at binary options is LUCK. But yes, you can really win. The thing brokers will not tell you is that you will have to put in a lot of effort and research if you want to win consistently. And even then, luck is the most powerful variable. Like in sports betting, if you want to win you will have to have a great knowledge about the sport in question and about the ... Binary options trading may have gotten a bad rap because of its all-or-nothing premise, but the high payouts keep traders coming back for more. This is why binary options markets remain strong in various regions around the world, particularly in Asia. To avoid fraud in binary options trading, choose a trustworthy broker. These brokers can help ... Binary option is the good idea for both, the beginners and the experts as it is not a big deal for the traders to do so. We can did it with the best of the best trade and now we are here to help you the binary option system that can help you all to trade the best experience. Viper binary system has crawled the whole sound inside it as there are the best resources for the trading in and trading ...
Best Binary Options Autotrading Robot for 2016: Neo 2 Software? Copy Buffett? Binadroid?
I have been reviewing regulated, unregulated and blacklisted binary options brokers quite long time such as the best #Binaryoptionsrobots who have high winning rates. If you're looking for legit behind-the-scenes feedback about automated binary options trading solutions out there on the market, such as the Neo 2 Software, Copy Buffett, and Binadroid, etc, you ... The real value of the service comes in the way it helps you to understand binary options trading. With Binary Options Trading Signals, you get to observe real professional traders live, and see ... As you can see, there are many options in binary options trading software. You eventually need to decide to work with the software that you personally find simplest and most instinctive to use and ... Binary option enables clientele to fund their Binary Options accounts before they have got requested every one of the documents to the client. Consequently there could in truth be some annoyance ... There are two main types of binary options. The first one is Asset-or nothing binary option and the second one is cash-or-nothing binary option. Asset-or-nothing pays the value of the underlying ... Binary Options Trading System 2016- Best Binary Options Software 2016 If your prediction is correct when the option expires, you will be in the money. If your prediction is off, you end out of the ...