Binary Options Trading for Dummies - The Complete Beginner ...

ASIC Regulation Thread - Regarding the proposed changes ( Australians effected the most )

I'm hopeless at formatting text, so if you think you can structure this post better take everything i write and put it into an easy to digest way. I'm just going to type out everything i know in text as fast as possible. I'm not a legal expert, I'm not somehow who understands every bit of information in the PDF's below, but i know I'm a retail trader that uses leverage to make profit which is why I'm posting this, in the hope that someone who can run a charge better than me, will.
Some of you are already aware of what might be happening, this is just a post to educate retail traders on changes that might be coming to certain brokers. This effects Australian Customers the most, but also effects those living in other countries that use Australian brokers, such as Pepperstone and others.
Last year in August 2019, ASIC ( Australian Securities and Investments Commission ) was concerned about retail traders going into Forex and Binary options without understanding these instruments properly and started sticking their noses in for tough regulation.
ASIC asked brokers and anyone with interest in the industry to write to them and explain what should and should not change from the changes they proposed, some of the proposed changes are very misguided and come from a lack of understanding exactly how OTC derivatives actually work.
I will provide the link to the paper further down so you can read it yourself and i will provide a link to all the submission made by all parties that sent submissions to ASIC, however the 2 main points of debate are:
1, To reduce the overall leverage available to retail traders to either 20:1 or 30:1. This means people who currently use leverage such as 100:1 to 500:1 and everything in between will be effected the most, even more so are those traders with relatively small accounts, meaning in order to get your foot in the door to trading you will need more capital for it to be viable.
^^ This point above is very important.
2, The removing of Binary options trading, which basically includes products like "Bet if gold will rise to this price in the next 30 seconds" This sort of stuff. So far from all the submissions from brokers and individuals nobody really cares if this changes as far as i know, though if you have concerns about this i would start voicing your disapproval. Though i would not waste your time here, all is pointing to this being eradicated completely with brokers also supporting the changes, I've never used such a product and know very little about them.
^^ This point above isn't very important and will probably be enforced in the future.
Still to this day i see retail traders not understanding leverage, they think of it as "dangerous and scary", it's not, position size is the real danger, not leverage. So ASIC is aiming to limit retail traders access to high leverage, they are claiming it is a way to protect traders who don't really understand what they are getting into by attacking leverage and not the real problem which is position size relative to your capital.
If it was truly about protecting retail traders from blowing up their accounts, they would look for ways to educate traders on "understanding position sizes and why it's important" rather than attacking leverage, but their goal is misguided or has an ulterior motive . I will give you a small example below.
EXAMPLE - We will use 2 demo accounts for demonstration purposes. If you don't understand my example, i suggest you try it for yourself. - Skip if not interested in examples.
Lets say we open 2 demo accounts with $1000 in both, one with 20:1 leverage and one with 500:1 leverage and we open an identical position on both accounts ( say a micro lot '0.01' on EURUSD ). You are safer on the 500:1 account as you don't need to put up as much margin as collateral as you would on the 20:1. If the trade we just opened goes against us and continues against us, the account with 20:1 leverage will run out of free margin a lot faster than the 500:1 account. In this simple example is shows you that leverage is not dangerous but safer and gives you a lot more breathing room. This trade was a small micro lot, so it would take hundreds of pips movements to get margin called and blow up that $1000 on each account. Lets now use a different position size to truly understand why retail traders blow up accounts and is the reason why trading can be dangerous.
This time instead of opening a micro lot of '0.01' on our $1000 dollar demo accounts, lets open a position size much larger, 5 lots. Remember we only have $1000 and we are about to open a position much larger relative to our capital ( which we should never do because we can't afford to do that ) the 20:1 probably wont even let you place that trade if you don't have enough margin as collateral or if you could open the position you would have a very tiny amount of free margin left over, meaning a small pip movement against you will instantly blow up your $1000 account. On the 500:1 account you wouldn't need to put up as much margin as collateral with more free margin if the trade goes bad, but again a small movement could blow up your account. In this example, both accounts were dangerous because the lack of understanding position sizes, opening a position you can't afford to open. This is what the true danger is, not the leverage.
Even in the second example, the higher leverage would "margin call" you out later. So i would go as far to say that lower leverage is more dangerous for you because it margin calls you out faster and just by having a lower leverage doesn't stop you from opening big positions that can blow you up in a 5 pip movement anymore, any leverage size is dangerous if you're opening positions you can't afford to open. This is also taking into consideration that no risk management is being used, with risk management higher leverage is even more powerful.
ASIC believes lowering leverage will stop people opening positions that they can't afford. When the reality is no matter how much capital you have $500, $1000, $5000, $50,000, $500,000, $5,000,000. You don't open position sizes that will blow that capital up completely with small movements. The same thing can happen on a 20:1 or 500:1 account.
Leverage is a tool, use it, if your on a lower leverage already such as 20:1, 30:1 it means your country has been regulated and you already have harder trading conditions. Just remember higher leverage allows you to open larger position sizes in total for the amount of money you own, but the issue is NOT that your using the higher leverage but because you are opening positions you can't afford, for what ever reason that is, the only fix for this is education and will not be fixed by simply lowing leverage, since you can just as easy blow up your account on low leverage just as fast or if not faster.
So what is going on?
There might ( get your tinfoil hats on ) be more that is involved here, deeper than you think, other agendas to try and stop small time retail traders from making money via OTC products, theories such as governments not wanting their citizens to be traders, rather would prefer you to get out there and work a 9 to 5 instead. Effective ways to do this would be making conditions harder with a much larger barrier of entry and the best way to increase the barrier of entry for retail traders is to limit leverage, lower leverage means you need to put up more money, less breathing room for trades, lower potential. They are limiting your upside potential and the downside stays the same, a blown account is a blow account.
Think of leverage as a weapon, a person wielding a butchers knife can probably destroy a person wielding a steak knife, but both knifes can prove fatal. They want to make sure your holding the butter knife then tell you to butcher a cow with it. 30:1 leverage is still workable and can still be profitable, but not as profitable as 500:1 accounts. This is why they are allowing professionals to use high leverage, this gives them another edge over successful retail traders who will still be trying to butcher a cow with a butter knife, while they are slaying limbs off the cow with machetes.
It's a way to hamstring you and keep you away rather than trying to "protect" you. The real danger is not leverage, they are barking up the wrong tree, how convenient to be barking up the very tree most retail traders don't fully understand ( leverage) , pass legislation to make trading conditions harder and at the same time push the narrative that trading is dangerous by making it even harder. A full circle strategy to make your trading conditions worse, so you don't succeed.
Listen carefully especially if you trade with any of the brokers that have provided their submissions to ASIC. Brokers want to seem like they are on your side and so far some of the submissions ( i haven't read them all ) have brokers willing to drop their leverage down to 30:1 because they know by dropping the leverage down it will start margin calling out their clients at a much faster rate, causing more blown up accounts / abandoned accounts with residual margin called funds, but they also know that if they make trading environments too hard less people will trade or even worse move their funds elsewhere offshore to unregulated brokers that offer higher leverage.
Right now it's all just a proposal, but as governments expand and continue to gain more control over it's citizens, it's just a matter of time till it's law, it's up to you to be vocal about it, let your broker know that if they drop their leverage, you're out, force them to fight for you.
If you have any more information related to this, or have anything to add, post below. I'm not an expert at this technical law talk, i know that i do well with 500:1 leverage and turn profits with it, it would be harder for me to do on a lower leverage, this is the reason for my post.
All related documents HERE
CP-322 ( Consultation paper 322 ) & Submissions from brokers and others.
https://asic.gov.au/regulatory-resources/find-a-document/consultation-papers/cp-322-product-intervention-otc-binary-options-and-cfds/
submitted by southpaw_destroyer to Forex [link] [comments]

Using Deep Learning to Predict Earnings Outcomes

Using Deep Learning to Predict Earnings Outcomes
(Note: if you were following my earlier posts, I wrote a note at the end of this post explaining why I deleted old posts and what changed)
Edit: Can't reply to comments since my account is still flagged as new :\. Thank you everyone for your comments. Edit: Made another post answering questions here.
  • Test data is untouched during training 10:1:1 train:val:test.
  • Yes, I consider it "deep" learning from what I learned at my institution. I use LSTMs at one point in my pipeline, feel free to consider that deep or not.
  • I'll be making daily posts so that people can follow along.
  • Someone mentioned RL, yes I plan on trying that in the future :). This would require a really clever way to encode the current state parameters. Haven't thought about it too much yet.
  • Someone mentioned how companies beat earnings 61% anyway, so my model must be useless right? Well if you look at the confusion matrix you can see I balanced classes before training (with some noise). This means that the data had roughly 50/50 beat/miss and had a 58% test accuracy.
TLDR:
Not financial advice.
  • I created a deep learning algorithm trained on 2015-2019 data to predict whether a company will beat earning estimates.
  • Algorithm has an accuracy of 58%.
  • I need data and suggestions.
  • I’ll be making daily posts for upcoming earnings.
Greetings everyone,
I’m Bunga, an engineering PhD student at well known university. Like many of you, I developed an interest in trading because of the coronavirus. I lost a lot of money by being greedy and uninformed about how to actually trade options. With all the free time I have with my research slowing down because of the virus, I’ve decided to use what I’m good at (being a nerd, data analytics, and machine learning) to help me make trades.
One thing that stuck out to me was how people make bets on earnings reports. As a practitioner of machine learning, we LOVE binary events since the problem can be reduced to a simple binary classification problem. With that being said, I sought out to develop a machine learning algorithm to predict whether a company will beat earnings estimates.
I strongly suggest TO NOT USE THIS AS FINANCIAL ADVICE. Please, I could just be a random guy on the internet making things up, and I could have bugs in my code. Just follow along for some fun and don’t make any trades based off of this information 😊
Things other people have tried:
A few other projects have tried to do this to some extent [1,2,3], but some are not directly predicting the outcome of the earnings report or have a very small sample size of a few companies.
The data
This has been the most challenging part of the project. I’m using data for 4,000 common stocks.
Open, high, low, close, volume stock data is often free and easy to come by. I use stock data during the quarter (Jan 1 – Mar 31 stock data for Q1 for example) in a time series classifier. I also incorporate “background” data from several ETFs to give the algorithm a feel for how the market is doing overall (hopefully this accounts for bull/bear markets when making predictions).
I use sentiment analyses extracted from 10K/10Q documents from the previous quarter as described in [4]. This gets passed to a multilayer perceptron neural network.
Data that I’ve tried and doesn’t work to well:
Scraping 10K/10Q manually for US GAAP fields like Assets, Cash, StockholdersEquity, etc. Either I’m not very good at processing the data or most of the tables are incomplete, this doesn’t work well. However, I recently came across this amazing API [5] which will ameliorate most of these problems, and I plan on incorporating this data sometime this week.
Results
After training on about 34,000 data points, the model achieves a 58% accuracy on the test data. Class 1 is beat earnings, Class 2 is miss earnings.. Scroll to the bottom for the predictions for today’s AMC estimates.

https://preview.redd.it/fqapvx2z1tv41.png?width=875&format=png&auto=webp&s=05ea5cae25ee5689edea334f2814e1fa73aa195d
Future Directions
Things I’m going to try:
  • Financial twitter sentiment data (need data for this)
  • Data on options (ToS apparently has stuff that you can use)
  • Using data closer to the earnings report itself rather than just the data within the quarterly date
A note to the dozen people who were following me before
Thank you so much for the early feedback and following. I had a bug in my code which was replicating datapoints, causing my accuracy to be way higher in reality. I’ve modified some things to make the network only output a single value, and I’ve done a lot of bug fixing.
Predictions for 4/30/20 AMC:
A value closer to 1 means that the company will be more likely to beat earnings estimates. Closer to 0 means the company will be more likely to miss earnings estimates. (People familiar with machine learning will note that neural networks don’t actually output a probability distribution so the values don’t actually represent a confidence).
  • Tkr: AAPL NN: 0.504
  • Tkr: AMZN NN: 0.544
  • Tkr: UAL NN: 0.438
  • Tkr: GILD NN: 0.532
  • Tkr: TNDM NN: 0.488
  • Tkr: X NN: 0.511
  • Tkr: AMGN NN: 0.642
  • Tkr: WDC NN: 0.540
  • Tkr: WHR NN: 0.574
  • Tkr: SYK NN: 0.557
  • Tkr: ZEN NN: 0.580
  • Tkr: MGM NN: 0.452
  • Tkr: ILMN NN: 0.575
  • Tkr: MOH NN: 0.500
  • Tkr: FND NN: 0.542
  • Tkr: TWOU NN: 0.604
  • Tkr: OSIS NN: 0.487
  • Tkr: CXO NN: 0.470
  • Tkr: BLDR NN: 0.465
  • Tkr: CASA NN: 0.568
  • Tkr: COLM NN: 0.537
  • Tkr: COG NN: 0.547
  • Tkr: SGEN NN: 0.486
  • Tkr: FMBI NN: 0.496
  • Tkr: PSA NN: 0.547
  • Tkr: BZH NN: 0.482
  • Tkr: LOCO NN: 0.575
  • Tkr: DLA NN: 0.460
  • Tkr: SSNC NN: 0.524
  • Tkr: SWN NN: 0.476
  • Tkr: RMD NN: 0.499
  • Tkr: VKTX NN: 0.437
  • Tkr: EXPO NN: 0.526
  • Tkr: BL NN: 0.516
  • Tkr: FTV NN: 0.498
  • Tkr: ASGN NN: 0.593
  • Tkr: KNSL NN: 0.538
  • Tkr: RSG NN: 0.594
  • Tkr: EBS NN: 0.483
  • Tkr: PRAH NN: 0.598
  • Tkr: RRC NN: 0.472
  • Tkr: ICBK NN: 0.514
  • Tkr: LPLA NN: 0.597
  • Tkr: WK NN: 0.630
  • Tkr: ATUS NN: 0.530
  • Tkr: FBHS NN: 0.587
  • Tkr: SWI NN: 0.521
  • Tkr: TRUP NN: 0.570
  • Tkr: AJG NN: 0.509
  • Tkr: BAND NN: 0.618
  • Tkr: DCO NN: 0.514
  • Tkr: BRKS NN: 0.490
  • Tkr: BY NN: 0.502
  • Tkr: CUZ NN: 0.477
  • Tkr: EMN NN: 0.532
  • Tkr: VICI NN: 0.310
  • Tkr: GLPI NN: 0.371
  • Tkr: MTZ NN: 0.514
  • Tkr: SEM NN: 0.405
  • Tkr: SPSC NN: 0.465
[1] https://towardsdatascience.com/forecasting-earning-surprises-with-machine-learning-68b2f2318936
[2] https://zicklin.baruch.cuny.edu/wp-content/uploads/sites/10/2019/12/Improving-Earnings-Predictions-with-Machine-Learning-Hunt-Myers-Myers.pdf
[3] https://www.euclidean.com/better-than-human-forecasts
[4] https://cran.r-project.org/web/packages/edgaedgar.pdf.
[5] https://financialmodelingprep.com/developedocs/
submitted by xXx_Bunga_xXx to wallstreetbets [link] [comments]

[ANN][ANDROID MINING][AIRDROP] NewEnglandcoin: Scrypt RandomSpike

New England
New England 6 States Songs: https://www.reddit.com/newengland/comments/er8wxd/new_england_6_states_songs/
NewEnglandcoin
Symbol: NENG
NewEnglandcoin is a clone of Bitcoin using scrypt as a proof-of-work algorithm with enhanced features to protect against 51% attack and decentralize on mining to allow diversified mining rigs across CPUs, GPUs, ASICs and Android phones.
Mining Algorithm: Scrypt with RandomSpike. RandomSpike is 3rd generation of Dynamic Difficulty (DynDiff) algorithm on top of scrypt.
1 minute block targets base difficulty reset: every 1440 blocks subsidy halves in 2.1m blocks (~ 2 to 4 years) 84,000,000,000 total maximum NENG 20000 NENG per block Pre-mine: 1% - reserved for dev fund ICO: None RPCPort: 6376 Port: 6377
NewEnglandcoin has dogecoin like supply at 84 billion maximum NENG. This huge supply insures that NENG is suitable for retail transactions and daily use. The inflation schedule of NengEnglandcoin is actually identical to that of Litecoin. Bitcoin and Litecoin are already proven to be great long term store of value. The Litecoin-like NENG inflation schedule will make NewEnglandcoin ideal for long term investment appreciation as the supply is limited and capped at a fixed number
Bitcoin Fork - Suitable for Home Hobbyists
NewEnglandcoin core wallet continues to maintain version tag of "Satoshi v0.8.7.5" because NewEnglandcoin is very much an exact clone of bitcoin plus some mining feature changes with DynDiff algorithm. NewEnglandcoin is very suitable as lite version of bitcoin for educational purpose on desktop mining, full node running and bitcoin programming using bitcoin-json APIs.
The NewEnglandcoin (NENG) mining algorithm original upgrade ideas were mainly designed for decentralization of mining rigs on scrypt, which is same algo as litecoin/dogecoin. The way it is going now is that NENG is very suitable for bitcoin/litecoin/dogecoin hobbyists who can not , will not spend huge money to run noisy ASIC/GPU mining equipments, but still want to mine NENG at home with quiet simple CPU/GPU or with a cheap ASIC like FutureBit Moonlander 2 USB or Apollo pod on solo mining setup to obtain very decent profitable results. NENG allows bitcoin litecoin hobbyists to experience full node running, solo mining, CPU/GPU/ASIC for a fun experience at home at cheap cost without breaking bank on equipment or electricity.
MIT Free Course - 23 lectures about Bitcoin, Blockchain and Finance (Fall,2018)
https://www.youtube.com/playlist?list=PLUl4u3cNGP63UUkfL0onkxF6MYgVa04Fn
CPU Minable Coin Because of dynamic difficulty algorithm on top of scrypt, NewEnglandcoin is CPU Minable. Users can easily set up full node for mining at Home PC or Mac using our dedicated cheetah software.
Research on the first forked 50 blocks on v1.2.0 core confirmed that ASIC/GPU miners mined 66% of 50 blocks, CPU miners mined the remaining 34%.
NENG v1.4.0 release enabled CPU mining inside android phones.
Youtube Video Tutorial
How to CPU Mine NewEnglandcoin (NENG) in Windows 10 Part 1 https://www.youtube.com/watch?v=sdOoPvAjzlE How to CPU Mine NewEnglandcoin (NENG) in Windows 10 Part 2 https://www.youtube.com/watch?v=nHnRJvJRzZg
How to CPU Mine NewEnglandcoin (NENG) in macOS https://www.youtube.com/watch?v=Zj7NLMeNSOQ
Decentralization and Community Driven NewEnglandcoin is a decentralized coin just like bitcoin. There is no boss on NewEnglandcoin. Nobody nor the dev owns NENG.
We know a coin is worth nothing if there is no backing from community. Therefore, we as dev do not intend to make decision on this coin solely by ourselves. It is our expectation that NewEnglandcoin community will make majority of decisions on direction of this coin from now on. We as dev merely view our-self as coin creater and technical support of this coin while providing NENG a permanent home at ShorelineCrypto Exchange.
Twitter Airdrop
Follow NENG twitter and receive 100,000 NENG on Twitter Airdrop to up to 1000 winners
Graphic Redesign Bounty
Top one award: 90.9 million NENG Top 10 Winners: 500,000 NENG / person Event Timing: March 25, 2019 - Present Event Address: NewEnglandcoin DISCORD at: https://discord.gg/UPeBwgs
Please complete above Twitter Bounty requirement first. Then follow Below Steps to qualify for the Bounty: (1) Required: submit your own designed NENG logo picture in gif, png jpg or any other common graphic file format into DISCORD "bounty-submission" board (2) Optional: submit a second graphic for logo or any other marketing purposes into "bounty-submission" board. (3) Complete below form.
Please limit your submission to no more than two total. Delete any wrongly submitted or undesired graphics in the board. Contact DISCORD u/honglu69#5911 or u/krypton#6139 if you have any issues.
Twitter Airdrop/Graphic Redesign bounty sign up: https://goo.gl/forms/L0vcwmVi8c76cR7m1
Milestones
Roadmap
NENG v1.4.0 Android Mining, randomSpike Evaluation https://github.com/ShorelineCrypto/NewEnglandCoin/releases/download/NENG_2020_Q3_report/NENG_2020_Q3_report.pdf
RandomSpike - NENG core v1.3.0 Hardfork Upgrade Proposal https://github.com/ShorelineCrypto/NewEnglandCoin/releases/download/2020Q1_Report/Scrypt_RandomSpike_NENGv1.3.0_Hardfork_Proposal.pdf
NENG Security, Decentralization & Valuation
https://github.com/ShorelineCrypto/NewEnglandCoin/releases/download/2019Q2_report/NENG_Security_Decentralization_Value.pdf
Whitepaper v1.0 https://github.com/ShorelineCrypto/NewEnglandCoin/releases/download/whitepaper_v1.0/NENG_WhitePaper.pdf
DISCORD https://discord.gg/UPeBwgs
Explorer
http://www.findblocks.com/exploreNENG http://86.100.49.209/exploreNENG http://nengexplorer.mooo.com:3001/
Step by step guide on how to setup an explorer: https://github.com/ShorelineCrypto/nengexplorer
Github https://github.com/ShorelineCrypto/NewEnglandCoin
Wallet
Android with UserLand App (arm64/armhf), Chromebook (x64/arm64/armhf): https://github.com/ShorelineCrypto/NewEnglandCoin/releases/tag/v1.4.0.5
Linux Wallet (Ubuntu/Linux Mint, Debian/MX Linux, Arch/Manjaro, Fedora, openSUSE): https://github.com/ShorelineCrypto/NewEnglandCoin/releases/tag/v1.4.0.3
MacOS Wallet (10.11 El Capitan or higher): https://github.com/ShorelineCrypto/NewEnglandCoin/releases/tag/v1.4.0.2
Android with GNUroot on 32 bits old Phones (alpha release) wallet: https://github.com/ShorelineCrypto/NewEnglandCoin/releases/tag/v1.4.0
Windows wallet: https://github.com/ShorelineCrypto/NewEnglandCoin/releases/tag/v1.3.0.1
addnode ip address for the wallet to sync faster, frequently updated conf file: https://github.com/ShorelineCrypto/cheetah_cpumineblob/mastenewenglandcoin.conf-example
How to Sync Full Node Desktop Wallet https://www.reddit.com/NewEnglandCoin/comments/er6f0q/how_to_sync_full_node_desktop_wallet/
TWITTER https://twitter.com/newenglandcoin
REDDIT https://www.reddit.com/NewEnglandCoin/
Cheetah CPU Miner Software https://github.com/ShorelineCrypto/cheetah_cpuminer
Solo Mining with GPU or ASIC https://bitcointalk.org/index.php?topic=5027091.msg52187727#msg52187727
How to Run Two Full Node in Same Desktop PC https://bitcointalk.org/index.php?topic=5027091.msg53581449#msg53581449
ASIC/GPU Mining Pools Warning to Big ASIC Miners Due to DynDiff Algo on top of Scrypt, solo mining is recommended for ASIC/GPU miners. Further more, even for mining pools, small mining pool will generate better performance than big NENG mining pool because of new algo v1.2.x post hard fork.
The set up configuration of NENG for scrypt pool mining is same as a typical normal scrypt coin. In other word, DynDiff on Scrypt algo is backward compatible with Scrypt algo. Because ASIC/GPU miners rely on CPU miners for smooth blockchain movement, checkout bottom of "Latest News" section for A WARNING to All ASIC miners before you decide to dump big ASIC hash rate into NENG mining.
(1) Original DynDiff Warning: https://bitcointalk.org/index.php?topic=5027091.msg48324708#msg48324708 (2) New Warning on RandomSpike Spike difficulty (244k) introduced in RandomSpike served as roadblocks to instant mining and provide security against 51% attack risk. However, this spike difficulty like a roadblock that makes big ASIC mining less profitable. In case of spike block to be mined, the spike difficulty immediately serve as base difficulty, which will block GPU/ASIC miners effectively and leave CPU cheetah solo miners dominating mining almost 100% until next base difficulty reset.
FindBlocks http://findblocks.com/
CRpool http://crpool.xyz/
Cminors' Pool http://newenglandcoin.cminors-pool.com/
SPOOL https://spools.online/
Exchange
📷
https://shorelinecrypto.com/
Features: anonymous sign up and trading. No restriction or limit on deposit or withdraw.
The trading pairs available: NewEnglandcoin (NENG) / Dogecoin (DOGE)
Trading commission: A round trip trading will incur 0.10% trading fees in average. Fees are paid only on buyer side. buy fee: 0.2% / sell fee: 0% Deposit fees: free for all coins Withdraw fees: ZERO per withdraw. Mining fees are appointed by each coin blockchain. To cover the blockchain mining fees, there is minimum balance per coin per account: * Dogecoin 2 DOGE * NewEnglandcoin 1 NENG
Latest News Aug 30, 2020 - NENG v1.4.0.5 Released for Android/Chromebook Upgrade with armhf, better hardware support https://bitcointalk.org/index.php?topic=5027091.msg55098029#msg55098029
Aug 11, 2020 - NENG v1.4.0.4 Released for Android arm64 Upgrade / Chromebook Support https://bitcointalk.org/index.php?topic=5027091.msg54977437#msg54977437
Jul 30, 2020 - NENG v1.4.0.3 Released for Linux Wallet Upgrade with 8 Distros https://bitcointalk.org/index.php?topic=5027091.msg54898540#msg54898540
Jul 21, 2020 - NENG v1.4.0.2 Released for MacOS Upgrade with Catalina https://bitcointalk.org/index.php?topic=5027091.msg54839522#msg54839522
Jul 19, 2020 - NENG v1.4.0.1 Released for MacOS Wallet Upgrade https://bitcointalk.org/index.php?topic=5027091.msg54830333#msg54830333
Jul 15, 2020 - NENG v1.4.0 Released for Android Mining, Ubuntu 20.04 support https://bitcointalk.org/index.php?topic=5027091.msg54803639#msg54803639
Jul 11, 2020 - NENG v1.4.0 Android Mining, randomSpike Evaluation https://bitcointalk.org/index.php?topic=5027091.msg54777222#msg54777222
Jun 27, 2020 - Pre-Announce: NENG v1.4.0 Proposal for Mobile Miner Upgrade, Android Mining Start in July 2020 https://bitcointalk.org/index.php?topic=5027091.msg54694233#msg54694233
Jun 19, 2020 - Best Practice for Futurebit Moonlander2 USB ASIC on solo mining mode https://bitcointalk.org/index.php?topic=5027091.msg54645726#msg54645726
Mar 15, 2020 - Scrypt RandomSpike - NENG v1.3.0.1 Released for better wallet syncing https://bitcointalk.org/index.php?topic=5027091.msg54030923#msg54030923
Feb 23, 2020 - Scrypt RandomSpike - NENG Core v1.3.0 Relased, Hardfork on Mar 1 https://bitcointalk.org/index.php?topic=5027091.msg53900926#msg53900926
Feb 1, 2020 - Scrypt RandomSpike Proposal Published- NENG 1.3.0 Hardfork https://bitcointalk.org/index.php?topic=5027091.msg53735458#msg53735458
Jan 15, 2020 - NewEnglandcoin Dev Team Expanded with New Kickoff https://bitcointalk.org/index.php?topic=5027091.msg53617358#msg53617358
Jan 12, 2020 - Explanation of Base Diff Reset and Effect of Supply https://www.reddit.com/NewEnglandCoin/comments/envmo1/explanation_of_base_diff_reset_and_effect_of/
Dec 19, 2019 - Shoreline_tradingbot version 1.0 is released https://bitcointalk.org/index.php?topic=5121953.msg53391184#msg53391184
Sept 1, 2019 - NewEnglandcoin (NENG) is Selected as Shoreline Tradingbot First Supported Coin https://bitcointalk.org/index.php?topic=5027091.msg52331201#msg52331201
Aug 15, 2019 - Mining Update on Effect of Base Difficulty Reset, GPU vs ASIC https://bitcointalk.org/index.php?topic=5027091.msg52169572#msg52169572
Jul 7, 2019 - CPU Mining on macOS Mojave is supported under latest Cheetah_Cpuminer Release https://bitcointalk.org/index.php?topic=5027091.msg51745839#msg51745839
Jun 1, 2019 - NENG Fiat project is stopped by Square, Inc https://bitcointalk.org/index.php?topic=5027091.msg51312291#msg51312291
Apr 21, 2019 - NENG Fiat Project is Launched by ShorelineCrypto https://bitcointalk.org/index.php?topic=5027091.msg50714764#msg50714764
Apr 7, 2019 - Announcement of Fiat Project for all U.S. Residents & Mobile Miner Project Initiation https://bitcointalk.org/index.php?topic=5027091.msg50506585#msg50506585
Apr 1, 2019 - Disclosure on Large Buying on NENG at ShorelineCrypto Exchange https://bitcointalk.org/index.php?topic=5027091.msg50417196#msg50417196
Mar 27, 2019 - Disclosure on Large Buying on NENG at ShorelineCrypto Exchange https://bitcointalk.org/index.php?topic=5027091.msg50332097#msg50332097
Mar 17, 2019 - Disclosure on Large Buying on NENG at ShorelineCrypto Exchange https://bitcointalk.org/index.php?topic=5027091.msg50208194#msg50208194
Feb 26, 2019 - Community Project - NewEnglandcoin Graphic Redesign Bounty Initiated https://bitcointalk.org/index.php?topic=5027091.msg49931305#msg49931305
Feb 22, 2019 - Dev Policy on Checkpoints on NewEnglandcoin https://bitcointalk.org/index.php?topic=5027091.msg49875242#msg49875242
Feb 20, 2019 - NewEnglandCoin v1.2.1 Released to Secure the Hard Kork https://bitcointalk.org/index.php?topic=5027091.msg49831059#msg49831059
Feb 11, 2019 - NewEnglandCoin v1.2.0 Released, Anti-51% Attack, Anti-instant Mining after Hard Fork https://bitcointalk.org/index.php?topic=5027091.msg49685389#msg49685389
Jan 13, 2019 - Cheetah_CpuMiner added support for CPU Mining on Mac https://bitcointalk.org/index.php?topic=5027091.msg49218760#msg49218760
Jan 12, 2019 - NENG Core v1.1.2 Released to support MacOS OSX Wallet https://bitcointalk.org/index.php?topic=5027091.msg49202088#msg49202088
Jan 2, 2019 - Cheetah_Cpuminer v1.1.0 is released for both Linux and Windows https://bitcointalk.org/index.php?topic=5027091.msg49004345#msg49004345
Dec 31, 2018 - Technical Whitepaper is Released https://bitcointalk.org/index.php?topic=5027091.msg48990334#msg48990334
Dec 28, 2018 - Cheetah_Cpuminer v1.0.0 is released for Linux https://bitcointalk.org/index.php?topic=5027091.msg48935135#msg48935135
Update on Dec 14, 2018 - NENG Blockchain Stuck Issue https://bitcointalk.org/index.php?topic=5027091.msg48668375#msg48668375
Nov 27, 2018 - Exclusive for PC CPU Miners - How to Steal a Block from ASIC Miners https://bitcointalk.org/index.php?topic=5027091.msg48258465#msg48258465
Nov 28, 2018 - How to CPU Mine a NENG block with window/linux PC https://bitcointalk.org/index.php?topic=5027091.msg48298311#msg48298311
Nov 29, 2018 - A Warning to ASIC Miners https://bitcointalk.org/index.php?topic=5027091.msg48324708#msg48324708
Disclosure: Dev Team Came from ShorelineCrypto, a US based Informatics Service Business offering Fee for service for Coin Creation, Coin Exchange Listing, Blockchain Consulting, etc.
submitted by honglu69 to NewEnglandCoin [link] [comments]

Step-by-Step Guide for Adding a Stack, Expanding Control Lines, and Building an Assembler

After the positive response to my first tutorial on expanding the RAM, I thought I'd continue the fun by expanding the capabilities of Ben's 8-bit CPU even further. That said, you'll need to have done the work in the previous post to be able to do this. You can get a sense for what we'll do in this Imgur gallery.
In this tutorial, we'll balance software and hardware improvements to make this a pretty capable machine:

Parts List

To only update the hardware, you'll need:
If you want to update the toolchain, you'll need:
  1. Arduino Mega 2560 (Amazon) to create the programmer.
  2. Ribbon Jumper Cables (Amazon) to connect the Arduino to the breadboard.
  3. TL866 II Plus EEPROM Programmer (Amazon) to program the ROM.
Bonus Clock Improvement: One additional thing I did is replace the 74LS04 inverter in Ben's clock circuit with a 74LS14 inverting Schmitt trigger (datasheet, Jameco). The pinouts are identical! Just drop it in, wire the existing lines, and then run the clock output through it twice (since it's inverting) to get a squeaky clean clock signal. Useful if you want to go even faster with the CPU.

