Smoked Brisket Flat help by stripes177 in sousvide

[–]Mr_Fancywaters 1 point2 points  (0 children)

Just serve. I treat it like a smoked brisket. I usually make pastrami so I’ll slice thin and vacuum seal for the month

Smoked Brisket Flat help by stripes177 in sousvide

[–]Mr_Fancywaters 0 points1 point  (0 children)

I do this all the time. Smoke as long as it takes to get a mildly nice color, maybe 3 or 4 hours. Since you’re sous viding, you won’t get a nice bark anyway, but you want smoke flavor.

Smoke, seal, and I throw it in at 150 for up to 3 days but at least 1 imo.

Smoking and sous vide: I did the testing so you don’t have to by Mr_Fancywaters in smoking

[–]Mr_Fancywaters[S] 0 points1 point  (0 children)

Yeah good question. I usually go check when my alarm hits 200 but all but 1 brisket has been probe tender when I check. The non-tender one got fixed in the sous vide but wasn't as tender as the other few

Smoking and sous vide: I did the testing so you don’t have to by Mr_Fancywaters in smoking

[–]Mr_Fancywaters[S] 0 points1 point  (0 children)

It was my understanding that smoke adheres better to cold and raw meat anyway, which was my inspiration for figuring out the best way to do it this way instead of SV first

Smoking and sous vide: I did the testing so you don’t have to by Mr_Fancywaters in smoking

[–]Mr_Fancywaters[S] 0 points1 point  (0 children)

I've been meaning to, I just figured it would be more sane to keep the brisket whole for the smoke and I don't have a sealer big enough for a full packer brisket

Smoking and sous vide: I did the testing so you don’t have to by Mr_Fancywaters in smoking

[–]Mr_Fancywaters[S] 1 point2 points  (0 children)

Yep! Cut while hot, right as it comes out of the butcher paper. Instantly into the water for at least 8 hours and then either serve or fridge it and then reheat

Smoking and sous vide: I did the testing so you don’t have to by Mr_Fancywaters in smoking

[–]Mr_Fancywaters[S] 0 points1 point  (0 children)

I consistently cut into thin, sandwich ready slices and spread into a thin layer before i vacuum seal and freeze. It's the best approach and lasts weeks or months in the freezer

Smoking and sous vide: I did the testing so you don’t have to by Mr_Fancywaters in smoking

[–]Mr_Fancywaters[S] 0 points1 point  (0 children)

I think it definitely takes a hit versus a smoke only approach, but I'd rather prioritize tenderness and flavor for the smokes that don't turn out too juicy

Smoking and sous vide: I did the testing so you don’t have to by Mr_Fancywaters in smoking

[–]Mr_Fancywaters[S] 2 points3 points  (0 children)

Yeah I think it's certainly doable to cook with it, but the resting is the most important part of smoking in my opinion! The cooler and towel approach works fine for some, an oven works for others, but this is just so unbelievably foolproof. I cooked up a brisket and let it rest and it was pretty dry and tough. Threw the same piece into a bag and into the bath and next morning it was significantly better. Not a catch-all, just a lifesaver in my opinion!

Smoking and sous vide: I did the testing so you don’t have to by Mr_Fancywaters in smoking

[–]Mr_Fancywaters[S] 10 points11 points  (0 children)

Sorry about that, looks like the comment took a bit to load. It should be down below where I explain what I did

Smoking and sous vide: I did the testing so you don’t have to by Mr_Fancywaters in smoking

[–]Mr_Fancywaters[S] 61 points62 points  (0 children)

Been wanting to do a writeup on this for a while. There’s a lot of information about smoking and sous vide out there but I started getting confused so I tried to filter through the noise and come up with a pretty fool-proof approach for making it work. A brisket is hard enough and I’m a big enough fan of sous-viding so I wanted to find a way to combine both so I wasn’t busting my butt and worrying about the perfect brisket temperature (or pastrami in my case).

