# Programming

**URL:** <https://unstuckpolitics.com/t/programming/192>\
**Category:** Sundry Chitchat\
**Created:** [August 12, 2019, 2:24am UTC](https://unstuckpolitics.com/t/programming/192 "2019-08-12T02:24:36Z")\
**Posts on this page:** 20\
**Page:** 87

<div class="post-metadata">

**Author:** ![Melkerson](https://unstuckpolitics.com/letter_avatar_proxy/v4/letter/m/f19dbf/32.png) [@Melkerson](https://unstuckpolitics.com/u/Melkerson)\
**Post date:** [December 21, 2021, 5:59am UTC](https://unstuckpolitics.com/t/programming/192/2223 "2021-12-21T05:59:03Z")

</div>

> [@goofyballer](#):
>
> > [@blackize](#):
> >
> > A refresher is an additional stock grant
> 
> > [@Melkerson](#):
> >
> > This one I have definitely never heard of.
> 
> To add a little more context, it’s a yearly stock grant you get, so that after several years of working at the company you’re still getting compensated in stock.
> 
> Like, when you join a company you get a 4-year stock grant of X, and then each of the next 4 years you get more 4-year stock grants typically around X/4, so that after your initial stock grant is fully vested in 4 years your refresher grants basically replace it. (like if your initial grant is $400k or $100k/yr, then the next 4 years you get refreshers of $100k or $25k/yr, then when that initial grant expires you still have grants amounting to $100k/yr of stock income)

Thanks.

This whole thing brings to mind a question I have always thought about.

Let’s say your employer offers you the option of either

$X worth of cash  
$Y worth of stock

How low does the ratio of X to Y (i.e. X/Y) have to go before an employee will prefer to take the compensation in stock.

---

<div class="post-metadata">

**Author:** ![Krayz](https://unstuckpolitics.com/user_avatar/unstuckpolitics.com/krayz/32/151605_2.png) [@Krayz](https://unstuckpolitics.com/u/Krayz)\
**Post date:** [December 21, 2021, 6:05am UTC](https://unstuckpolitics.com/t/programming/192/2225 "2021-12-21T06:05:15Z")

</div>

Yeah at my company they have some sort of magic formula that says what the stock is worth intrinsically or some bullshit. Usually it tracks about the stock’s current price, but right now it’s brutally low. The worst we had was when we were posting a $180 target and the stock was at $30

---

<div class="post-metadata">

**Author:** ![geewhysee](https://unstuckpolitics.com/user_avatar/unstuckpolitics.com/geewhysee/32/1417_2.png) [@geewhysee](https://unstuckpolitics.com/u/geewhysee)\
**Post date:** [December 21, 2021, 4:45pm UTC](https://unstuckpolitics.com/t/programming/192/2226 "2021-12-21T16:45:04Z")

</div>

Hi all, I have a programming scope question. For reference I do basic SQL for work and I got like halfway through a self taught Python beginners course because I was just making list after list and didn’t see any use case.

So at a basic level I’m looking to make an overlay/HUD. I play mtga and when you open a draft you are presented with 15 possible picks, you grab one and then are shown 14 possible picks in the next pack and so on until you’re down to 0.

[https://imgur.com/a/g1UAZPB](https://imgur.com/a/g1UAZPB)

What I want to do is take those cards and overlay the stats from this website

[https://www.17lands.com/card\_ratings](https://www.17lands.com/card_ratings)

namely the ALSA (average last seen at) and the GIH WR (game in hand win rate) over the top of those possible picks. I know it’s possible because there is already an overlay here

> **[Untapped.gg - MTG Arena Deck Tracker and Analytics](https://mtga.untapped.gg)**
>
> Magic: The Gathering Arena Deck Tracker and Analytics from the team behind Hearthstone Deck Tracker and HSReplay.net.

that shows different (less useful imo) information on the cards.

My question is is this something a total noob like me could consider attempting (without spending money) and if so how long do you imagine it would take me. If not how much would someone charge to create something like this?

---

<div class="post-metadata">

**Author:** ![TW9kc2FsbG93ZG94aW5n](https://unstuckpolitics.com/letter_avatar_proxy/v4/letter/t/f6c823/32.png) [@TW9kc2FsbG93ZG94aW5n](https://unstuckpolitics.com/u/TW9kc2FsbG93ZG94aW5n)\
**Post date:** [December 21, 2021, 6:18pm UTC](https://unstuckpolitics.com/t/programming/192/2227 "2021-12-21T18:18:48Z")

</div>

The moderators of this message board, [otatop](https://unstuckpolitics.com/u/otatop), [L.Washington](https://unstuckpolitics.com/u/L.Washington), [WichitaDM](https://unstuckpolitics.com/u/WichitaDM), [Yuv](https://unstuckpolitics.com/u/Yuv), [JonnyA](https://unstuckpolitics.com/u/JonnyA), [RiskyFlush](https://unstuckpolitics.com/u/RiskyFlush), and [SvenO](https://unstuckpolitics.com/u/SvenO), are cowards who let abusers dox and harrass other long time posters.

---

<div class="post-metadata">

**Author:** ![jjshabado](https://unstuckpolitics.com/letter_avatar_proxy/v4/letter/j/c57346/32.png) [@jjshabado](https://unstuckpolitics.com/u/jjshabado)\
**Post date:** [December 22, 2021, 1:10am UTC](https://unstuckpolitics.com/t/programming/192/2229 "2021-12-22T01:10:29Z")

</div>

Apple has new text recognition in images functionality. If you use Apple maybe you could script something that imports the photo and copies the text? Then map text to cards yourself?

Not sure if there’s other software out there that does that.

---

<div class="post-metadata">

**Author:** ![econophile](https://unstuckpolitics.com/user_avatar/unstuckpolitics.com/econophile/32/78823_2.png) [@econophile](https://unstuckpolitics.com/u/econophile)\
**Post date:** [December 22, 2021, 1:36am UTC](https://unstuckpolitics.com/t/programming/192/2230 "2021-12-22T01:36:01Z")

</div>

Python has some OCR libraries for this sort of thing

---

<div class="post-metadata">

**Author:** ![ChrisV](https://unstuckpolitics.com/user_avatar/unstuckpolitics.com/chrisv/32/56631_2.png) [@ChrisV](https://unstuckpolitics.com/u/ChrisV)\
**Post date:** [December 22, 2021, 1:44am UTC](https://unstuckpolitics.com/t/programming/192/2231 "2021-12-22T01:44:35Z")

</div>

> [@goofyballer](#):
>
> I vaguely recall doing some image recognition stuff with AHK, so if the card images are guaranteed to be the exact same every time (I assume it’s matching pixels) then this might work?

Yeah using AHK you can probably just sample a couple pixels at certain locations in the window and figure out what the cards are. I would definitely not recommend that a novice try this project though. The idea of trying to do it fills me with dread because I know it would be fiddly and annoying.

---

<div class="post-metadata">

**Author:** ![Krayz](https://unstuckpolitics.com/user_avatar/unstuckpolitics.com/krayz/32/151605_2.png) [@Krayz](https://unstuckpolitics.com/u/Krayz)\
**Post date:** [December 22, 2021, 3:03am UTC](https://unstuckpolitics.com/t/programming/192/2232 "2021-12-22T03:03:54Z")

</div>

MTGA pushes everything to a log file, you don’t need to do image mapping or whatever.

For example:

```auto
[UnityCrossThreadLogger]12/15/2021 10:23:18 PM
<== Event_GetCourses(d9ce961e-855e-449c-a94a-f5b405fa3c95)
{"Courses":[{"CourseId":"96ff92bd-d305-4ac8-9008-92f70a2ab41e","InternalEventName":"Constructed_BestOf3","CurrentModule":4,"ModulePayload":"","CourseDeckSummary":{"DeckId":"6f0c40ac-bd96-4186-9303-50cce2817c8a","Name":"Rakdos Midrange","Attributes":[{"name":"lastPlayed","value":"10/17/2020 8:03:29 PM"},{"name":"Format","value":"TraditionalStandard"}],"Description":"","DeckTileId":70262,"FormatLegalities":{"TraditionalStandard":true},"CardBack":"CardBack_Default","DeckValidationSummaries":[],"UnownedCards":{}},"CourseDeck":{"MainDeck":[{"cardId":70262,"quantity":4},{"cardId":70732,"quantity":4},{"cardId":73350,"quantity":4},{"cardId":70616,"quantity":3},{"cardId":70244,"quantity":2},{"cardId":70248,"quantity":2},{"cardId":71946,"quantity":2},{"cardId":73284,"quantity":2},{"cardId":73290,"quantity":3},{"cardId":73363,"quantity":2},{"cardId":70598,"quantity":1},{"cardId":73302,"quantity":2},{"cardId":71158,"quantity":3},{"cardId":71203,"quantity":1},{"cardId":73370,"quantity":2},{"cardId":70602,"quantity":1},{"cardId":70629,"quantity":3},{"cardId":70388,"quantity":1},{"cardId":72028,"quantity":1},{"cardId":70391,"quantity":3},{"cardId":75555,"quantity":4},{"cardId":75557,"quantity":6},{"cardId":70758,"quantity":4}],"ReducedSideboard":[],"Sideboard":[{"cardId":70598,"quantity":1},{"cardId":71203,"quantity":2},{"cardId":70594,"quantity":3},{"cardId":70269,"quantity":1},{"cardId":71155,"quantity":2},{"cardId":73324,"quantity":3},{"cardId":70748,"quantity":3}],"CommandZone":[],"Companions":[],"CardSkins":[]},"CardPool":[]},{"CourseId":"3b7046bd-2727-4b6e-a659-6d83a361b631","InternalEventName":"Play","CurrentModule":4,"ModulePayload":"","CourseDeckSummary":{"DeckId":"4f943673-633f-4864-bb01-285ea06a587f","Name":"Izzet","Attributes":[{"name":"Format","value":"Standard"}],"Description":"","DeckTileId":66057,"FormatLegalities":{"Standard":true},"DeckValidationSummaries":[],"UnownedCards":{}},"CourseDeck":{"MainDeck":[{"cardId":66057,"quantity":4},{"cardId":67017,"quantity":7},{"cardId":67021,"quantity":8},{"cardId":67992,"quantity":4},{"cardId":68112,"quantity":3},{"cardId":68732,"quantity":4},{"cardId":67598,"quantity":1},{"cardId":68186,"quantity":2},{"cardId":66091,"quantity":4},{"cardId":68624,"quantity":4},{"cardId":68688,"quantity":4},{"cardId":68738,"quantity":2},{"cardId":68569,"quantity":3},{"cardId":68615,"quantity":2},{"cardId":68653,"quantity":2},{"cardId":66067,"quantity":3},{"cardId":66125,"quantity":2},{"cardId":66109,"quantity":1}],"ReducedSideboard":[],"Sideboard":[],"CommandZone":[],"Companions":[],"CardSkins":[]},"CardPool":[]},{"CourseId":"ac0d0654-84d3-4080-81b9-1031fb0e2d42","InternalEventName":"Play_Brawl_Historic","CurrentModule":7,"ModulePayload":"","CourseDeckSummary":{"DeckId":"d40a8478-5aad-42b8-8a83-9222ed4e47b7","Mana":"UG","Name":"New Deck (6)","Attributes":[{"name":"Version","value":"11"},{"name":"TileID","value":"69323"},{"name":"LastPlayed","value":"\"2021-08-25T23:06:46.6436021\""},{"name":"LastUpdated","value":"\"2021-08-25T23:06:42.0205417\""},{"name":"IsFavorite","value":"false"},{"name":"Format","value":"HistoricBrawl"}],"DeckTileId":69323,"FormatLegalities":{},"DeckValidationSummaries":[],"UnownedCards":{}},"CourseDeck":{"MainDeck":[{"cardId":69828,"quantity":1},{"cardId":77467,"quantity":16},{"cardId":50873,"quantity":1},{"cardId":73976,"quantity":1},{"cardId":77479,"quantity":16},{"cardId":70456,"quantity":1},{"cardId":72447,"quantity":1},{"cardId":68164,"quantity":1},{"cardId":69600,"quantity":1},{"cardId":69501,"quantity":1},{"cardId":61419,"quantity":1},{"cardId":75231,"quantity":1},{"cardId":73402,"quantity":1},{"cardId":77305,"quantity":1},{"cardId":72504,"quantity":1},{"cardId":73827,"quantity":1},{"cardId":69839,"quantity":1},{"cardId":67790,"quantity":1},{"cardId":73249,"quantity":1},{"cardId":68040,"quantity":1},{"cardId":66889,"quantity":1},{"cardId":71975,"quantity":1},{"cardId":68072,"quantity":1},{"cardId":69519,"quantity":1},{"cardId":76626,"quantity":1},{"cardId":69302,"quantity":1},{"cardId":72021,"quantity":1},{"cardId":50943,"quantity":1},{"cardId":69837,"quantity":1},{"cardId":69250,"quantity":1},{"cardId":69952,"quantity":1},{"cardId":72498,"quantity":1},{"cardId":71229,"quantity":1},{"cardId":73985,"quantity":1},{"cardId":70389,"quantity":1},{"cardId":73267,"quantity":1},{"cardId":70387,"quantity":1},{"cardId":73420,"quantity":1},{"cardId":73386,"quantity":1},{"cardId":73425,"quantity":1},{"cardId":75859,"quantity":1},{"cardId":69394,"quantity":1},{"cardId":67584,"quantity":1},{"cardId":70040,"quantity":1},{"cardId":76682,"quantity":1},{"cardId":77494,"quantity":1},{"cardId":75268,"quantity":1},{"cardId":76625,"quantity":1},{"cardId":76585,"quantity":1},{"cardId":71856,"quantity":1},{"cardId":71137,"quantity":1},{"cardId":77495,"quantity":1},{"cardId":73849,"quantity":1},{"cardId":69683,"quantity":1},{"cardId":70002,"quantity":1},{"cardId":76613,"quantity":1},{"cardId":75780,"quantity":1},{"cardId":77343,"quantity":1},{"cardId":67516,"quantity":1},{"cardId":69311,"quantity":1},{"cardId":66429,"quantity":1},{"cardId":77540,"quantity":1},{"cardId":70466,"quantity":1},{"cardId":70464,"quantity":1},{"cardId":69259,"quantity":1},{"cardId":69622,"quantity":1},{"cardId":70685,"quantity":1},{"cardId":75223,"quantity":1},{"cardId":70307,"quantity":1}],"ReducedSideboard":[],"Sideboard":[],"CommandZone":[{"cardId":69323,"quantity":1}],"Companions":[],"CardSkins":[{"GrpId":69323,"CCV":"DA"},{"GrpId":69828,"CCV":"DA"},{"GrpId":70456,"CCV":"DA"},{"GrpId":68164,"CCV":"DA"},{"GrpId":69394,"CCV":"DA"},{"GrpId":76625,"CCV":"DA"},{"GrpId":76585,"CCV":"DA"},{"GrpId":70002,"CCV":"DA"},{"GrpId":77540,"CCV":"JP"},{"GrpId":69259,"CCV":"DA"}]},"CurrentWins":1,"CardPool":[]},{"CourseId":"5b8d23f0-678b-4630-a467-79a327a9cd47","InternalEventName":"Traditional_Historic_Ladder","CurrentModule":4,"ModulePayload":"","CourseDeckSummary":{"DeckId":"77b78d67-a363-44ee-8d21-2ec12bd89e9d","Mana":"WU","Name":"UW Historic","Attributes":[{"name":"Version","value":"11"},{"name":"TileID","value":"75272"},{"name":"LastPlayed","value":"\"2021-12-12T23:56:00.8389562\""},{"name":"LastUpdated","value":"\"2021-12-12T23:55:36.3321552\""},{"name":"IsFavorite","value":"false"},{"name":"Format","value":"TraditionalAlchemy"}],"DeckTileId":75272,"FormatLegalities":{},"DeckValidationSummaries":[],"UnownedCards":{}},"CourseDeck":{"MainDeck":[{"cardId":75272,"quantity":1},{"cardId":79092,"quantity":5},{"cardId":79093,"quantity":4},{"cardId":78612,"quantity":2},{"cardId":73194,"quantity":1},{"cardId":77138,"quantity":2},{"cardId":78345,"quantity":2},{"cardId":78825,"quantity":2},{"cardId":75044,"quantity":4},{"cardId":78374,"quantity":3},{"cardId":73254,"quantity":3},{"cardId":76434,"quantity":4},{"cardId":76452,"quantity":2},{"cardId":79918,"quantity":2},{"cardId":75115,"quantity":2},{"cardId":78396,"quantity":2},{"cardId":79965,"quantity":3},{"cardId":78850,"quantity":2},{"cardId":77362,"quantity":2},{"cardId":78629,"quantity":4},{"cardId":75310,"quantity":4},{"cardId":79969,"quantity":2},{"cardId":66487,"quantity":2}],"ReducedSideboard":[{"cardId":77138,"quantity":2},{"cardId":78782,"quantity":1},{"cardId":78791,"quantity":1},{"cardId":78367,"quantity":2},{"cardId":75057,"quantity":1}],"Sideboard":[{"cardId":77138,"quantity":2},{"cardId":78782,"quantity":1},{"cardId":78367,"quantity":2},{"cardId":75057,"quantity":1},{"cardId":78791,"quantity":1},{"cardId":78394,"quantity":2},{"cardId":68498,"quantity":1},{"cardId":76450,"quantity":1},{"cardId":76393,"quantity":1},{"cardId":76397,"quantity":1},{"cardId":78825,"quantity":1},{"cardId":79920,"quantity":1}],"CommandZone":[],"Companions":[],"CardSkins":[{"GrpId":73254,"CCV":"DA"},{"GrpId":76434,"CCV":"DA"},{"GrpId":77362,"CCV":"DA"},{"GrpId":75057,"CCV":"DA"}]},"CardPool":[]},{"CourseId":"7ef909ae-7556-4e7f-9bc5-dae44a18561e","InternalEventName":"Traditional_Alchemy_Ladder","CurrentModule":7,"ModulePayload":"","CourseDeckSummary":{"DeckId":"77b78d67-a363-44ee-8d21-2ec12bd89e9d","Mana":"WU","Name":"UW Historic","Attributes":[{"name":"Version","value":"11"},{"name":"TileID","value":"75272"},{"name":"LastPlayed","value":"\"2021-12-14T19:51:52.3041242\""},{"name":"LastUpdated","value":"\"2021-12-12T23:55:36.3321552\""},{"name":"IsFavorite","value":"false"},{"name":"Format","value":"TraditionalAlchemy"}],"DeckTileId":75272,"FormatLegalities":{},"DeckValidationSummaries":[],"UnownedCards":{}},"CourseDeck":{"MainDeck":[{"cardId":75272,"quantity":1},{"cardId":79092,"quantity":5},{"cardId":79093,"quantity":4},{"cardId":78612,"quantity":2},{"cardId":73194,"quantity":1},{"cardId":77138,"quantity":2},{"cardId":78345,"quantity":2},{"cardId":78825,"quantity":2},{"cardId":75044,"quantity":4},{"cardId":78374,"quantity":3},{"cardId":73254,"quantity":3},{"cardId":76434,"quantity":4},{"cardId":76452,"quantity":2},{"cardId":79918,"quantity":2},{"cardId":75115,"quantity":2},{"cardId":78396,"quantity":2},{"cardId":79965,"quantity":3},{"cardId":78850,"quantity":2},{"cardId":77362,"quantity":2},{"cardId":78629,"quantity":4},{"cardId":75310,"quantity":4},{"cardId":79969,"quantity":2},{"cardId":66487,"quantity":2}],"ReducedSideboard":[{"cardId":77138,"quantity":2},{"cardId":78782,"quantity":1},{"cardId":78791,"quantity":1},{"cardId":78367,"quantity":2},{"cardId":75057,"quantity":1}],"Sideboard":[{"cardId":77138,"quantity":2},{"cardId":78782,"quantity":1},{"cardId":78367,"quantity":2},{"cardId":75057,"quantity":1},{"cardId":78791,"quantity":1},{"cardId":78394,"quantity":2},{"cardId":68498,"quantity":1},{"cardId":76450,"quantity":1},{"cardId":76393,"quantity":1},{"cardId":76397,"quantity":1},{"cardId":78825,"quantity":1},{"cardId":79920,"quantity":1}],"CommandZone":[],"Companions":[],"CardSkins":[{"GrpId":73254,"CCV":"DA"},{"GrpId":76434,"CCV":"DA"},{"GrpId":77362,"CCV":"DA"},{"GrpId":75057,"CCV":"DA"}]},"CurrentWins":1,"CardPool":[]}]}

```

Here’s a GitHub of someone who did a draft overlay: [https://github.com/HearthSim/LotusTracker/blob/d49ae6c1e88c77fbcb10f6f3ceec0759c3d5c790/src/ui/deckoverlaydraft.cpp](https://github.com/HearthSim/LotusTracker/blob/d49ae6c1e88c77fbcb10f6f3ceec0759c3d5c790/src/ui/deckoverlaydraft.cpp)

It would probably take you around 100+ hours to do this as a total noob, and probably wouldn’t conform to good programming standards. You might be able to fork one of these git repositories and make small changes that use 17lands (instead of their LSV rating class), and in that case may be on the order of 10-40 hours.

Either way, I’d chat to the 17 lands folks and ask them about if anyone is attempting this and if you can collab.

Sounds like somebody did a workaround using another tracker here: [Reddit - Dive into anything](https://www.reddit.com/r/lrcast/comments/pr8cf9/best_way_to_take_advantage_of_17lands_data_in/hdhxyjp/)

---

<div class="post-metadata">

**Author:** ![ChrisV](https://unstuckpolitics.com/user_avatar/unstuckpolitics.com/chrisv/32/56631_2.png) [@ChrisV](https://unstuckpolitics.com/u/ChrisV)\
**Post date:** [December 22, 2021, 3:53am UTC](https://unstuckpolitics.com/t/programming/192/2233 "2021-12-22T03:53:33Z")

</div>

With the application logging everything (that’s nice of them!) and code out there on GitHub demoing how to do an overlay, the project is starting to sound a lot easier. 17lands [outputs their data as very simple JSON](https://www.17lands.com/card_ratings/data?expansion=VOW&format=PremierDraft&start_date=2021-08-22&end_date=2021-12-22), so reading that into memory would be a breeze. I could probably do this in a few days now and I’ve never written in C++ before. If I had overlay demo code to work with in a language I’ve used a lot like C#, it would probably be like a day, maybe less.

---

<div class="post-metadata">

**Author:** ![CanadaMatt3004](https://unstuckpolitics.com/user_avatar/unstuckpolitics.com/canadamatt3004/32/228_2.png) [@CanadaMatt3004](https://unstuckpolitics.com/u/CanadaMatt3004)\
**Post date:** [December 27, 2021, 5:13pm UTC](https://unstuckpolitics.com/t/programming/192/2234 "2021-12-27T17:13:57Z")

</div>

Question for those in the industry. My wife is looking to break in. Did a boot camp during the pandemic focused on back end, currently is a junior systems analyst for a company with a proprietary interface focused on building software for non-profits.

Obv what shes doing now builds on her boot camp experience but she is looking to get into more of back end coding. Where should she start? Is a BS in computer science the right way to go? Seems like it might be a considerable time/money committment but if its a neccesity to get into the industry maybe thats the right idea.

Should she be looking for an internship? (Hopefully paid.) If so, is there a good resource to look at outside of the standard job boards for something along those lines?

I also know a lot of people here are in the industry. Do your companies have openings for internships or entry level positions? My wife is one of those “dog with a bone” type people who will get a problem or something she doesnt yet know and work on it forever until she gets the solution. Passion and desire arent a problem here, we are just looking for a springboard to get her close to where she wants to be.

---

<div class="post-metadata">

**Author:** ![TW9kc2FsbG93ZG94aW5n](https://unstuckpolitics.com/letter_avatar_proxy/v4/letter/t/f6c823/32.png) [@TW9kc2FsbG93ZG94aW5n](https://unstuckpolitics.com/u/TW9kc2FsbG93ZG94aW5n)\
**Post date:** [December 27, 2021, 11:11pm UTC](https://unstuckpolitics.com/t/programming/192/2235 "2021-12-27T23:11:31Z")

</div>

The moderators of this message board, [otatop](https://unstuckpolitics.com/u/otatop), [L.Washington](https://unstuckpolitics.com/u/L.Washington), [WichitaDM](https://unstuckpolitics.com/u/WichitaDM), [Yuv](https://unstuckpolitics.com/u/Yuv), [JonnyA](https://unstuckpolitics.com/u/JonnyA), [RiskyFlush](https://unstuckpolitics.com/u/RiskyFlush), and [SvenO](https://unstuckpolitics.com/u/SvenO), are cowards who let abusers dox and harrass other long time posters.

---

<div class="post-metadata">

**Author:** ![WAR](https://unstuckpolitics.com/user_avatar/unstuckpolitics.com/war/32/52_2.png) [@WAR](https://unstuckpolitics.com/u/WAR)\
**Post date:** [January 16, 2022, 11:39pm UTC](https://unstuckpolitics.com/t/programming/192/2237 "2022-01-16T23:39:47Z")

</div>

I need to hire someone to make a very simple, clean web UI for a game. Just needs to display some data from a database and filter it based on user input. Also needs to connect to metamask and have a button to make one Ethereum contract interaction.

Also need to make my base homepage and whitepaper look like it was made by someone competent.

Shouldn’t be at all hard for someone who knows what they are doing, but I need it to be bug-free and preferably done soon.

1. Any of you want to do this?
2. How much should I expect to pay for this?
3. What’s the best way to find someone competent to hire?

---

<div class="post-metadata">

**Author:** ![VoteForSocialists](https://unstuckpolitics.com/user_avatar/unstuckpolitics.com/voteforsocialists/32/151626_2.png) [@VoteForSocialists](https://unstuckpolitics.com/u/VoteForSocialists)\
**Post date:** [January 21, 2022, 6:14pm UTC](https://unstuckpolitics.com/t/programming/192/2239 "2022-01-21T18:14:48Z")

</div>

did a virtual google interview loop yesterday. kinda glad it’s over, although i would wager probably no offer.

in the meantime, wanted to post this as it’s making the rounds on company slack. i’ve done that interview, and yes it’s the single best question that stands out to me over the years.

> **[The best engineering interview question I’ve ever gotten, Part 1](https://quuxplusone.github.io/blog/2022/01/06/memcached-interview/)**
>
> It’s been a while since I was on the receiving end of a software engineering
> interview. But I still remember my favorite interview question. It was at MemSQL circa 2013.
> (They haven’t even kept their name,
> so I assume they’re not still relying on...

---

<div class="post-metadata">

**Author:** ![eeAWW](https://unstuckpolitics.com/user_avatar/unstuckpolitics.com/eeaww/32/1158_2.png) [@eeAWW](https://unstuckpolitics.com/u/eeAWW)\
**Post date:** [January 26, 2022, 6:40pm UTC](https://unstuckpolitics.com/t/programming/192/2240 "2022-01-26T18:40:15Z")

</div>

I have a noob C++ question. There’s an open source program I’ve successfully compiled and run on two different machines, but now I’m struggling to build it on my Pinebook Pro, whose architecture is ARM if that’s relevant. The compiler isn’t able to recognize type \_\_int128

The code has this comment:

```
// __int128 is a g++ non portable type. Use the following line limited to 64bits board for C++ compatibility
// using position_t = uint64_t;

```

But 64bit isn’t sufficient for what I’m trying to do. Am I SOL? I don’t understand the comment because I _am_ compiling with g++, just like I did on another linux machine.

---

<div class="post-metadata">

**Author:** ![ChipsAhoy](https://unstuckpolitics.com/user_avatar/unstuckpolitics.com/chipsahoy/32/997_2.png) [@ChipsAhoy](https://unstuckpolitics.com/u/ChipsAhoy)\
**Post date:** [January 26, 2022, 7:41pm UTC](https://unstuckpolitics.com/t/programming/192/2243 "2022-01-26T19:41:15Z")

</div>

Are you sure g++ is running on the Pinebook Pro?

A typical way to build open source is configure && make && make install.  
Configure will find the system c++ compiler which might not be g++. Read the output of configure.

I would do g++ --version to see if you have g++ installed and 64 bits. If not, install it and specify to use it as a param to configure.

You can also cross-compile by building a g++ which runs on your other machine and produces arm binaries. Start here [https://www.linuxfromscratch.org/](https://www.linuxfromscratch.org/)

---

<div class="post-metadata">

**Author:** ![ChipsAhoy](https://unstuckpolitics.com/user_avatar/unstuckpolitics.com/chipsahoy/32/997_2.png) [@ChipsAhoy](https://unstuckpolitics.com/u/ChipsAhoy)\
**Post date:** [January 26, 2022, 7:45pm UTC](https://unstuckpolitics.com/t/programming/192/2244 "2022-01-26T19:45:19Z")

</div>

I had an interview which included “here are failing test cases, fix the bugs”. They went from trivial to difficult. The expectation was the candidate would not be able to finish all in time.

---

<div class="post-metadata">

**Author:** ![eeAWW](https://unstuckpolitics.com/user_avatar/unstuckpolitics.com/eeaww/32/1158_2.png) [@eeAWW](https://unstuckpolitics.com/u/eeAWW)\
**Post date:** [January 26, 2022, 8:33pm UTC](https://unstuckpolitics.com/t/programming/192/2245 "2022-01-26T20:33:52Z")

</div>

My g++ version is 6.3.0

I’m not familiar with Configure and I’m getting, `bash: configure: command not found`. Is it part of some package I need to install?

I’ve just been using make. The makefile begins with:

```
CXX=g++
CXXFLAGS=--std=c++11 -W -Wall -O3 -DNDEBUG

```

I also tried manually typing g++ [file1] … [fileN] -o [file] and got the same complaint about \_\_int128

Your idea of cross-compiling sounds promising. I suppose another option (involving more effort) would be to transcode to a portable language. I’m more fluent with Julia and it has `Int128` which ought to work just fine.

---

<div class="post-metadata">

**Author:** ![ChipsAhoy](https://unstuckpolitics.com/user_avatar/unstuckpolitics.com/chipsahoy/32/997_2.png) [@ChipsAhoy](https://unstuckpolitics.com/u/ChipsAhoy)\
**Post date:** [January 26, 2022, 9:48pm UTC](https://unstuckpolitics.com/t/programming/192/2246 "2022-01-26T21:48:40Z")

</div>

> **[abseil / The Numeric Library](https://abseil.io/docs/cpp/guides/numeric)**
>
> An open-source collection of core C++ library code

Here is a c++ int128 you can use.

---

<div class="post-metadata">

**Author:** ![VoteForSocialists](https://unstuckpolitics.com/user_avatar/unstuckpolitics.com/voteforsocialists/32/151626_2.png) [@VoteForSocialists](https://unstuckpolitics.com/u/VoteForSocialists)\
**Post date:** [January 26, 2022, 10:22pm UTC](https://unstuckpolitics.com/t/programming/192/2247 "2022-01-26T22:22:51Z")

</div>

yes the problem must be tractable, and as interviewer you can show as much information about it as you need

---

<div class="post-metadata">

**Author:** ![eeAWW](https://unstuckpolitics.com/user_avatar/unstuckpolitics.com/eeaww/32/1158_2.png) [@eeAWW](https://unstuckpolitics.com/u/eeAWW)\
**Post date:** [January 26, 2022, 11:06pm UTC](https://unstuckpolitics.com/t/programming/192/2248 "2022-01-26T23:06:29Z")

</div>

So TIL that a configure script converts a makefile.in into a makefile. This is how new to C++ compiling I am heh. Since I already have the makefile, that explains why I lack a configure script.

I found a g++ cross-compiler for my other linux machine, installed it and changed the first line of the makefile accordingly to:

```
CXX=aarch64-linux-gnu-g++-8

```

That compiled successfully. As a sanity check, I tried running the binary on the same machine and got an exec format error–a good sign. I copied it to the pinebook with high hopes of it working. I dot-slashed it and got “permission denied”, so then I did sudo chmod +x and tried again. Result: `No such file or directory`. Wtf?

I feel like the process I described only needs a small tweak in order to work? But if I continually bang my head I’ll try the library you linked, thanks.

ETA: after recompiling with the -static flag, it’s working now! Sahweeet tyvm

[Previous page](https://unstuckpolitics.com/t/programming/192.md?page=86)

[Next page](https://unstuckpolitics.com/t/programming/192.md?page=88)