Step 1: Program with an Arduino and Assembler (Image 1, Image 2)

There's a certain delight in the physical programming of a computer with switches. This is how Bill Gates and Paul Allen famously programmed the Altair 8800 and started Microsoft. But at some point, the hardware becomes limited by how effectively you can input the software. After upgrading the RAM, I quickly felt constrained by how long it took to program everything.
You can continue to program the computer physically if you want and even after upgrading that option is still available, so this step is optional. There's probably many ways to approach the programming, but this way felt simple and in the spirit of the build. We'll use an Arduino Mega 2560, like the one in Ben's 6502 build, to program the RAM. We'll start with a homemade assembler then switch to something more robust.
Preparing the Physical Interface
The first thing to do is prepare the CPU to be programmed by the Arduino. We already did the hard work on this in the RAM upgrade tutorial by using the bus to write to the RAM and disconnecting the control ROM while in program mode. Now we just need to route the appropriate lines to a convenient spot on the board to plug the Arduino into.
  1. This is optional, but I rewired all the DIP switches to have ground on one side, rather than alternating sides like Ben's build. This just makes it easier to route wires.
  2. Wire the 8 address lines from the DIP switch, connecting the side opposite to ground (the one going to the chips) to a convenient point on the board. I put them on the far left, next to the address LEDs and above the write button circuit.
  3. Wire the 8 data lines from the DIP switch, connecting the side opposite to ground (the one going to the chips) directly below the address lines. Make sure they're separated by the gutter so they're not connected.
  4. Wire a line from the write button to your input area. You want to connect the side of the button that's not connected to ground (the one going to the chip).
