3 ms·
They're using shell variable replacement syntax to refer to their previous job, without naming their previous employer.
by KMag 5y ago
They're using shell variable replacement syntax to refer to their previous job, without naming their previous employer.
- thrdbndndn 5y agoI feel so dumb now.. for some reason I didn't realize it's prev(ious) job.
- KMag 5y agoTo be fair, financial symbology is its own hellish rabbit hole. $prevjob is probably a symbol in someone's pet obscure symbology schema for some stock I've never heard of traded in a country I don't even know exists. Most NASDAQ tickers are 4 upper case letters. Most NYSE tickers are 3 upper case letters. I've never seen a 7 letter lower-case ticker. Tickers aren't unique across exchanges, so you need a pair of <ticker, exchange> to avoid ambiguity, but then you have to deal with shares being fungible across primary and secondary exchanges. CUSIPs aren't memorable and only apply to North American securities. ISINs are even less memorable. CUSIPs and ISINs include Luhn check-digits, which help catch typos. RICs are pretty good, except that they're copyrighted by Reuters, so if you build your systems around them, you may be obligating yourself to buy their market data services. Conversions between different types of symbols are sometimes many-to-one. (For instance composite RICs like AAPL.OQ and their primary exchange RICs like AAPL.O would have the same CUSIP and ISIN.) In most contexts, you can get away with treating tickers case-insensitively, except (last I checked) 1 pair of case-colliding tickers on the Toronto exchange and 3 colliding pairs of tickers on the Bangkok exchange. If you're dealing with financial symbols, implement them as an interface with methods to perform conversions, fungibility checks, etc. Don't pass around financial symbols as strings if you can help it. At my previous job, we had our own internal hierarchical symbology that covered rates, credit, currencies, commodities, equities, and more. Unfortunately, some systems pass these around as underscore-delimited case-insensitive strings. Externally, some symbology conventions distinguish day count conventions case-sensitively with an m or M suffix, which then had to be translated to ^M and M, respectively (and confusingly, since ^ looks a bit like an up arrow but marks the lower-case version). They've luckily replaced most usages of the hierarchical symbols with objects that pretty-print to the older textual representation and have constructors that take the older textual representation. (For more than a decade, I maintained/improved the functional reactive time series subset of a domain-specific financial programming language and integrated globally replicated distributed NoSQL DB for a large global financial firm. By default strings are treated case-insensitively. The case insensitivity helped lazy typists when the system was first used in New York and London, but is now illiquid technical debt. The ability to put spaces in variable names feels odd at first, but you quickly get used to it. The pain of case insensitivity by default never goes away, especially when someone from New York or London modifies symbology code. On the other hand, the lazily evaluated dataflow subset of the language with close database integration is really elegant, and it deals with collections much more elegantly and uniformly than Java/C++/Python/JavaScript.)
- tiddles 5y agoVery interesting, thanks for sharing. I didn't know I wanted to understand how ticker names are implemented until now!
- arc-in-space 5y agoI fell into this rabbit hole when trying to just write some hobby stock tracking stuff, it sucks. ISINs seemed decent but I couldn't find an open source of data about them. Lots of legacy fragmentation in this space and everyone is trying to take your money if you so much as look at them
- KyeRussell 5y agoYou know what they say…the real gold is in the comments. This comment is why I love this website.
- caffeine 5y agoThere should be a special badge you get to wear forever once you have been In Charge of Symbology at some point in your life.. In a previous job, after a few years I settled on (Type, Expiration, ISIN, Listing CCY, Listing MIC, Trading CCY, Trading MIC, Fudge) as The Tuple that could handle almost everything…. Once in a while I would still get a messed up case of non-uniqueness, that’s what the “Fudge” is for :)
- oars 5y agoPeople like you make Hacker News an amazing place.
- ksec 5y agoDont be. I just explain this a few days ago on HN why I cant handle Perl and PHP. My brain just cant register the $ symbol without going into Finance or Stock mode.