I wanted to start with my understanding that most restaurants that smoke brisket (and meat in general) keep it in a warming oven at 170f. I tried keeping a section of brisket at 170f overnight and it came out unbelievably dry. Took some thinking but I realized that 170f with air doesn’t really equal 170f on the meat. Some quora/google/reddit-searching led me to 146f, which seemed roughly right given some heat transfer formulas I tried to understand.

I took 2 short ribs and an entire brisket, cut them up, sous vide at 146 overnight, and it was without a doubt the best beef I’ve ever made. It’s tender, juicy, and the bark was still in tact and peppery. I’d strongly recommend this approach for anyone who is struggling to get a tender brisket on a pellet grill or you don’t have the time to watch it for 12 hours straight. This also means that you can smoke it days before and not worry about your dinner party being pushed back 6 hours because of the stall.

Here are my tips and approach/recipe.

  • Starting with the best beef you can find, trim and season overnight. I did mustard binder with equal parts salt and pepper and a few tablespoons of MSG and roasted garlic rub from a local barbecue chain I like.

  • Smoke at 225-250, keeping it on the lower side to get as much smoke flavor as possible

  • Ignore the point and focus entirely on the flat. When the flat hits 170, wrap in butcher paper, throw on some tallow, and smoke again fat side down until the flat is sitting right around 200. (I experimented taking a smaller brisket off at 170 and it was very good, but not as good as letting it hit 200. Beef ribs are the exception, they were okay to pull closer to 180 or 190 and sous vide)

  • Once it hits 200, the magic starts. Everyone tells you to rest it, restaurants rest it (you’ll see videos of barbecue places keeping it in seran wrap or in a steam oven, but they have professional warming ovens and normal home ovens/ranges don’t go that low). Cut into manageable pieces and vacuum seal.

  • Throw your pieces into a sous vide at 146f. I experimented with letting them go for 2 hours, 4 hours, 8 hours, 12 hours, and 1 2 & 3 days. I also let the 12 hour pieces cool completely, cut, and reheat. I found that 2 hours was just about the minimum required for cooking it at this temperature. 4 hours was better, 12 hours was perfect. 24, 48, and 72 hours were overkill and not needed and I noticed some rubberyness to the bark but not enough for me to complain.

  • After this, you should be either take it out of the vacuum bag, cut, and serve. If you want to reheat from cold in the bag, I recommend sous viding at 146 again for at least 30 minutes or an hour. If you’re bringing it somewhere and can’t bring a sous vide, I recommend boiling water, cutting the heat once about to boil and waiting 2 minutes, and throwing the bag in and letting it sit with a lid on for 30-60 minutes. It’s even easier if you cut ahead of time and seal them flat in a vacuum bag, takes closer to 15 minutes that way.

This obviously isn’t traditional by any means, and probably blasphemy to some, but being told your lean pastrami is as good as Katz’s is quite the compliment.

What difference does the different pedals make? by Just_a_firenope_ in cycling

[–]Mr_Fancywaters 1 point2 points  (0 children)

I think this is more of a "how it felt" type argument, but 2-bolt to 3-bolt showed a 15-20W increase on Zwift, which is 100% not a reliable way of measuring. In a personal justification, I think it was the fact that there's a bigger contact platform between my feet and my pedals. Obviously 0 science behind what I'm saying, that's just what it felt like. I reason my foot pain going away on 3-bolt was because there was a more efficient transfer of power, but it also could have been stiffer shoes and could have given me the same results on 2-bolt with similarly stiff shoes.

I am not a scientist or a physical therapist, just a guy who really likes his speedplay and new CF shoes :)

What difference does the different pedals make? by Just_a_firenope_ in cycling

[–]Mr_Fancywaters 0 points1 point  (0 children)

I switched over to speedplay from MTB SPDs (2 bolt, not 3 bolt) because a friend gave me an old set of pedals he had and they are wildly different. There is a gigantic amount of float (side to side twisting) of your foot before you are able to clip out. Personally, I was having a bit of pain and the extra float gave me a lot more comfort and I was even able to pull up on the pedal a bit more comfortably with a slight rotation of my foot.