So now you have one convenient spot with 8 address lines, 8 data lines, and a write line. If you want to get fancy, you can wire them into some kind of connector, but I found that ribbon jumper cables work nicely and keep things tidy.
The way we'll program the RAM is to enter program mode and set all the DIP switches to the high position (e.g., 11111111). Since the switches are upside-down, this means they'll all be disconnected and not driving to ground. The address and write lines will simply be floating and the data lines will be weakly pulled up by 1k resistors. Either way, the Arduino can now drive the signals going into the chips using its outputs.
Creating the Arduino Programmer
Now that we can interface with an Arduino, we need to write some software. If you follow Ben's 6502 video, you'll have all the knowledge you need to get this working. If you want some hints and code, see below (source code):
  1. Create arrays for your data and address lines. For example: const char ADDRESS_LINES[] = {39, 41, 43, 45, 47, 49, 51, 53};. Create your write line with #define RAM_WRITE 3.
  2. Create functions to enable and disable your address and data lines. You want to enable them before writing. Make sure to disable them afterward so that you can still manually program using DIP switches without disconnecting the Arduino. The code looks like this (just change INPUT to OUTPUT accordingly): for(int n = 0; n < 8; n += 1) { pinMode(ADDRESS_LINES[n], OUTPUT); }
  3. Create a function to write to an address. It'll look like void writeData(byte writeAddress, byte writeData) and basically use two loops, one for address and one for data, followed by toggling the write.
  4. Create a char array that contains your program and data. You can use #define to create opcodes like #define LDA 0x01.
  5. In your main function, loop through the program array and send it through writeData.
With this setup, you can now load multi-line programs in a fraction of a second! This can really come in handy with debugging by stress testing your CPU with software. Make sure to test your setup with existing programs you know run reliably. Now that you have your basic setup working, you can add 8 additional lines to read the bus and expand the program to let you read memory locations or even monitor the running of your CPU.
Making an Assembler
The above will serve us well but it's missing a key feature: labels. Labels are invaluable in assembly because they're so versatile. Jumps, subroutines, variables all use labels. The problem is that labels require parsing. Parsing is a fun project on the road to a compiler but not something I wanted to delve into right now--if you're interested, you can learn about Flex and Bison. Instead, I found a custom assembler that lets you define your CPU's instruction set and it'll do everything else for you. Let's get it setup:
  1. If you're on Windows, you can use the pre-built binaries. Otherwise, you'll need to install Rust and compile via cargo build.
  2. Create a file called 8bit.cpu and define your CPU instructions (source code). For example, LDA would be lda {address} -> 0x01 @ address[7:0]. What's cool is you can also now create the instruction's immediate variant instead of having to call it LDI: lda #{value} -> 0x05 @ value[7:0].
  3. You can now write assembly by adding #include "8bit.cpu" to the top of your code. There's a lot of neat features so make sure to read the documentation!
  4. Once you've written some assembly, you can generate the machine code using ./customasm yourprogram.s -f hexc -p. This prints out a char array just like our Arduino program used!
  5. Copy the char array into your Arduino program and send it to your CPU.
At this stage, you can start creating some pretty complex programs with ease. I would definitely play around with writing some larger programs. I actually found a bug in my hardware that was hidden for a while because my programs were never very complex!

Step 2: Expand the Control Lines (Image)

Before we can expand the CPU any further, we have to address the fact we're running out of control lines. An easy way to do this is to add a 3rd 28C16 ROM and be on your way. If you want something a little more involved but satisfying, read on.
Right now the control lines are one hot encoded. This means that if you have 4 lines, you can encode 4 states. But we know that a 4-bit binary number can encode 16 states. We'll use this principle via 74LS138 decoders, just like Ben used for the step counter.
Choosing the Control Line Combinations
Everything comes with trade-offs. In the case of combining control lines, it means the two control lines we choose to combine can never be activated at the same time. We can ensure this by encoding all the inputs together in the first 74LS138 and all the outputs together in a second 74LS138. We'll keep the remaining control lines directly connected.
Rewiring the Control Lines
If your build is anything like mine, the control lines are a bit of a mess. You'll need to be careful when rewiring to ensure it all comes back together correctly. Let's get to it:
  1. Place the two 74LS138 decoders on the far right side of the breadboard with the ROMs. Connect them to power and ground.
  2. You'll likely run out of inverters, so place a 74LS04 on the breadboard above your decoders. Connect it to power and ground.
  3. Carefully take your inputs (MI, RI, II, AI, BI, J) and wire them to the outputs of the left 74LS138. Do not wire anything to O0 because that's activated by 000 which won't work for us!
  4. Carefully take your outputs (RO, CO, AO, EO) and wire them to the outputs of the right 74LS138. Remember, do not wire anything to O0!
  5. Now, the 74LS138 outputs are active low, but the ROM outputs were active high. This means you need to swap the wiring on all your existing 74LS04 inverters for the LEDs and control lines to work. Make sure you track which control lines are supposed to be active high vs. active low!
  6. Wire E3 to power and E2 to ground. Connect the E1 on both 138s together, then connect it to the same line as OE on your ROMs. This will ensure that the outputs are disabled when you're in program mode. You can actually take off the 1k pull-up resistors from the previous tutorial at this stage, because the 138s actively drive the lines going to the 74LS04 inverters rather than floating like the ROMs.
At this point, you really need to ensure that the massive rewiring job was successful. Connect 3 jumper wires to A0-A2 and test all the combinations manually. Make sure the correct LED lights up and check with a multimeteoscilloscope that you're getting the right signal at each chip. Catching mistakes at this point will save you a lot of headaches! Now that everything is working, let's finish up:
  1. Connect A0-A2 of the left 74LS138 to the left ROM's A0-A2.
  2. Connect A0-A2 of the right 74LS138 to the right ROM's A0-A2.
  3. Distribute the rest of the control signals across the two ROMs.
Changing the ROM Code
This part is easy. We just need to update all of our #define with the new addresses and program the ROMs again. For clarity that we're not using one-hot encoding anymore, I recommend using hex instead of binary. So instead of #define MI 0b0000000100000000, we can use #define MI 0x0100, #define RI 0x0200, and so on.
Testing
Expanding the control lines required physically rewiring a lot of critical stuff, so small mistakes can creep up and make mysterious errors down the road. Write a program that activates each control line at least once and make sure it works properly! With your assembler and Arduino programmer, this should be trivial.
Bonus: Adding B Register Output
With the additional control lines, don't forget you can now add a BO signal easily which lets you fully use the B register.

Step 3: Add a Stack (Image 1, Image 2)

Adding a stack significantly expands the capability of the CPU. It enables subroutines, recursion, and handling interrupts (with some additional logic). We'll create our stack with an 8-bit stack pointer hard-coded from $0100 to $01FF, just like the 6502.
Wiring up the Stack Pointer
A stack pointer is conceptually similar to a program counter. It stores an address, you can read it and write to it, and it increments. The only difference between a stack pointer and a program counter is that the stack pointer must also decrement. To create our stack pointer, we'll use two 74LS193 4-bit up/down binary counters:
  1. Place a 74LS00 NAND gate, 74LS245 transceiver, and two 74LS193 counters in a row next to your output register. Wire up power and ground.
  2. Wire the the Carry output of the right 193 to the Count Up input of the left 193. Do the same for the Borrow output and Count Down input.
  3. Connect the Clear input between the two 193s and with an active high reset line. The B register has one you can use on its 74LS173s.
  4. Connect the Load input between the two 193s and to a new active low control line called SI on your 74LS138 decoder.
  5. Connect the QA-QD outputs of the lower counter to A8-A5 and the upper counter to A4-A1. Pay special attention because the output are in a weird order (BACD) and you want to make sure the lower A is connected to A8 and the upper A is connected to A4.
  6. Connect the A-D inputs of the lower counter to B8-B5 and the upper counter to B4-B1. Again, the inputs are in a weird order and on both sides of the chip so pay special attention.
  7. Connect the B1-B8 outputs of the 74LS245 transceiver to the bus.
  8. On the 74LS245 transceiver, connect DIR to power (high) and connect OE to a new active low control line called SO on your 74LS138 decoder.
  9. Add 8 LEDs and resistors to the lower part of the 74LS245 transceiver (A1-A8) so you can see what's going on with the stack pointer.
Enabling Increment & Decrement
We've now connected everything but the Count Up and Count Down inputs. The way the 74LS193 works is that if nothing is counting, both inputs are high. If you want to increment, you keep Count Down high and pulse Count Up. To decrement, you do the opposite. We'll use a 74LS00 NAND gate for this:
  1. Take the clock from the 74LS08 AND gate and make it an input into two different NAND gates on the 74LS00.
  2. Take the output from one NAND gate and wire it to the Count Up input on the lower 74LS193 counter. Take the other output and wire it to the Count Down input.
  3. Wire up a new active high control line called SP from your ROM to the NAND gate going into Count Up.
  4. Wire up a new active high control line called SM from your ROM to the NAND gate going into Count Down.
At this point, everything should be working. Your counter should be able to reset, input a value, output a value, and increment/decrement. But the issue is it'll be writing to $0000 to $00FF in the RAM! Let's fix that.
Accessing Higher Memory Addresses
We need the stack to be in a different place in memory than our regular program. The problem is, we only have an 8-bit bus, so how do we tell the RAM we want a higher address? We'll use a special control line to do this:
  1. Wire up an active high line called SA from the 28C16 ROM to A8 on the Cypress CY7C199 RAM.
  2. Add an LED and resistor so you can see when the stack is active.
That's it! Now, whenever we need the stack we can use a combination of the control line and stack pointer to access $0100 to $01FF.
Updating the Instruction Set
All that's left now is to create some instructions that utilize the stack. We'll need to settle some conventions before we begin:
If you want to add a little personal flair to your design, you can change the convention fairly easily. Let's implement push and pop (source code):
  1. Define all your new control lines, such as #define SI 0x0700 and #define SO 0x0005.
  2. Create two new instructions: PSH (1011) and POP (1100).
  3. PSH starts the same as any other for the first two steps: MI|CO and RO|II|CE. The next step is to put the contents of the stack pointer into the address register via MI|SO|SA. Recall that SA is the special control line that tells the memory to access the $01XX bank rather than $00XX.
  4. We then take the contents of AO and write it into the RAM. We can also increment the stack pointer at this stage. All of this is done via: AO|RI|SP|SA, followed by TR.
  5. POP is pretty similar. Start off with MI|CO and RO|II|CE. We then need to take a cycle and decrement the stack pointer with SM. Like with PSH, we then set the address register with MI|SO|SA.
  6. We now just need to output the RAM into our A register with RO|AI|SA and then end the instruction with TR.
  7. Updating the assembler is easy since neither instruction has operands. For example, push is just psh -> 0x0B.
And that's it! Write some programs that take advantage of your new 256 byte stack to make sure everything works as expected.

Step 4: Add Subroutine Instructions (Image)

The last step to complete our stack is to add subroutine instructions. This allows us to write complex programs and paves the way for things like interrupt handling.
Subroutines are like a blend of push/pop instructions and a jump. Basically, when you want to call a subroutine, you save your spot in the program by pushing the program counter onto the stack, then jumping to the subroutine's location in memory. When you're done with the subroutine, you simply pop the program counter value from the stack and jump back into it.
We'll follow 6502 conventions and only save and restore the program counter for subroutines. Other CPUs may choose to save more state, but it's generally left up to the programmer to ensure they're not wiping out states in their subroutines (e.g., push the A register at the start of your subroutine if you're messing with it and restore it before you leave).
Adding an Extra Opcode Line
I've started running low on opcodes at this point. Luckily, we still have two free address lines we can use. To enable 5-bit opcodes, simply wire up the 4Q output of your upper 74LS173 register to A7 of your 28C16 ROM (this assumes your opcodes are at A3-A6).
Updating the ROM Writer
At this point, you simply need to update the Arduino writer to support 32 instructions vs. the current 16. So, for example, UCODE_TEMPLATE[16][8] becomes UCODE_TEMPLATE[32][8] and you fill in the 16 new array elements with nop. The problem is that the Arduino only has so much memory and with the way Ben's code is written to support conditional jumps, it starts to get tight.
I bet the code can be re-written to handle this, but I had a TL866II Plus EEPROM programmer handy from the 6502 build and I felt it would be easier to start using that instead. Converting to a regular C program is really simple (source code):
  1. Copy all the #define, global const arrays (don't forget to expand them from 16 to 32), and void initUCode(). Add #include and #include to the top.
  2. In your traditional int main (void) C function, after initializing with initUCode(), make two arrays: char ucode_upper[2048] and char ucode_lower[2048].
  3. Take your existing loop code that loops through all addresses: for (int address = 0; address < 2048; address++).
  4. Modify instruction to be 5-bit with int instruction = (address & 0b00011111000) >> 3;.
  5. When writing, just write to the arrays like so: ucode_lower[address] = ucode[flags][instruction][step]; and ucode_upper[address] = ucode[flags][instruction][step] >> 8;.
  6. Open a new file with FILE *f = fopen("rom_upper.hex", "wb");, write to it with fwrite(ucode_upper, sizeof(char), sizeof(ucode_upper), f); and close it with fclose(f);. Repeat this with the lower ROM too.
  7. Compile your code using gcc (you can use any C compiler), like so: gcc -Wall makerom.c -o makerom.
Running your program will spit out two binary files with the full contents of each ROM. Writing the file via the TL866II Plus requires minipro and the following command: minipro -p CAT28C16A -w rom_upper.hex.
Adding Subroutine Instructions
At this point, I cleaned up my instruction set layout a bit. I made psh and pop 1000 and 1001, respectively. I then created two new instructions: jsr and rts. These allow us to jump to a subroutine and returns from a subroutine. They're relatively simple:
  1. For jsr, the first three steps are the same as psh: MI|CO, RO|II|CE, MI|SO|SA.
  2. On the next step, instead of AO we use CO to save the program counter to the stack: CO|RI|SP|SA.
  3. We then essentially read the 2nd byte to do a jump and terminate: MI|CO, RO|J.
  4. For rts, the first four steps are the same as pop: MI|CO, RO|II|CE, SM, MI|SO|SA.
  5. On the next step, instead of AI we use J to load the program counter with the contents in stack: RO|J|SA.
  6. We're not done! If we just left this as-is, we'd jump to the 2nd byte of jsr which is not an opcode, but a memory address. All hell would break loose! We need to add a CE step to increment the program counter and then terminate.
Once you update the ROM, you should have fully functioning subroutines with 5-bit opcodes. One great way to test them is to create a recursive program to calculate something--just don't go too deep or you'll end up with a stack overflow!

Conclusion

And that's it! Another successful upgrade of your 8-bit CPU. You now have a very capable machine and toolchain. At this point I would have a bunch of fun with the software aspects. In terms of hardware, there's a number of ways to go from here:
  1. Interrupts. Interrupts are just special subroutines triggered by an external line. You can make one similar to how Ben did conditional jumps. The only added complexity is the need to load/save the flags register since an interrupt can happen at any time and you don't want to destroy the state. Given this would take more than 8 steps, you'd also need to add another line for the step counter (see below).
  2. ROM expansion. At this point, address lines on the ROM are getting tight which limits any expansion possibilities. With the new approach to ROM programming, it's trivial to switch out the 28C16 for the 28C256 that Ben uses in the 6502. These give you 4 additional address lines for flags/interrupts, opcodes, and steps.
  3. LCD output. At this point, adding a 16x2 character LCD like Ben uses in the 6502 is very possible.
  4. Segment/bank register. It's essentially a 2nd memory address register that lets you access 256-byte segments/banks of RAM using bank switching. This lets you take full advantage of the 32K of RAM in the Cypress chip.
  5. Fast increment instructions. Add these to registers by replacing 74LS173s with 74LS193s, allowing you to more quickly increment without going through the ALU. This is used to speed up loops and array operations.
submitted by MironV to beneater [link] [comments]

ABI Breaks: Not just about rebuilding

Related reading:
What is ABI, and What Should WG21 Do About It?
The Day The Standard Library Died

Q: What does the C++ committee need to do to fix large swaths of ABI problems?

A: Absolutely nothing

On current implementations, std::unique_ptr's calling convention causes some inefficiencies compared to raw pointers. The standard doesn't dictate the calling convention of std::unique_ptr, so implementers could change that if they chose to.
On current implementations, std::hash will return the same result for the same input, even across program invocations. This makes it vulnerable to cache poisoning attacks. Nothing in the standard requires that different instances of a program produce the same output. An implementation could choose to have a global variable with a per-program-instance seed in it, and have std::hash mix that in.
On current implementations, std::regex is extremely slow. Allegedly, this could be improved substantially without changing the API of std::regex, though most implementations don't change std::regex due to ABI concerns. An implementation could change if it wanted to though. However, very few people have waded into the guts of std::regex and provided a faster implementation, ABI breaking or otherwise. Declaring an ABI break won't make such an implementation appear.
None of these issues are things that the C++ committee claims to have any control over. They are dictated by vendors and by the customers of the vendors. A new vendor could come along and have a better implementation. For customers that prioritize QoI over ABI stability, they could switch and recompile everything.
Even better, the most common standard library implementations are all open source now. You could fork the standard library, tweak the mangling, and be your own vendor. You can then be in control of your own destiny ABI, and without taking the large up-front cost of reinventing the parts of the standard library that you are satisfied with. libc++ has a LIBCXX_ABI_UNSTABLE configuration flag, so that you always get the latest and greatest optimizations. libstdc++ has a --enable-symvers=gnu-versioned-namespace configuration flag that is ABI unstable, and it goes a long way towards allowing multiple libstdc++ instances coexist simultaneously. Currently the libc++ and libstdc++ unstable ABI branches don't have many new optimizations because there aren't many contributions and few people use it. I will choose to be optimistic, and assume that they are unused because people were not aware of them.
If your only concern is ABI, and not API, then vendors and developers can fix this on their own without negatively affecting code portability or conformance. If the QoI gains from an ABI break are worth a few days / weeks to you, then that option is available today.

Q: What aspects of ABI makes things difficult for the C++ committee.

A: API and semantic changes that would require changes to the ABI are difficult for the C++ committee to deal with.

There are a lot of things that you can do to a type or function to make it ABI incompatible with the old type. The C++ committee is reluctant to make these kinds of changes, as they have a substantially higher cost. Changing the layout of a type, adding virtual methods to an existing class, and changing template parameters are the most common operations that run afoul of ABI.

Q: Are ABI changes difficult for toolchain vendors to deal with?

A1: For major vendors, they difficulty varies depending on the magnitude of the break.

Since GCC 5 dealt with the std::string ABI break, GCC has broken the language ABI 6 other times, and most people didn't even notice. There were several library ABI breaks (notably return type changes for std::complex and associative container erase) that went smoothly as well. Quite a few people noticed the GCC 5 std::string ABI changes though.
In some cases, there are compiler heroics that can be done to mitigate an library ABI change. You will get varying responses as to whether this is a worthwhile thing to do, depending on the vendor and the change.
If the language ABI changes in a large way, then it can cause substantially more pain. GCC had a major language ABI change in GCC 3.4, and that rippled out into the library. Dealing with libstdc++.so.5 and libstdc++.so.6 was a major hassle for many people, myself included.

A2: For smaller vendors, the difficulty of an ABI break depends on their customer base.

These days, it's easier than ever to be your own toolchain vendor. That makes you a vendor with excellent insight into how difficult an ABI change would be.

Q: Why don't you just rebuild after an ABI change?

A1: Are you rebuilding the standard library too?

Many people will recommend not passing standard library types around, and not throwing exceptions across shared library boundaries. They often forget that at least one very commonly used shared library does exactly that... your C++ standard library.
On many platforms, there is usually a system C++ standard library. If you want to use that, then you need to deal with standard library types and exceptions going across shared library boundaries. If OS version N+1 breaks ABI in the system C++ standard library, the program you shipped and tested with for OS version N will not work on the upgraded OS until you rebuild.

A2: Sometimes, rebuilding isn't enough

Suppose your company distributes pre-built programs to customers, and this program supports plugins (e.g. Wireshark dissector plugins). If the plugin ABI changes, in the pre-built program, then all of the plugins need to rebuild. The customer that upgrades the program is unlikely to be the one that does the rebuilding, but they will be responsible for upgrading all the plugins as well. The customer cannot effectively upgrade until the entire ecosystem has responded to the ABI break. At best, that takes a lot of time. More likely, some parts of the ecosystem have become unresponsive, and won't ever upgrade.
This also requires upgrading large swaths of a system at once. In certain industries, it is very difficult to convince a customer to upgrade anything at all, and upgrading an entire system would be right out.
Imagine breaking ABI on a system library on a phone. Just getting all of the apps that your company owns upgraded and deployed at the same time as the system library would be a herculean effort, much less getting all the third party apps to upgrade as well.
There are things you can do to mitigate these problems, at least for library and C++ language breaks on Windows, but it's hard to mitigate this if you are relying on a system C++ standard library. Also, these mitigations usually involve writing more error prone code that is less expressive and less efficient than if you just passed around C++ standard library types.

A3: Sometimes you can't rebuild everything.

Sometimes, business models revolve around selling pre-built binaries to other people. It is difficult to coordinate ABI changes across these businesses.
Sometimes, there is a pre-built binary, and the company that provided that binary is no longer able to provide updates, possibly because the company no longer exists.
Sometimes, there is a pre-built binary that is a shared dependency among many companies (e.g. OpenSSL). Breaking ABI on an upgrade of such a binary will cause substantial issues.

Q: What tools do we have for managing ABI changes?

A: Several, but they all have substantial trade-offs.

The most direct tool is to just make a new thing and leave the old one alone. Don't like std::unordered_map? Then make std::open_addressed_hash_map. This technique allows new and old worlds to intermix, but the translations between new and old must be done explicitly. You don't get to just rebuild your program and get the benefits of the new type. Naming the new things becomes increasingly difficult, at least if you decide to not do the "lazy" thing and just name the new class std::unordered_map2 or std2::unordered_map. Personally, I'm fine with slapping a version number on most of these classes, as it gives a strong clue to users that we may need to revise this thing again in the future, and it would mean we might get an incrementally better hash map without needing to wait for hashing research to cease.
inline namespaces are another tool that can be used, but they solve far fewer ABI problems than many think. Upgrading a type like std::string or std::unordered_map via inline namespaces generally wouldn't work, as user types holding the upgraded types would also change, breaking those ABIs. inline namespaces can probably help add / change parameters to functions, and may even extend to updating empty callable objects, but neither of those are issues that have caused many problems in the C++ committee in the past.
Adding a layer of indirection, similar to COM, does a lot to address stability and extensibility, at a large cost to performance. However, one area that the C++ committee hasn't explored much in the past is to look at the places where we already have a layer of indirection, and using COM-like techniques to allow us to add methods in the future. Right now, I don't have a good understanding of the performance trade-offs between the different plug-in / indirect call techniques that we could use for things like std::pmr::memory_resource and std::error_category.

Q: What can I do if I don't want to pay the costs for ABI stability?

A: Be your own toolchain vendor, using the existing open-source libraries and tools.

If you are able to rebuild all your source, then you can point all your builds at a custom standard library, and turn on (or even make your own) ABI breaking changes. You now have a competitive advantage, and you didn't even need to amend an international treaty (the C++ standard) to make it happen! If your changes were only ABI breaking and not API breaking, then you haven't even given up on code portability.
Note that libc++ didn't need to get libstdc++'s permission in order to coexist on Linux. You can have multiple standard libraries at the same time, though there are some technical challenges created when you do that.

Q: What can I do if I want to change the standard in a way that is ABI breaking?

A1: Consider doing things in a non-breaking way.

A2: Talk to compiler vendors and the ABI Review Group (ARG) to see if there is a way to mitigate the ABI break.

A3: Demonstrate that your change is so valuable that the benefit outweighs the cost, or that the cost isn't necessarily that high.

Assorted points to make before people in the comments get them wrong

submitted by ben_craig to cpp [link] [comments]

[SHARE] Fulfilled Textbook Request Megathread #4