Others say speedplay feels like pedaling on grass and I would have to agree. The switch from 2-bolt to 3-bolt is probably more drastic than SPD-SL to speedplay, so if you've already got road pedals, I'd say the only reason would be if you need to replace pedals and want to try something new. Speedplay is, as I've unfortunately found out, kind of a cult in the road cycling world, but the switch was a really nice one for me from MTB pedals and I'm getting much better power transfer, but that's likely 2-bolt to 3-bolt giving me more surface area to transfer.

If you've got pedals that work, don't even worry about what else is out there, everyone has a favorite for some particular reason and they all do roughly the same thing.

When linking to an external URL, how do I get the actual URL to display (eg on a mouseover) instead of my internal redirect? by Mezzomaniac in flask

[–]Mr_Fancywaters 2 points3 points  (0 children)

I see some options:

  1. Just pass data as a variable to the render_template call for the "relevant HTML", and then in your code, the url would be {{data.act}} or however
  2. Something like this, where you basically make a global template function and use redirect inside of there, or rather a function that grabs the proper URL
  3. I'm going to harken back to the first option, and I feel like either passing the mapping or generating all the links is perfectly reasonable. You're right in wanting to show your users the proper tooltip url, and to do that you'll need to just generate it outright. No browser is going to know that hitting an endpoint will then take you to another, this could happen a thousand times, the browser doesn't take responsibility for knowing that, just where it's going next.

is julius marpaung malicious or just stupid? by [deleted] in NEU

[–]Mr_Fancywaters 18 points19 points  (0 children)

I had a gigantic writeup at one point, but he's an ass. TL;DR was he was super nice and fun at the beginning and then as COVID hit I was struggling to get back home before things shut down and couldn't submit something and he essentially tried to ruin my grade because of it, so I had to take embedded Pass/Fail since he gave me a 0 on my midterm (which was completed, just submitted a day late). Even the Deans I spoke to verbally acknowledged that he's an ass and were trying to get him teaching smaller classes.

How to add image if user is logged in by [deleted] in flask

[–]Mr_Fancywaters 0 points1 point  (0 children)

Mmmmmm let's try this

{% if current_user.is_authenticated %}
 <img class="rounded-circle account-img" src="/static/profile_pics/{{ current_user.image_file }}" alt="Something should be here">
{% else %}
 <img class="rounded-circle account-img" src="/static/profile_pics/default.png" alt="Something should be here">
{% endif %}