Download any of these for free at https://oppfiles.com/585933
DM me if you have any requests for anything not on the list.
If you want solution manuals/testbanks, you can also request them
Almost all the books are in their latest editions and some of them are available in multiple editions too.
Please subscribe the sub to find all the latest textbook releases.
Enjoy!
[Book] Art is an endangered species: a History of western art, Paleolithic Romanesque(self) 1 [BOOK] Above the Fray: The Red Cross and the Making of the Humanitarian NGO Sector by Shai Dromi(self) 2 [Book] Prehospital Emergency Care 11th Edition(self) 1 [Book] JAMA Guide to Statistics and Methods 1st Edition by Edward Livingston, Roger Lewis(self) 3 [Book] Annual Editions: Anthropology 42/e, Elvio ANGELONI(self) 4 [Book] Donnelly, Seth 2019 The Lie of Global Prosperity: How Neoliberals Distort Data to Mask Poverty & Exploitation. Monthly Review Press.(self)NSFW 6 [Article] "What's Your Title?" - 'The Turn of the Screw.'(self) 3 [Article] Risk and survival of patients with head and neck cutaneous melanoma: national perspective. Al-Qurayshi Z et al(self) 1 [Book] [Taylor & Francis] Maritime Disputes and International Law: Disputed Waters and Seabed Resources in Asia and Europe by Constantinos Yiallourides(self) 2 [Book] Computer Network Security by Ali Sadiqui(self) 1 [Article] [Brill] Several articles from The Australian Year Book of International Law Volume 34(1)(self) 2 [Book]The Cham of Vietnam: History, Society and Art(self) 1 [Book] (Taylor&Francis) Human Biological Diversity by Daniel E. Brown(self) 4 [Article] [tandfonline] Memory for emotional words: The role of semantic relatedness, encoding task and affective valence(self) 5 [Article] Please help me to find this paper :( Shippers' Transport Efficiency: The Balance Between Required and Available Capacity(self) 6 [Article] [Heinonline] Trusts in Mixed Legal Systems: A Challenge to Comparative Trust Law - Michael Milo and Jan Smits(self) 4 [Article] [Heinonline] Non-Variation Clause - A Further Postscript(self) 4 [Article] [Heinonline] Force Majeure and Hardship Under The Unidroit Principles of International Commercial Contracts - Joseph M Perillo(self) 4 [Article] [Heinonline] The Enforcement of an Oral Pactum de non Petendo Where a Contract Contains a Non-Variation Clause - Tukishi Manamela(self) 4 [Article] [Brill] Joint Development of Offshore Oil and Gas Resources in the South China Sea by John Abrahamson(self) 2 [BOOK] Med School Confidential: A Complete Guide to the Medical School Experience: By Students, for Students(self) 4 [Book] [Bloomsbury] The Hague Trusts Convention: Scope, Application and Preliminary Issues - Jonathan Harris(self) 4 [Article] The UNIDROIT Principles and the Arbitral Tribunals - Fabio Bortoli(self) 2 [Article] The Effects of Transcranial Direct Current Stimulation (tDCS) on Idiopathic Hypersomnia: A Pilot Study(self) 4 [Book] [Bloomsbury] The South China Sea Arbitration Toward an International Legal Order in the Oceans by Yoshifumi Tanaka(self) 1 [book] International Law Commission and Future of Int. Law(self) 4 [BOOK] Mapping Populism. Approaches and Methods - Amit Ron, Majia Nadesan(self) 4 [Article] At the Type Archive(self) 4 [BOOK] Challenging Austerity Radical Left and Social Movements in the South of Europe - Beltrán Roca, Emma Martín-Díaz, Ibán Díaz-Parra(self) 4 [BOOK] The Right in Latin America. Elite Power, Hegemony and the Struggle for the State - Barry Cannon(self) 1 [BOOK] Latin America’s Left Turns: Politics, Policies, and Trajectories of Change - Maxwell A. Cameron and Eric Hershberg, editors(self) 1 [Book] Science Lessons: What the Business of Biotech Taught Me about Management by Philip Bashe(self) 1 [Book] Studies in Islamic and later Indian art from the Arthur M. Sackler Museum, Harvard University Art Museums(self) 1 [Article] The Beneficial Effect of Physical Exercise on Inflammatory Makers in Older Individuals Endocr Metab Immune Disord Drug Targets. 2020 Jun 6. Pablo Gómez-Rubio, Isabel Trapero(self) 4 [BOOK] Routledge Handbook of Global Populism - Carlos de la Torre(self) 1 [BOOK] Politics after Violence. Legacies of the Shining Path Conflict in Peru - Hillel Soifer & Alberto Vergara(self) 4 [Book] Emmanuel Levinas: Basic Philosophical Writings, edited by Adriaan T. Peperzak (et al.), 2008.(self) 1 [Article] Residual Flow Inside the Woven EndoBridge Device at Follow-Up: Potential Predictors of the Bicêtre Occlusion Scale Score 1 Phenomenon(self) 4 [Book] Who Reads Ulysses?: The Common Reader and the Rhetoric of the Joyce Wars(self) 1 [BOOK] 'Hegel and the Symbolic Mediation of Spirit' by Kathleen Dow Magnus, 2001(self) 2 [Article] THE CRIMINAL AND HIS SCIENCE: A Critical Account of the Formation of Criminology at the End of the Nineteenth Century(self) 1 [Book] Situational Analysis: Grounded Theory After the Interpretive Turn(self) 1 [BOOK] Intrepid Women: Cantinières and Vivandières of the French Army by Thomas Cardoza(self) 1 [Article] Star, Susan Leigh, By Adele E. Clarke(self) 1 Book: Classics of Philosophy by Louis Pojman(self) 1 [article] Schutz's semiotics and the symbolic construction of reality - Hanke(self) 5 [article] Alexandra Kollontai and revolutionary fiction - Sybil James(self) 2 [Article] Fears of an AI pioneer - John Bohannon(self) 2 [Article] Can not access this article.(self) 2 [Book] Can't access this book from archive.org(self) 1 [Book] 45 Tips, Tricks, and Secrets for the Successful International Baccalaureate [IB] Student(self) 7 [BOOK] Request well formatted "The Oxford Dictionary of Philosophy"(self) 1 [Book] Doing Real Research: A Practical Guide to Social Research by Eric Jensen, Charles Laurie(self) 1 [BOOK] Chemoinformatics: Basic Concepts and Methods(self) 4 [Book] (Elgaronline) Concepts for International Law edited by Sahib Singh(self) 1 [Book] A concise history of Sweden from the Viking Age to the present(self) 1 [BOOK] Someone can share me "The Penguin Dictionary of Philosophy Book pdf" please?(self) 4 [BOOK] Latin America In Comparative Perspective New Approaches To Methods And Analysis - Peter H. Smith(self) 1 [BOOK] Southeast Asia in Political Science Theory, Region, and Qualitative Analysis - Edited by Erik Martinez Kuhonta, Dan Slater and Tuong Vu(self) 4 [BOOK] A History of the Talmud David C. Kraemer(self) 1 [BOOK] Compendium of Intellectual Property Cases - Copyright and Industrial Designs Volume 2(self) 4 [Book] Peasant state and society in medieval South India by Burton Stein.(self) 6 [Article] https://www.scientificamerican.com/article/its-time-to-take-delirium-seriously/(self) 1 [BOOK] Urbina, J. L (2000). Las malas juntas. Santiago, Chile: LOM Ediciones.(self) 5 [Book] Ince, Onur Ulas 2018 Colonial Capitalism & The Dilemmas of Liberalism. Oxford University Press.(self)NSFW 3 [BOOK] Hegel and Contemporary Practical Philosophy ISBN 978-0815383734(self) 3 [Thesis] An Overview and Performance Guide to Manuel Ponce's Sonata III for Solo Guitar(self) 2 [Article] New media simulation stories in nursing education: a quasi-experimental study exploring learning outcomes. Author: Robin Webb-Corbett , Melissa Renee Schwartz, Bob Green, Andrea Sessoms, Melvin Swanson(self) 4 [Book] Bell, Duncan 2016 Reordering the World: Essays on Liberalism & Empire. Princeton University Press(self)NSFW 4 [Book] Objective Measures in Cochlear Implants - Michelle L. Hughes(self) 1 [Book] Hands-on Scala Programming - Li Haoyi(self) 5 [BOOK] Ancient Sex: New Essays, Kirk Ormand, ed. Ruby Blondell(self) 3 [Article] The Impotence of the Causal Impotence Objection by Alastair Norcross(self) 1 [Article] Forsaking Wisdom, Author: David Benatar(self) 1 [Book] Encyclopedia of Insurgency and Counterinsurgency: A New Era of Modern Warfare - Spencer C. Tucker(self) 1 [BOOK] 'The cynic & the fool: the unconscious in theology & politics', Tad DeLay, Eugene, Oregon : Cascade Books (2017)(self) 1 [Book] The Crafts and Capitalism byTirthankar Roy(self) 3 [Book] Organic Chemistry By Cram, Hendrickson and Hammond. 3rd edition, 1970. Pls help.(self) 1 [BOOK] Measuring and Valuing Health Benefits for Economic Evaluation. Authors: John Brazier, Julie Ratcliffe, Joshua Saloman, and Aki Tsuchiya.(self) 3 [Article] Recommendations to distinguish behavioural variant frontotemporal dementia from psychiatric disorders. Authors: Ducharme, S. et al(self) 1 [BOOK] Clinical Handbook of Psychotropic Drugs 23rd Edition(self) 4 [Article] Gardner, Martin MATHEMATICAL GAMES from Scientific American vol 209, No. 4(self) 3 [Book]Mesopotamian Cosmic Geography(self) 1 [Book] Encyclopedia of Insurgency and Counterinsurgency : A New Era of Modern Warfare - Spencer Tucker(self) 1 [BOOK] Second interim report on English collocations - Harold Palmer (Tokyo)(self) 1 [Book] Paul B. Miller, John Oberdiek - Civil Wrongs and Justice in Private Law - Oxford University Press(self) 8 [BOOK] Fateful Triangle: How China Shaped U.S.-India Relations During the Cold War by TANVI MADAN(self) 1 [BOOK] Tooth preparations: science & art (Clovis Pagani)(self) 4 [Book] (Taylor&Francis) Human Variation: Races, Types, and Ethnic Groups by Stephen Molnar(self) 1 [Article] Surgical techniques for adrenal tumors(self) 2 [Article] Three articles from ashpublications needed!(self) 1 [Book] The SCOPUS Diaries and the (il)logics of Academic Survival(self) 6 [Article] Untangling constructivism, knowledge, and knowledge-building for “future-oriented” teaching Author(s): Jane Gilbert(self) 1 [BOOK] Sentenciando Tráfico - Marcelo Semer(self) 4 [Book] Believing History: Latter-day Saint Essays(self) 1 [Book]Book of Mormon Authorship Revisited: The Evidence for Ancient Origins(self) 1 [Book] Genres Across the disciplines: Student writing in higher education(self) 1 [Chapter] William Ophuls, "Leviathan or Oblivion?" in Toward a Steady-state Economy edited by Herman E. Daly(self) 1 [BOOK] 99 Tips for Creating Simple and Sustainable Educational Videos(self) 6 [Book] Taylor, Christopher 2018 Empire of Neglect: The West Indies in the Wake of British Liberalism. Duke University Press.(self)NSFW 1 [Book] The emporium of the world : maritime Quanzhou1000-1400 , by Angela Schottenhammer, Leiden : Brill, 2001(self) 2 [Article] PRRT in high-grade gastroenteropancreatic neuroendocrine neoplasms (WHO G3)(self) 1 [Book] The art of strict musical composition, by Johann Philipp Kirnberger, tr. David Beach and Jurgen Thym(self) 1 [Book] (request) Primate Evolution and Human Origins By Russell L. Ciochon & Fleagle(self) 10 [Book] (T&F) Sikhs in Asia Pacific by Swarn Singh Kahlon(self) 4 [Book] (T&F) Nation-state and Minority Rights in India by Tanweer Fazal(self) 5 [Book] The Path of Genocide: The Rwanda Crisis from Uganda to Zaire - Astri Suhrke(self) 2 [Article] Intergenerational social mobility and religious ecology: Disaggregating the conservative Protestant bloc(self) 3 [Book] ASTM E2847 - 14; Standard Test Method for Calibration and Accuracy Verification of Wideband Infrared Thermometers(self) 1 [Article] Country Life issue 86, from October 1939(self) 1 [Book] Understanding the Dairy Cow by John Webster(self) 4 [Article] The Struggle over Structural Adjustment: Socialist Revolution versus Capitalist Counterrevolution in Yugoslavia and the World by Johanna Bockman(self) 4 [Book] Shadowland : from Jeffrey Epstein to the Clintons, from Obama and Biden to the occult elite, exposing the deep-state actors at war with Christianity, Donald Trump, and America's destiny(self) 1 [Book] Refugee conversations by Bertold Brecht(self) 1 [Article] (requested) Alan Crozier, Beyond the Metaphor: Cursing and Swearing in Ulster, in MALEDICTA X, at 115, 122 (1988-89)(self) 3 [Book] A Greek-English Lexicon of the New Testament and Other Early Christian Literature, 3rd Edition(self) 4 [Article] God as a White man: A psychological barrier to conceptualizing Black people and women as leadership worthy.(self) 1 [Book]The Truth about Mormonism: Illumination or Deception?(self) 3 [Book] Shorebird Ecology, Conservation, and Management(self) 10 [Chapter] De Anima et Resurrectione(self) 2 [BOOK] A Greek-English Lexicon of the New Testament and Other Early Christian Literature, 3rd Edition(self) 5 [BOOK] 'Rulers, townsmen and bazaars : North Indian society in the age of British expansion, 1770-1870' by CA Bayly(self) 1 [Book] Middleton's Allergy 2-Volume Set 9th Edition by A Wesley Burks Stephen Holgate Robyn O'Hehir Leonard Bacharier David Broide Gurjit Khurana Hershey R. Stokes Peebles, Jr.(self) 4 [BOOK] 'Islamic Psychoanalysis and Psychoanalytic Islam:Cultural and Clinical Dialogues', 2018(self) 2 [Book] Research Handbook on the Economics of Intellectual Property Law(self) 4 [Chapter] Changing Ethnolinguistic Perceptions In The South(self) 2 [Book] Ethnographic Perspectives on Academic Writing, by Brian Paltridge, Sue Starfield, and Christine M. Tardy(self) 1 [Book] N. G. L. Hammond: A history of Macedonia. Vol. I: Historical geography and prehistory. Oxford: The Clarendon Press, 1972(self) 23 [Book] (request) Evolutionary Neuropsychology: An Introduction to the Evolution of the Structures and Functions of the Human Brain by Frederick L. Coolidge(self) 5 [Book] Cultural Heritage in the European Union: A Critical Inquiry into Law and Policy(self) 7 [Book] (T&F) State Interest and the Sources of International Law by Markus P. Beham(self) 1 [book][request] The Future Belongs to the Digital Engineer: Transforming the Industry by Jim Crompton(self) 1 [book][request] Where the Action Is: The Meetings That Make or Break Your Organization by J. Elise Keith(self) 1 [book][request] Work Smarter: Live Better: Practical Ways to Change Your Work Habits and Transform Your Life by Cyril Peupion(self) 2 [book][request] Bits, Bytes, and Barrels: The Digital Transformation of Oil and Gas by Geoffrey Cann(self) 6 [Article] Tax Revenues and the Fiscal Cost of Trade Liberalization, 1792-2006(self) 4 [Book] (T&F) Writing Diaspora South Asian Women, Culture and Ethnicity by Yasmin Hussain(self) 4 [Article] [HeinOnline] Request(self) 4 [Book] - The Routledge International Handbook of Forensic Intelligence and Criminology(self) 2 4 [Book] Optional Processes Theory and Applications, by Mohamed Abdelghani, Alexander Melnikov(self) 4 [BOOK] Tehrangeles Dreaming: Intimacy and Imagination in Southern California's Iranian Pop Music - Farzaneh Hemmasi(self) 4 [Book] (T&F) Sikh Religion, Culture and Ethnicity by Arvind-Pal S. Mandair, Christopher Shackle, Gurharpal Singh(self) 7 [Book] Crip Times: Disability, Globalization and the Resistance - Robert McRuer (Project Muse)(self) 2 [Book] Molecular Population Genetics by Matthew W. Hahn(self) 1 [Book] Mastering A&P with Pearson eText(self) 1 [Book] Lifespan Development - Denise Roberts Boyd, Helen L Bee(self) 1 [Book] AutoLISP und ADS für AutoCAD Version 11 Hans-Peter Rust (IWT Verlag 1991)(self) 4 [Book] Sacrifice Regained: Morality and Self-Interest in British Moral Philosophy from Hobbes to Bentham(self) 2 [Article] IEEE Xplore article: Single IMU Displacement and Orientation Estimation of Human Center of Mass: A Magnetometer-Free Approach, Stefano Cardarelli(self) 4 [Chapter] 10 - Interaction in L2 Learning(self) 2 [Book] An Introduction to Astrobiology (3rd Edition), edited by David A. Rothery, Iain Gilmour, and Mark A. Sephton(self) 7 [Book] Optical Nonlinearities in Chalcogenide Glasses and their Applications(self) 6 [Book] Principles of Economics by Joshua Gans, Stephen King, and Robin Stonecash(self) 3 [Book] European Slave Trading in the Indian Ocean, 1500–1850 by Richard B. Allen(self) 3 [Book] How to Parent by Fitzhugh Dodson(self) 7 [Article] A contribution to the theory of anxiety and guilt. Klein, Melanie. (1948). The International Journal of Psychoanalysis, 29, 114–123.(self) 6 [Book] Interaction of Media, Cognition, and Learning - Gavriel Salomon(self) 4 [Article] Oxygen and Diverse Nutrients Influence the Water Kefir Fermentation Process / Laureys D., Aerts M., Vandamme P., De Vuyst L.(self) 5 [Article] [HeinOnline] The Artificial Reason of the Law or: What Lawyers Know, by Charles Fried(self) 1 [Book] Structure And Mechanism In Protein Science: A Guide To Enzyme Catalysis And Protein Folding (Structural Biology) by Alan Fersht Reprint Edition(self) 3 [Article] Neurostimulation Therapies for Primary Headache Disorders: Present and Future(self) 3 [Article] Transcranial Direct-Current Stimulation Reduces Nociceptive Behaviour in an Orofacial Pain Model(self) 4 [Article] Characterization of Degradation Behavior for PLGA in Various pH Condition by Simple Liquid Chromatography Method Yoo, Je Young | Kim, Jong Min | Seo, Kwang Su | Jeong, Yong Kyun | Lee, Hai Bang | Khang, Gilson(self) 1 [Thesis] Winton, Douglas Walter(self) 3 [Article] Denis Muzerelle, “Dating Manuscripts: What Is at Stake in the Steps Usually (but Infrequently) Taken,”(self) 1 Needs Digitizing [ARTICLE] Francesca Ferrari - Il fatto notorio e la rete Internet(self) 1 Needs Digitizing [ARTICLE] Francesca Ferrari - Il fatto notorio e la rete Internet(self) 4 [Book] Practising Italian Grammar(self) 3 [Book] Growth, Distribution, and Prices(self) 5 [Book] Conflict and Cooperation in the Indo-Pacific New Geopolitical Realities Edited ByAsh Rossiter, Brendon J. Cannon(self) 4 [Article] Combination of UV and MS/MS detection for the LC analysis of cannabidiol-rich products(self) 2 [Article] Economic Opinion when Britain Turned to Free Trade(self) 6 [Book] "Alienation" by Bertell Ollman (1977, 2nd ed.)(self) 2 [Chapter] An Introduction to Scientific Realist Evaluation(self) 4 [Book] (Brill) Regime Interaction in Ocean Governance edited by Seline Trevisanut et al.(self) 1 [ARTICLE] Practical issues of geostatistical reserve estimation in the mining industry - Guocheng Pan(self) 2 [ARTICLE] Erin G. Godwin - Judicial Notice and the Internet(self) 3 [Book] Kaiser Augustus und die verlorene Republik: eine Ausstellung im Martin- Gropius- Bau by M. Hofter (ed.)(self) 1 [BOOK] The Quest for Authority in Iran: A History of The Presidency from Revolution to Rouhani by Siavush Randjbar-Daemi(self) 1 [Book] Prolegomena to Ethics(self) 1 [book] The Imperative of Responsibility: In Search of an Ethics for the Technological Age by Hans Jonas(self) 1 [Article] Left‐to‐right transfer of language dominance(self) 2 [Article] Research progress of laterally coupled DFB-LD / Guangli Yue(self) 4 [Book] Political Science: Volume 3: Indian Political Thought (ICSSR Research Surveys and Explorations)(self) 1 [Article] Adjunct-Predicate Licensing and D-Structure(self) 10 [Article] No evidence of racial discrimination in criminal justice processing: Results from the National Longitudinal Study of Adolescent Health(self) 1 [ARTICLE] "H. G. Wells and Ralph Ellison: Need the Effect of One Invisible Man on Another Be Itself Invisible?"(self) 2 [Book] Industrial Ventilation: A Manual of Recommended Practice for Design 30th Edition(self) 1 [Book] Disk recording. Vol. 1-2. An anthology of articles on disk recording from the pages of the Journal of the Audio engineering society Vol. 1-Vol. 28 (1953-1980). 1(self) 1 [Book] Cityscapes of Modernity: Critical Explorations by David Frisby(self) 1 [Book] Art and the Senses | Edited by Francesca Bacci and David Melcher(self) 1 [eBook] Mastering A&P with Pearson eText(self) 1 [Book] Emotionen: Eine Einführung für beratende, therapeutische, pädagogische und soziale Berufe(self) 3 [article] Conceptualizing Behavior Disorders in Terms of Resistance to Intervention(self) 1 [ARTICLE] 'Hegel, Hinduism, and Freedom', Merold Westphal, The Owl of Minerva, Volume 20, Issue 2, Spring 1989, Pages 193-204(self) 1 [Book] Machine Learning in Chemistry(self) 1 [Book] Youth and media(self) 7 1 [Article] The Beneficial Effect of Physical Exercise on Inflammatory Makers in Older Individuals Endocr Metab Immune Disord Drug Targets. 2020 Jun 6. Pablo Gómez-Rubio, Isabel Trapero(self) 2 [Article] On the Determination of the Number, Size, Spacing, and Volume Fraction of Spherical Second-Phase Particles from Extraction Replicas(self) 5 [Book] Remington and Klein's Infectious Diseases of the Fetus and Newborn Infant 8th Edition by Christopher Wilson Victor Nizet Yvonne Maldonado Jack Remington Jerome Klein(self) 1 [Other] (Monthly Newspaper in France) Le Monde Diplomatique (English Edition) June 2020.(self) 1 [Other] (Monthly Newspaper in France) Le Monde Diplomatique (English Edition) May 2020.(self) 1 [BOOK] Crime and Markets - Vincenzo Ruggiero(self) 2 [Book] The Search for Meaning by Dennis Ford(self) 1 [Book] The Acts of Jesus: What Did Jesus Really Do?(self) 1 [Chapter] Gustav Mahler, the Wunderhorn years: chronicles and commentaries Vol. 2 -- pp. 408-410(self) 4 [Article] [Heinonline] 2 old Articles from the African Journal of International and Comparative Law(self) 4 [ARTICLE] 'Ways of Prediction, Ways of Rhetoric' Philippe-Joseph Salazar, Philosophy & Rhetoric Vol. 50, No. 4 (2017), pp. 390-408(self) 1 [Article] [Needs Digitizing] Wells, J. C. (1986). A standardized machine-readable phonetic notation. In Conference Publication No. 258. International Conference on Speech Input / Output; Techniques and Applications, 24–26 March 1986. London: Institute of Electrical Engineers, 134–137.(self) 4 [Book] (BRILL) Indian Diaspora: Voices of the Diasporic Elders in Five Countries(self) 1 [BOOK] 'Hegel, freedom, and modernity' by Merold Westphal, 1992(self) 1 [Supplement] Panza MJ, Graupensperger S, Agans JP, Doré I, Vella SA, Evans MB. Adolescent sport participation and symptoms of anxiety and depression: a systematic review and meta-analysis. Journal of sport and exercise psychology. 2020 May 21;42(3):201-18.(self) 2 [Article] Cooley at al. (2019). Complex intersections of race and class: Among social liberals, learning about White privilege reduces sympathy, increases blame, and decreases external attributions for White people struggling with poverty(self) 4 [Book] [Brill] Resolving Conflicts in the Law : Essays in Honour of Lea Brilmayer(self) 1 [Book] Master Medicine: General and Systematic Pathology 3rd Edition(self) 4 [book] Islamic Societies to the Nineteenth Century - A Global History by Ira M. Lapidus(self) 4 [Article] [Heinonline] Conflicts between the International Tribunal for the Law of the Sea and the International Court of Justice by Tullio Treves(self) 3 [Book] Encyclopedia of Autism Spectrum Disorders(self) 1 [BOOK] 'Wrestling with Archons: Gnosticism as a Critical Theory of Culture' by JONATHAN CAHANA-BLUM, 2018(self) 1 [Other] XXI Century | Bullfrog Films(self) 4 [BOOK] The Oxford Handbook of Ethics of AI(self) 4 [Book] Figures of Southeast Asian Modernity (JSTOR) by Barker, Harms, & Linduiqst(self) 7 [Book] Health Informatics: An Interprofessional Approach, 2nd Edition(self) 2 [Article] Rapport and friendship in ethnographic research(self) 4 [BOOK] 'Žižek on race: Toward an Anti-Racist Future' by Zahi Zalloua, Bloomsbury, 2020(self) 3 [BOOK] Classical Antiquity in Video Games by Christian Rollinger(self) 1 [Thesis] Sandro, Paolo - Creation and application of law: a neglected distinction. ERA - Edinburgh(self) 3 [Article] belated: interruption(self) 4 [Article] Reusable and Recyclable Graphene Masks with Outstanding Superhydrophobic and Photothermal Performances(self) 8 [Article] Randomized Algorithms in Number Theory(self) 4 [Book] The Routledge Companion to Digital Humanities and Art History(self) 5 [Article] Regulatory cell therapy in kidney transplantation (The ONE Study): a harmonised design and analysis of seven non-randomised, single-arm, phase 1/2A trials by Sawitzki et al.(self) 0 1 [Book] Asian Freedoms: The Idea of Freedom in East and Southeast Asia (Cambridge), eds. David Kelly & Anthony Reid(self) 2 [Article] Local Mitochondrial ATP Production Regulates Endothelial Fatty Acid Uptake and Transport, by A. Ibrahim N. Yucel B. Kim Z. Arany(self) 4 [Chapter] Modeling Liquid–Liquid Extraction for Critical Elements Separations: An overview, (Chukwunwike O. Iloeje, 2020).(self) 6 [Article] Electrical stimulation in white oyster mushroom (Pleurotus florida) production, by I. Roshita, K. M. P. Nurfazira, C. Shi Fern, and M. S. Nur Ain(self) 1 [Book] Screen Adaptation: Impure Cinema by Deborah Cartmell and Imelda Whelehan(self) 4 [Book] Earth’s Insights (Callicott 1997)(self) 1 [Book] Viscosity of Pure Organic Liquids and Binary Liquid Mixtures 2017(self) 2 [BOOK] Needed: A comprehensive etymological dictionary of the Hebrew language for readers of English(self) 1 [Book] Hydrothermal chemistry of zeolites(self) 5 [Chapter] 2 chapters from A History of the United States Author: Philip Jenkins 3. Expansion and Crisis, 1825–65 6. Expansion and Crisis, 1825–65(self) 4 [Chapter] 8. The Fall of Actually Existing Socialism Authors: Prof. Geoffrey Swain, Dr. Nigel Swain(self) 5 [article] Sci-Hub didn't work for this article so I hope someone could help me !(self) 4 [Book] Evil Men, James Dawes(self) 1 [Chapter] from the book The Versailles Settlement Peacemaking after the First World War, 1919-1923 by Alan Sharp chapter 2. The Paris Peace Conference chapter 3. The League of Nations(self) 2 [Book] Macroeconomics(self) 1 [Article] "Eleutherna, the Orthi Petra Necropolis: Slewn by the Iron" by Nicholas Chr. Stampolidis.(self) 3 [Book] Contemporary Linguistics(self) 4 [Article](http://www.eurekaselect.com/137993/article)(self) 1 [Article](http://www.eurekaselect.com/137993/article)(self) 3 [Book] Chemistry: An Introduction to General, Organic, and Biological Chemistry(self) 1 [BOOK] Mastering Chemistry eBook(self) 3 [Book] The Oxford Handbook of Sovereign Wealth Funds(self) 1 [Book] "Marx, Marxism and Utopia" by Darren Webb (2000)(self) 5 [Article] "Law and Society", by Joachim J. Savelsberg, Lara L. Cleveland, in Oxford Bibliographies in Sociology(self) 2 [BOOK] Encouraging Pro-Environmental Behaviour - What Works, What Doesn't, and Why (2019)(self) 1 [BOOK] ''Guide for the economic design of circular metal silos'' by J.M. Rotter(self) 3 [BooK](JSTOR) The Evolved Apprentice: How Evolution Made Humans Unique by Kim Sterelny(self) 13 [Article] Matthews, Graham 2020 Pandemic, recession...: Capitalism is a Sick System. Green Left Weekly 1257, 2020.(self) 1 [BOOK]A comprehensive etymological dictionary of the Hebrew language for readers of English(self) 1 [Article] Sound Levels in Nursing Homes by Laura L. Joosse(self) 1 [Book] China Upside Down: Currency, Society, and Ideologies, 1808–1856 by Man-houng Lin(self) 3 [Book] The SAGE Handbook of Propaganda (2019)(self) 1 [BOOK] 'Lacan and Religion', by Aron Dunlap, Routledge, 2016(self) 2 [Book] Making It in the Market: Richard Ney's Low-Risk System for Stock Market Investors(self) 1 [Book] Comprendre les langues romanes(self) 1 [book] Derecho romano clásico, Betancourt(self) 6 [Book] The Oxford Handbook of Information Structure (2016)(self) 1 [book] pls help me find Physiotherapy in mental health and psychiatry(self) 4 [Article] Denationalization by Sir John Fischer Williams(self) 1 [BOOK] Statistical Methods for the Social and Behavioural Sciences - A Model-Based Approach (David B. Flora)(self) 1 [ARTICLE] Care as a Political Concept by Joan C. Tronto(self) 1 [Chapter] Agnieszka Uberman "English and Polish figurative language employing components of the frame of death" Cognitive Linguistics in the Year 2017. Peter Lang(self) 1 [book] Petroleum Contracts and International Law by Rudolf Dolzer(self) 1 [Book] A Short History of Persian Literature At the Bahmanī, the ‘Ādilshāhī and the Qutbshāhī Courts – Deccan(self) 4 [Book] A Japanese Advertising Agency: An Anthropology of Media and Markets (Routledge) by Brian Moeran(self) 1 [Book] The Way of Synthesis: Evolution of Design and Methods for Natural Products(self) 1 [book] ما في القرآن الكريم - دراسة نحوية(self) 6 [Book] (JSTOR) First Peoples in a New World: Colonizing Ice Age America by David J. Meltzer(self)
submitted by jaylenholt to ebookleaksdownload [link] [comments]

Freestanding in Prague

Freestanding in Prague

The C++ standards committee met in Prague, Czech Republic between Feb 10 and Feb 15. The standard is wording complete, and the only thing between here and getting it published is ISO process. As is typical for me at these meetings, I spent a lot of time doing freestanding things, Library Incubator (LEWGI) things, and minuting along the way (15-ish sessions/papers!).

Freestanding

I had three freestanding papers coming into this meeting:
The first two papers are pieces of my former "P0829: Freestanding Proposal" paper, and had been seen by the Feature Test study group in Belfast. During this meeting, I got to run them by the Library Incubator for some design feedback. The papers were received well, though some potential danger points still exist. Library Evolution can look at the papers as soon as they have time.
P2013 is the first smaller piece taken out of "P1105: Leaving no room for a lower-level language: A C++ Subset". Exceptions are probably the most important thing in P1105, but there's so much activity going on in this area that it is hard for me to make good recommendations. The next highest priority was new and delete, hence P2013 being born. I also felt that P2013 was a good test paper to see if the committee was willing to make any language based change for freestanding.
I had presented P2013 in a prior Low Latency / SG14 telecon, and received unanimous approval (no neutral, no against votes). I was able to present it in the Evolution Incubator, and received no against votes. Then, in a surprisingly quick turnaround, I was able to present to Evolution, and again received no against votes. So now I just need to come up with wording that accomplishes my goals, without breaking constant evaluated new.

Errors and ABI

On Monday, we held a join session between Evolution and Library Evolution to talk about one of the C++ boogeymen, ABI. P1836 and P2028 have good background reading if you are not familiar with the topic. The usual arguments were raised, including that we are losing out on performance by preserving ABI, and that breaking ABI would mean abandoning some software that cannot be rebuilt today. We took some polls, and I fear that each person will interpret the polls differently. The way I interpreted the polls is that we won't do a "big" ABI break anytime soon, but we will be more willing to consider compiler heroics in order to do ABI breaks in the library.
One ABI area that is frequently overlooked is the situation that I am in. I can rebuild all of my source code, but even despite that I still care about ABI because I don't ship all of it together. I build a library with a plugin architecture, and breaking ABI would mean updating all the plugins on customer systems simultaneously... which is no easy task. I also ship binaries on Linux systems. We would prefer to be able to use new C++ features, despite targeting the various "LTS" distributions. ABI stability is a big part of that. I am hoping to make another post to cpp with my thoughts in the next few months, tentatively titled "ABI Breaks: Not just about rebuilding".
On Tuesday, LEWG discussed "P1656: 'Throws: Nothing' should be noexcept". This is a substantial change to the policy laid out in N3279, authored by Alisdair Meredith. That's why it is informally called the "Lakos" rule. We discussed the trade-offs involved, including how adding noexcept can constrain future changes, how noexcept can make precondition tests more difficult, and how this will change little in practice, because implementers already mark most "Throws: Nothing" calls as noexcept. Arguments about performance, code bloat, and standards guaranteed portability won out though. This paper was "only" a policy change, so a follow-on paper will need to be authored by someone in order to actually do the noexcept marking.
Wednesday night we had a social event celebrating the impending C++20 release. The event was held in the Prague Crossroads, built in 927 A.D.. The large tables let us have conversations with people we may not have really bumped into during the rest of the meeting. I started talking exceptions with a few of the other people at the table, and one of the had some particularly in depth knowledge about the topic. As it turns out, I was sitting at the same table as James Renwick of Low-cost Deterministic C++ Exceptions for Embedded Systems fame. I ended up talking his ear off over the course of the night.
Thursday in LEWG, we talked about Niall Douglas's "P1028: SG14 status_code and standard error object". This is the class that may one day be thrown by P0709 "Static" exceptions. Coincidentally, the most contentious parts were issues involving ABI. In several of the virtual interfaces in the standard, we've wanted to add things later, but haven't been able to do so.
Friday, James Renwick was able to present his paper, and the room was very receptive of it. One of my concerns going in to the presentation was that the committee would be unwilling to change anything in the standard related to today's exceptions. After the presentation and discussion, I'm less concerned about that. There was definitely a willingness to make some changes... but one of the big challenges is a question of whether we change default behavior in some cases, or change language ABI, even for C.

Other papers

P1385: "High level" Linear Algebra

This one is the "high level" linear algebra paper. There's a different, "lower level" linear algebra paper (P1673) that covers BLAS use cases. P1385 is intended to be something that can sit on top of P1673, if I understand correctly.
For being a math paper, there was surprisingly little math discussion in Library Incubator. We were generally discussing general interface issues like object ownership, concept requirements, and how to spell various operations, particularly inner product and outer product.

P1935: Physical Units

We are still in the philosophy and goals stage of this paper. We got to discuss the finer points of the distinctions between "kilogram" and "1 kilogram"; the difference between a unit, a dimension, and a quantity; and the difference between systems and models.
This paper is challenging in that there is significant prior art, as well as strong opinions about "the right way" to do things. This gets to one of the trickier parts of standards meetings... driving consensus. The interested parties have been requested to (preferably) work together outside of the three meetings a year, or failing that, to write a paper that gives some outline of what a solution should look like.
This paper also has an absurdly awesome / terrifying metaprogramming trick in it. A base class uses a friend declaration to declare (but not define) a function with an auto return type and no trailing return value. The derived class then declares and defines the function (again via friend) and lets the definition of the function determine the auto return type. This lets the base class use decltype to pull type information out of the derived class without explicitly passing that information down in a template argument (sorcery!). The main caveat with this trick is that it only works with exactly one derived class, as otherwise you end up with multiple conflicting definitions of the same function.

Concurrent Queues, P0260 and P1958

It's amazing what a minor paper reorg will do for productivity. This pair of papers used to be a single paper in the San Diego time frame, and we had a difficult time understanding how the pieces worked together. With the paper split as it is now, we have a small, concrete piece to review, which we were then able to see how it fit in to the interfaces and concepts of the larger paper. We got to dig in to some corner case traps with exception safety, move semantics, and race conditions. There were implementers in the room that could say what their implementation did, and I feel that the room was able to give good feedback to the authors.

P1944: constexpr and

Antony Polukhin is secretly my accidental nemesis (well, not so secret anymore). Over the course of C++20, he sprinkled constexpr on many of the things. As it turns out, there is a large (but not 100%) overlap of constexpr and freestanding. Each thing that went constexpr turned into a merge conflict that I got to resolve in my papers.
And he's still at it!
In this case, 100% of the things that were constexpr'd were also things that I have previously identified as being potentially freestanding. So that's a positive. There were concerns about implementability though, as sometimes, the C library and the C++ library come from different vendors, and having forwarding wrappers is far from trivial.

A minute about minuting

For the wg21 readers out there, if you think you are bad at taking minutes, that just means you need more practice :) . If you find yourself in a room that is about to review a paper that you are not heavily invested in, volunteer to take minutes. That way you can make a valuable contribution, even for an area where you don't have domain expertise.
As a bonus, you get to follow the minuter's code (something I just made up) about spelling other people's names. As the person taking minutes, you have license to change up to three letters in someone's name, so long as it isn't used maliciously. You can freely take any double letter in a name and convert it to a single letter (e.g. Connor -> Conor), turn a single letter to a double letter (David -> Davvid), or completely rearrange any consecutive series of vowels. And people will thank you for it! You are also given free license to interrupt people in order to ask them who they are. Give it a try!

Closing

I've got a bunch of papers to write for the next mailing, and I won't even be in Varna. So if you're interested in championing some freestanding papers, let me know, and I can coach you on the topics.
submitted by ben_craig to cpp [link] [comments]

Using Deep Learning to Predict Earnings Outcomes

Using Deep Learning to Predict Earnings Outcomes
(Note: if you were following my earlier posts, I wrote a note at the end of this post explaining why I deleted old posts and what changed)
TLDR:
Not financial advice.
  • I created a deep learning algorithm trained on 2015-2019 data to predict whether a company will beat earning estimates.
  • Algorithm has an accuracy of 58%.
  • I need data and suggestions.
  • I’ll be making daily posts for upcoming earnings.
Greetings everyone,
I’m Bunga, an engineering PhD student at well known university. Like many of you, I developed an interest in trading because of the coronavirus. I lost a lot of money by being greedy and uninformed about how to actually trade options. With all the free time I have with my research slowing down because of the virus, I’ve decided to use what I’m good at (being a nerd, data analytics, and machine learning) to help me make trades.
One thing that stuck out to me was how people make bets on earnings reports. As a practitioner of machine learning, we LOVE binary events since the problem can be reduced to a simple binary classification problem. With that being said, I sought out to develop a machine learning algorithm to predict whether a company will beat earnings estimates.
I strongly suggest TO NOT USE THIS AS FINANCIAL ADVICE. Please, I could just be a random guy on the internet making things up, and I could have bugs in my code. Just follow along for some fun and don’t make any trades based off of this information 😊
Things other people have tried:
A few other projects have tried to do this to some extent [1,2,3], but some are not directly predicting the outcome of the earnings report or have a very small sample size of a few companies.
The data
This has been the most challenging part of the project. I’m using data for 4,000 common stocks.
Open, high, low, close, volume stock data is often free and easy to come by. I use stock data during the quarter (Jan 1 – Mar 31 stock data for Q1 for example) in a time series classifier. I also incorporate “background” data from several ETFs to give the algorithm a feel for how the market is doing overall (hopefully this accounts for bull/bear markets when making predictions).
I use sentiment analyses extracted from 10K/10Q documents from the previous quarter as described in [4]. This gets passed to a multilayer perceptron neural network.
Data that I’ve tried and doesn’t work to well:
Scraping 10K/10Q manually for US GAAP fields like Assets, Cash, StockholdersEquity, etc. Either I’m not very good at processing the data or most of the tables are incomplete, this doesn’t work well. However, I recently came across this amazing API [5] which will ameliorate most of these problems, and I plan on incorporating this data sometime this week.
Results
After training on about 34,000 data points, the model achieves a 58% accuracy on the test data. Class 1 is beat earnings, Class 2 is miss earnings.. Scroll to the bottom for the predictions for today’s AMC estimates.

https://preview.redd.it/qmeig6of3tv41.png?width=875&format=png&auto=webp&s=c8ba4a34294b7388bf1b9e64150d7375da959ac2
Future Directions
Things I’m going to try:
  • Financial twitter sentiment data (need data for this)
  • Data on options (ToS apparently has stuff that you can use)
  • Using data closer to the earnings report itself rather than just the data within the quarterly date
A note to the dozen people who were following me before
Thank you so much for the early feedback and following. I had a bug in my code which was replicating datapoints, causing my accuracy to be way higher in reality. I’ve modified some things to make the network only output a single value, and I’ve done a lot of bug fixing.
Predictions for 4/29/20 AMC:
A value closer to 1 means that the company will be more likely to beat earnings estimates. Closer to 0 means the company will be more likely to miss earnings estimates. (People familiar with machine learning will note that neural networks don’t actually output a probability distribution so the values don’t actually represent a confidence).
  • Tkr: AAPL NN: 0.504
  • Tkr: AMZN NN: 0.544
  • Tkr: UAL NN: 0.438
  • Tkr: GILD NN: 0.532
  • Tkr: TNDM NN: 0.488
  • Tkr: X NN: 0.511
  • Tkr: AMGN NN: 0.642
  • Tkr: WDC NN: 0.540
  • Tkr: WHR NN: 0.574
  • Tkr: SYK NN: 0.557
  • Tkr: ZEN NN: 0.580
  • Tkr: MGM NN: 0.452
  • Tkr: ILMN NN: 0.575
  • Tkr: MOH NN: 0.500
  • Tkr: FND NN: 0.542
  • Tkr: TWOU NN: 0.604
  • Tkr: OSIS NN: 0.487
  • Tkr: CXO NN: 0.470
  • Tkr: BLDR NN: 0.465
  • Tkr: CASA NN: 0.568
  • Tkr: COLM NN: 0.537
  • Tkr: COG NN: 0.547
  • Tkr: SGEN NN: 0.486
  • Tkr: FMBI NN: 0.496
  • Tkr: PSA NN: 0.547
  • Tkr: BZH NN: 0.482
  • Tkr: LOCO NN: 0.575
  • Tkr: DLA NN: 0.460
  • Tkr: SSNC NN: 0.524
  • Tkr: SWN NN: 0.476
  • Tkr: RMD NN: 0.499
  • Tkr: VKTX NN: 0.437
  • Tkr: EXPO NN: 0.526
  • Tkr: BL NN: 0.516
  • Tkr: FTV NN: 0.498
  • Tkr: ASGN NN: 0.593
  • Tkr: KNSL NN: 0.538
  • Tkr: RSG NN: 0.594
  • Tkr: EBS NN: 0.483
  • Tkr: PRAH NN: 0.598
  • Tkr: RRC NN: 0.472
  • Tkr: ICBK NN: 0.514
  • Tkr: LPLA NN: 0.597
  • Tkr: WK NN: 0.630
  • Tkr: ATUS NN: 0.530
  • Tkr: FBHS NN: 0.587
  • Tkr: SWI NN: 0.521
  • Tkr: TRUP NN: 0.570
  • Tkr: AJG NN: 0.509
  • Tkr: BAND NN: 0.618
  • Tkr: DCO NN: 0.514
  • Tkr: BRKS NN: 0.490
  • Tkr: BY NN: 0.502
  • Tkr: CUZ NN: 0.477
  • Tkr: EMN NN: 0.532
  • Tkr: VICI NN: 0.310
  • Tkr: GLPI NN: 0.371
  • Tkr: MTZ NN: 0.514
  • Tkr: SEM NN: 0.405
  • Tkr: SPSC NN: 0.465
[1] https://towardsdatascience.com/forecasting-earning-surprises-with-machine-learning-68b2f2318936
[2] https://zicklin.baruch.cuny.edu/wp-content/uploads/sites/10/2019/12/Improving-Earnings-Predictions-with-Machine-Learning-Hunt-Myers-Myers.pdf
[3] https://www.euclidean.com/better-than-human-forecasts
[4] https://cran.r-project.org/web/packages/edgaedgar.pdf.
[5] https://financialmodelingprep.com/developedocs/
submitted by xXx_Bunga_xXx to u/xXx_Bunga_xXx [link] [comments]

Fairlearn - A Python package to assess AI system's fairness

In 2015, Claire Cain Miller wrote on The New York Times that there was a widespread belief that software and algorithms that rely on data were objective. Five years later, we know for sure that AI is not free of human influence. Data is created, stored, and processed by people, machine learning algorithms are written and maintained by people, and AI applications simply reflect people’s attitudes and behavior.
Data scientists know that no longer accuracy is the only concern when developing machine learning models, fairness must be considered as well. In order to make sure that machine learning solutions are fair and the value of their predictions easy to understand and explain, it is essential to build tools that developers and data scientists can use to assess their AI system’s fairness and mitigate any observed unfairness issues.
This article will focus on AI fairness, by explaining the following aspects and tools:
  1. Fairlearn: a tool to assess AI system’s fairness and mitigate any observed unfairness issues
  2. How to use Fairlearn in Azure Machine Learning
  3. What we mean by fairness
  4. Fairlearn algorithms
  5. Fairlearn dashboard
  6. Comparing multiple models
  7. Additional resources and how to contribute

1. Fairlearn: a tool to assess AI system’s fairness and mitigate any observed unfairness issues

Fairlearn is a Python package that empowers developers of artificial intelligence (AI) systems to assess their system’s fairness and mitigate any observed unfairness issues. Fairlearn contains mitigation algorithms as well as a Jupyter widget for model assessment. The Fairlearn package has two components:
There is also a collection of Jupyter notebooks and an a detailed API guide, that you can check to learn how to leverage Fairlearn for your own data science scenario.

2. How to use Fairlearn in Azure Machine Learning

The Fairlearn package can be installed via:
pip install fairlearn
or optionally with a full feature set by adding extras, e.g. pip install fairlearn[customplots], or you can clone the repository locally via:
git clone [email protected]:fairlearn/fairlearn.git
In Azure Machine Learning, there are a few options to use Jupyter notebooks for your experiments:

a) Get Fairlearn samples on your notebook server

If you’d like to bring your own notebook server for local development, follow these steps:
  1. Use the instructions at Azure Machine Learning SDK to install the Azure Machine Learning SDK for Python
  2. Create an Azure Machine Learning workspace.
  3. Write a configuration file
  4. Clone the GitHub repository.
git clone [email protected]:fairlearn/fairlearn.git
  1. Start the notebook server from your cloned directory.
jupyter notebook
For more information, see Install the Azure Machine Learning SDK for Python.
b) Get Fairlearn samples on DSVM
The Data Science Virtual Machine (DSVM) is a customized VM image built specifically for doing data science. If you create a DSVM, the SDK and notebook server are installed and configured for you. However, you’ll still need to create a workspace and clone the sample repository.
  1. Create an Azure Machine Learning workspace.
  2. Clone the GitHub repository.
git clone [email protected]:fairlearn/fairlearn.git
  1. Add a workspace configuration file to the cloned directory using either of these methods:
  1. Start the notebook server from your cloned directory:
jupyter notebook

3. What we mean by fairness

Fighting against unfairness and discrimination has a long history in philosophy and psychology, and recently in machine learning. However, in order to be able to achieve fairness, we should first define the notion of it. An AI system can behave unfairly for a variety of reasons and many different fairness explanations have been used in literature, making this definition even more challenging. In general, fairness definitions fall under three different categories as follows:
In Fairlearn, we define whether an AI system is behaving unfairly in terms of its impact on people – i.e., in terms of harms. We focus on two kinds of harms:
We follow the approach known as group fairness, which asks: Which groups of individuals are at risk of experiencing harm? The relevant groups need to be specified by the data scientist and are application-specific. Group fairness is formalized by a set of constraints, which require that some aspect (or aspects) of the AI system’s behavior be comparable across the groups. The Fairlearn package enables the assessment and mitigation of unfairness under several common definitions.