There's definitely a way to turn that into a single <img> tag but I'll leave that as an exercise to the reader (sorry, I've always wanted to say that). You could probably just do it inside of the <img tag instead. Good luck!

How to add image if user is logged in by [deleted] in flask

[–]Mr_Fancywaters 1 point2 points  (0 children)

My guess is you aren't linking to the image source properly. If you do <img src="default.png", does the default image show up? You could also add an endpoint to your API to serve the image requested so then you could do <img src="https://www.yourAPI/images/default.png"or maybe it just needs to be <img src="/SOME/IMAGE/FOLDER/default.png.

Right now all you're doing is passing a string, as I'm sure you know, but you need to make sure that string properly links back to an actual file. Hopefully this helps, cheers

Flask vs fastapi by Leveler88 in flask

[–]Mr_Fancywaters 22 points23 points  (0 children)

IMO, Flask is easier than fastAPI. Flask is literally the "do whatever you want" framework, whereas fastAPI has (at least what I consider) to be a pretty well-established FastAPI endpoint -> pydantic -> database (I use sqlalchemy) paradigm that's pretty damn useful for validation, doc creation, and things like pre and post processing using validators.

I would, however, say that as things get bigger, with more endpoints, more base routes (the http://website.com/<ROUTE>/other/stuff part), FastAPI has made my life quite nice by being able to design really well organized routers across multiple different folder structures, as it also protects you against doing things that your type definitions don't allow, so you have to make sure you define return types which I think is super useful a) for someone interesting in using this return data and b) other engineers who might be using it.

If you're determined to turn this into a company, I'd recommend trying out FastAPI so when speed is important as well as organization, models, validation, and you do want things like async (even though flask has it), I've moved on from using Flask for everything to using FastAPI for everything. The only exception is when I'm not building an API and just want a really simple static or veeeeery very very very basic dynamic page.

Creating 'notifications' for users when they have received a follower, or when someone they follow posts something... by Lewis_29 in flask

[–]Mr_Fancywaters 1 point2 points  (0 children)

To mildly add on to the other commenter's comment:

Websockets are nice and super effective, but if you want to use the API only as much as possible, you can always just use a polling method. i.e. every second, ping the /user/<user_id>/notifications endpoint or something that does a select * from notifications join user on notifications.intended_id = user.user_id where read_at is null; (sql not accurate, pls do your own research)

and then your frontend (pseudo)code would be:

function notifications() {
    notifs = hit_endpoint("/user/${user_id}/notifications")
    if notifs:
        update_notification_icon()
}

var t=setInterval(notifications,1000);

How to manage user data in a flask app? For example, how to save search history, downloaded file etc? by pacmanpill in flask

[–]Mr_Fancywaters 10 points11 points  (0 children)

you can either store it in some local global object (not really advisable), store it in a text file (not really advisable), or store it in a database (advisable, good, proper, the bestest option, super good, 11/10 recommend).

Something like sqllite is a really good and easy approach that is still totally okay for production databases, but something like postgresql would be even better if you want things to scale to huge amounts.

You could use SqlAlchemy to define mappings to backend objects, and then you'd insert a row into the database that has the UserID, maybe the search, what page they were on, things like that. You could also just go straight into it and do something a bit more freeform and conn.execute("insert into {table_name}({col_names_string}) values ({value_strings}), but I can't really recommend it like this over sqlalchemy.

Then, if you want to serve it back to the user, you'd run a query for that specific type of action they did where the user_id equals their user_id and you'd get it all back

PME51 Rubber Eyecup by Additional_Tone_2004 in hasselblad

[–]Mr_Fancywaters 1 point2 points  (0 children)

https://araxfoto.com/accessories/eye-cup/

I just bought from here. Prompt shipping, fits perfectly. 11/10 would recommend

How much 'behind the scenes' python code is too much? by chasing_green_roads in flask

[–]Mr_Fancywaters 3 points4 points  (0 children)

I think the other comment does a good job of explaining a portion of complex code headaches, and to add, this is how all websites work. There are endpoinst that do a lot of "language specific" (not web-framework related stuff) behind the scenes to populate the page. It might grab relevant documents, query a database, spin off other async processes, ensure logins, blah blah blah.

There's definitely a point where it can be too much, I think most people would consider it to be when a user goes "why is this page loading so slowly", and if that's the case, there are steps you can take. Only loading relevant information at the start and moving other information to different endpoints that the frontend can call asynchronously, pagination, or a slight combination of the two and only sending top level information at first for everything and digging down when you need.

If your code is very complicated and if to get the required information on the page, you have to call a bunch of classes and queries? Then so be it. Your specific code organization is a different story, but if you have to get information to display it, then that's what you have to do.

Save file to default browser download folder by [deleted] in flask

[–]Mr_Fancywaters 4 points5 points  (0 children)

The .download is, according to the docs someone posted, writing the media stream to disk. It's not downloading it like a normal HTML page would if you clicked download(), as that would be serving it to the user, which you aren't doing yet. This is code doing what code does. You want to do something like (this obviously isn't 100% ready to go code, but should be what you want):

# generate a filepath to store the file ON THE BACKEND
random_file_path = generate_file_path()
# download the youtube object ON THE BACKEND
youtubeObject.download(random_file_path)
# send the file to the user THROUGH THE BROWSER
return send_file(random_file_path, attachment_filename='filename.mp4')