4. Fairlearn algorithms

Fairlearn contains the following algorithms for mitigating unfairness in binary classification and regression:
https://preview.redd.it/5fzg767oh5051.png?width=898&format=png&auto=webp&s=731eab09b421c2dd3233ea9e184df136bf066739

5. Fairlearn dashboard

Fairlearn dashboard is a Jupyter notebook widget for assessing how a model’s predictions impact different groups (e.g., different ethnicities), and also for comparing multiple models along different fairness and accuracy metrics.
To assess a single model’s fairness and accuracy, the dashboard widget can be launched within a Jupyter notebook as follows:
from fairlearn.widget import FairlearnDashboard
# A_test containts your sensitive features (e.g., age, binary gender)
# sensitive_feature_names containts your sensitive feature names
# y_true contains ground truth labels
# y_pred contains prediction labels
FairlearnDashboard(sensitive_features=A_test,
sensitive_feature_names=['BinaryGender', 'Age'],
y_true=Y_test.tolist(),
y_pred=[y_pred.tolist()])
After the launch, the widget walks the user through the assessment set-up, where the user is asked to select:
  1. the sensitive feature of interest (e.g., binary gender or age)
  2. the accuracy metric (e.g., model precision) along which to evaluate the overall model performance as well as any disparities across groups.
These selections are then used to obtain the visualization of the model’s impact on the subgroups (e.g., model precision for females and model precision for males). The following figures illustrate the set-up steps, where binary gender is selected as a sensitive feature and the accuracy rate is selected as the accuracy metric:
After the set-up, the dashboard presents the model assessment in two panels, as summarized in the table, and visualized in the screenshot below:
https://preview.redd.it/juxlrmrkh5051.png?width=900&format=png&auto=webp&s=d92da30619369f5ab5109834ff7ff4ec3ad7f33d

6. Comparing multiple models

An additional feature that this dashboard offers is the comparison of multiple models, such as the models produced by different learning algorithms and different mitigation approaches, including:
As before, the user is first asked to select the sensitive feature and the accuracy metric. The model comparison view then depicts the accuracy and disparity of all the provided models in a scatter plot. This allows the user to examine trade-offs between algorithm accuracy and fairness. Moreover, each of the dots can be clicked to open the assessment of the corresponding model.
The figure below shows the model comparison view with binary gender selected as a sensitive feature and accuracy rate selected as the accuracy metric.

7. Additional resources and how to contribute

For references and additional resources, please refer to:
To contribute please check this contributing guide.
submitted by frlazzeri to deeplearning [link] [comments]

Fairlearn - A Python package to assess AI system's fairness

Fairlearn - A Python package to assess AI system's fairness
In 2015, Claire Cain Miller wrote on The New York Times that there was a widespread belief that software and algorithms that rely on data were objective. Five years later, we know for sure that AI is not free of human influence. Data is created, stored, and processed by people, machine learning algorithms are written and maintained by people, and AI applications simply reflect people’s attitudes and behavior.
Data scientists know that no longer accuracy is the only concern when developing machine learning models, fairness must be considered as well. In order to make sure that machine learning solutions are fair and the value of their predictions easy to understand and explain, it is essential to build tools that developers and data scientists can use to assess their AI system’s fairness and mitigate any observed unfairness issues.
This article will focus on AI fairness, by explaining the following aspects and tools:
  1. Fairlearn: a tool to assess AI system’s fairness and mitigate any observed unfairness issues
  2. How to use Fairlearn in Azure Machine Learning
  3. What we mean by fairness
  4. Fairlearn algorithms
  5. Fairlearn dashboard
  6. Comparing multiple models
  7. Additional resources and how to contribute

1. Fairlearn: a tool to assess AI system’s fairness and mitigate any observed unfairness issues

Fairlearn is a Python package that empowers developers of artificial intelligence (AI) systems to assess their system’s fairness and mitigate any observed unfairness issues. Fairlearn contains mitigation algorithms as well as a Jupyter widget for model assessment. The Fairlearn package has two components:
  • A dashboard for assessing which groups are negatively impacted by a model, and for comparing multiple models in terms of various fairness and accuracy metrics.
  • Algorithms for mitigating unfairness in a variety of AI tasks and along a variety of fairness definitions.
There is also a collection of Jupyter notebooks and an a detailed API guide, that you can check to learn how to leverage Fairlearn for your own data science scenario.

2. How to use Fairlearn in Azure Machine Learning

The Fairlearn package can be installed via:
pip install fairlearn
or optionally with a full feature set by adding extras, e.g. pip install fairlearn[customplots], or you can clone the repository locally via:
git clone [email protected]:fairlearn/fairlearn.git
In Azure Machine Learning, there are a few options to use Jupyter notebooks for your experiments:

a) Get Fairlearn samples on your notebook server

If you’d like to bring your own notebook server for local development, follow these steps:
  1. Use the instructions at Azure Machine Learning SDK to install the Azure Machine Learning SDK for Python
  2. Create an Azure Machine Learning workspace.
  3. Write a configuration file
  4. Clone the GitHub repository.
git clone [email protected]:fairlearn/fairlearn.git
  1. Start the notebook server from your cloned directory.
jupyter notebook
For more information, see Install the Azure Machine Learning SDK for Python.
b) Get Fairlearn samples on DSVM
The Data Science Virtual Machine (DSVM) is a customized VM image built specifically for doing data science. If you create a DSVM, the SDK and notebook server are installed and configured for you. However, you’ll still need to create a workspace and clone the sample repository.
  1. Create an Azure Machine Learning workspace.
  2. Clone the GitHub repository.
git clone [email protected]:fairlearn/fairlearn.git
  1. Add a workspace configuration file to the cloned directory using either of these methods:
  • In the Azure portal, select Download config.json from the Overview section of your workspace.
  • Create a new workspace using code in the configuration.ipynb notebook in your cloned directory
  1. Start the notebook server from your cloned directory:
jupyter notebook

3. What we mean by fairness

Fighting against unfairness and discrimination has a long history in philosophy and psychology, and recently in machine learning. However, in order to be able to achieve fairness, we should first define the notion of it. An AI system can behave unfairly for a variety of reasons and many different fairness explanations have been used in literature, making this definition even more challenging. In general, fairness definitions fall under three different categories as follows:
  • Individual Fairness – Give similar predictions to similar individuals.
  • Group Fairness – Treat different groups equally.
  • Subgroup Fairness – Subgroup fairness intends to obtain the best properties of the group and individual notions of fairness.
In Fairlearn, we define whether an AI system is behaving unfairly in terms of its impact on people – i.e., in terms of harms. We focus on two kinds of harms:
  • Allocation harms. These harms can occur when AI systems extend or withhold opportunities, resources, or information. Some of the key applications are in hiring, school admissions, and lending.
  • Quality-of-service harms. Quality of service refers to whether a system works as well for one person as it does for another, even if no opportunities, resources, or information are extended or withheld.
We follow the approach known as group fairness, which asks: Which groups of individuals are at risk of experiencing harm? The relevant groups need to be specified by the data scientist and are application-specific. Group fairness is formalized by a set of constraints, which require that some aspect (or aspects) of the AI system’s behavior be comparable across the groups. The Fairlearn package enables the assessment and mitigation of unfairness under several common definitions.

4. Fairlearn algorithms

Fairlearn contains the following algorithms for mitigating unfairness in binary classification and regression:
https://preview.redd.it/2inmvd6g75051.png?width=899&format=png&auto=webp&s=3386410974a9e3640ef8ef8a409a2f19f989330a

5. Fairlearn dashboard

Fairlearn dashboard is a Jupyter notebook widget for assessing how a model’s predictions impact different groups (e.g., different ethnicities), and also for comparing multiple models along different fairness and accuracy metrics.
To assess a single model’s fairness and accuracy, the dashboard widget can be launched within a Jupyter notebook as follows:
from fairlearn.widget import FairlearnDashboard
# A_test containts your sensitive features (e.g., age, binary gender)
# sensitive_feature_names containts your sensitive feature names
# y_true contains ground truth labels
# y_pred contains prediction labels
FairlearnDashboard(sensitive_features=A_test,
sensitive_feature_names=['BinaryGender', 'Age'],
y_true=Y_test.tolist(),
y_pred=[y_pred.tolist()])
After the launch, the widget walks the user through the assessment set-up, where the user is asked to select:
  1. the sensitive feature of interest (e.g., binary gender or age)
  2. the accuracy metric (e.g., model precision) along which to evaluate the overall model performance as well as any disparities across groups.
These selections are then used to obtain the visualization of the model’s impact on the subgroups (e.g., model precision for females and model precision for males). The following figures illustrate the set-up steps, where binary gender is selected as a sensitive feature and the accuracy rate is selected as the accuracy metric:
After the set-up, the dashboard presents the model assessment in two panels, as summarized in the table, and visualized in the screenshot below:

https://preview.redd.it/enskhh7i75051.png?width=900&format=png&auto=webp&s=db98cb058029655757df1946e42bca4831170451

6. Comparing multiple models

An additional feature that this dashboard offers is the comparison of multiple models, such as the models produced by different learning algorithms and different mitigation approaches, including:
  • fairlearn.reductions.GridSearch
  • fairlearn.reductions.ExponentiatedGradient
  • fairlearn.postprocessing.ThresholdOptimizer
As before, the user is first asked to select the sensitive feature and the accuracy metric. The model comparison view then depicts the accuracy and disparity of all the provided models in a scatter plot. This allows the user to examine trade-offs between algorithm accuracy and fairness. Moreover, each of the dots can be clicked to open the assessment of the corresponding model.
The figure below shows the model comparison view with binary gender selected as a sensitive feature and accuracy rate selected as the accuracy metric.

7. Additional resources and how to contribute

For references and additional resources, please refer to:
To contribute please check this contributing guide.
submitted by frlazzeri to learnmachinelearning [link] [comments]

This is how to trade Binary Options Full Time! - YouTube Binary Options - How to Trade Binary Options Trading ... How to trade Binary Options for beginners - Binary Options ... 2 Minutes Strategy Binary Options 2020 (IQ Options) - YouTube THE TRUTH ABOUT BINARY OPTIONS - YouTube FREE VIDEO Tutorial on Binary Options Trading - YouTube Binary Options in the U.S in 2020! - YouTube

Trading binary options is designed to be easy to do. Your risk is limited to the amount you place on the trade. Your payoff is clearly stated before making the trade. If you win a binary options trade you win a fixed amount of cash. Since there are only two possibilities, that’s the origin of the name “binary options.” With binary options trading, you can take advantage of the fact that returns are always fixed.You’ll always get the same return on investment, or ROI, regardless of the amount of your investment. There’s also no spread, so identical prices are given for put options and call options. You can access the platform from abso- lutely anywhere. You just need a computer and an Internet connection ... FREE PDF for Forex and Binary Options Trading Click here to download a free PDF to learn more about using the Color Ribbon Surfing System to trade Binary Options. The Color Ribbon Surfing System makes it possible to enter and exit trades at the exact same key levels major financial institutions do by using COLOR CODED TREND INDICATORS & VOLATILITY. This is a brand new suite of color coded mt4 ... Download our free binary options trading PDF guide now: Download my free PDF. Binary options PDF: learn how to trade. In this guide, we cover everything you know to start trading binary options. In one handy PDF, get most of the info available on this website + exclusive content and external resources to help you get started. All you have to do to get this free binary options trading guide is ... As with anything “free,” terms and conditions do apply, so make sure you read the fine print before depositing any of your hard-earned money into a brokerage account for binary options trading. Bigger isn’t always better, so this brief overview will show you what to look out for before you accept a binary options bonus. Get 100% Free Trading Signals Forex, Binary Options, Stock & Commodities - Best interactive Brokers, news, webinars and day trading strategies. Binary WebTrader - An advanced binary options trading interface to monitor the movements of your favorite markets at the same time. Binary Bot - Automate your own trading strategies with a simple "drag and drop" bot creation tool. Binary.com has attractive return rates that can exceed 100% on simple rise/fall contracts and above 1000% on high/low and touch/no-touch trades. You have the option ... In this regard, apart from the free material offered by most of the binary options brokers, a trader should spare some time to read at least a handful of noted binary options trading related publications written by renowned authors. The following is a partial list of books suggested for both beginners and professionals to gain a head start in this profession. Exotic Options Trading by Frans de ... binary options strategy pdf, binary options trading pdf, binary options trading strategies, binary options trading strategy pdf, Bollinger bandit and lines of support-resistance, Determine the type of entry point, How to decide entry points in Forex trading?, How to Profit with Forex Trading?, indicator to identify the condition, learn Forex to hit the brakes, parabolic SAR indicators ... A Binary Options PDF Course to Download does not allow the student to talk to the teacher and place any doubts. It is just a file that you download, read, and save. If it is a complete Binary Options PDF Download Course it will have hundreds of pages, and much of the material will be a bit boring to read. Watching it on video or live is much ...

[index] [6230] [13546] [23637] [19012] [16746] [23500] [8641] [381] [21030] [6328]

This is how to trade Binary Options Full Time! - YouTube

Here you can see the list of our Binary Options/Forex Trading collection: http://binaryoptionsforexfx.com/binary To get access to all of these products for F... 💰💲FULL BEGINNER? Join My PERSONAL TRAINING!💴💵 BLW Trading Academy: http://www.blwtradingacademy.com/ Live Trading Signals HERE!🔙💲💹Join My ... Are binary options a good idea? If you're thinking about trading binary options, watch this video first. Check out our FREE training for traders https://bi... This is how I have traded Binary for the past 3 years. Thank you for watching my videos, hit the subscribe button for more content. Check out our members res... IQ Options -https://affiliate.iqoption.com/redir/...Please subscribe and leave a like for more videos.Online trading is a very risky investment/profession. It i... Chapter 1 - Introduction to binary options trading: brokers, how it works, example of trade Chapter 2 - Bid/offer levels from the brokers: what it means in t... http://tracking.bbinary.com/aff_c?offer_id=262&aff_id=1932 Click HERE To Start In Less Than 15 minutes Earning Money Today! GETTING STARTED IS VERY EASY! Reg...

http://binary-optiontrade.manftipmini.cf