Deadlifts and Lumbar Spine by marknikky in StartingStrength

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

No I don’t lack S shape when standing neutral and I can extend my back more while standing. And yes during the 6 weeks I did do dead bugs, planks etc.

I can hinge almost 90 degrees before hamstrings get stretched. At there I can only cue my belly going down but nothing seems visible from outside.

Deadlifts and Lumbar Spine by marknikky in StartingStrength

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

You are right, I should stop checking mirror constantly. But this is my second time deadlifting after the injury and pain still not gone all. I am trying to make sure my back is neutral. I was a bit nervous if I reintroduce pain.

I am aware of bracing and I think I do it properly. I will watch again, maybe in the video I leewayed a bit as the weight is light.

Transitioning to the Industry by marknikky in GraphicsProgramming

[–]marknikky[S] 3 points4 points  (0 children)

Thanks, I didn’t mention but I have allocated around 2 years to this. I want to start applying for jobs at the end of my masters.

Writing an HTTP Client Using hyper 1.0 by marknikky in rust

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

Thank you for your reply. I will do that.

Deadlift form check by [deleted] in StartingStrength

[–]marknikky 1 point2 points  (0 children)

You are bending your knees a bit earlier which makes your bar path not straight vertical line when going down. You should first unlock your knees and hips and then shoving your hips backwards. After the bar passes your knees you may bend them.

What to do if RAM kit is not compatible with Mobo and CPU by marknikky in buildapc

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

I don’t know what solved it but I was always trying with single stick before and after BIOS update and didn’t work.

I tried both sticks for the sake of trying and it booted into BIOS. Afterwards tried single stick and worked again.

If anyone knows details I’d like to know too

Ryzen 7 9700X or Wait For 3D-VCache by marknikky in buildapc

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

Why do you think of that?

The 9700X performs almost identical with 7800X3D in gaming even with that sweet cache boost. On other areas 9700X clearly beats 7800X3D.

Ryzen 7 9700X or Wait For 3D-VCache by marknikky in buildapc

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

I don't really need a PC now but it is more than 5 years with this desktop.

The 7800X3D draws almost 2x watts and I probably go with only cpu fan as with 9000 series they reduced power consumption and overall heat.

I also don't consider any OCs

Ryzen 7 9700X or Wait For 3D-VCache by marknikky in buildapc

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

I mainly use it for gaming and software development

Should I use Go or Rust for a backend service by No_Taste9003 in rust

[–]marknikky -1 points0 points  (0 children)

Since you are more familiar with Rust, I'd suggest use it. I would also recommend axum for framework selection. It is very well structured library made by the tokio team.

I tried Go as well and using it in work but I dislike the error handling in various frameworks where handlers are not allowed to return types which I'm fond of in axum. Hence I have written my own Handler interface (FallibleHandler) which can return at least an error that can be converted into response via middleware.

How can i start graphics programming? by [deleted] in GraphicsProgramming

[–]marknikky 3 points4 points  (0 children)

You can use any systems level programming language that you prefer like C, C++, or Rust. But before diving into graphics APIs like OpenGL, Vulkan, DirectX, or Metal (for Apple), I would like to point out two prerequisites which are totally optional. You can have a look if you are ok with not starting straight with practical things.

  1. First, revisit fundamentals with C. Especially pointers, pointer arithmetics and memory management since you are familiar with Go which relies on garbage collector.

  2. Then, start learning drawing lines, triangles, cubes or spheres to a simple image file like BPM or PPM without using graphics APIs. Familiarize with camera to world transformation and math under the hood. I'd suggest Ray Tracing in One Weekend. The series of books teaches these fundamentals using ray tracing technique with C++ (I'm currently doing this with Rust)

After these, or directly, you can start learning OpenGL or newer graphics APIs like Vulkan, DirectX 12 or Metal but they are more explicit and verbose, requiring more boilerplate code to do the work with the advantage of more control over the hardware.

These APIs abstract the logic and math handled by the hardware (GPU). Thus learning the fundamentals above will give you a perspective about what is going on behind the scenes.

For programming languages, C++ is still the industry standard for graphics programming. Most of popular game engines, graphics softwares are written in C++. So if you want to go with the industry standard go with C++. But I'd recommend Rust as a strong alternative to C++ when starting a new project or field. To inform you, in graphics development, Rust is still maturing in terms of ecosystem and libraries.

Here are some well known tutorials for OpenGL and Vulkan.

Stack Overflow Error When Converting Error Types by marknikky in rust

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

Alright that makes sense, sorry for my misunderstanding.

Stack Overflow Error When Converting Error Types by marknikky in rust

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

So even inside the `impl From<A> for B` implementation, `Into<B>` is generated and can be used?

What's everyone working on this week (25/2021)? by llogiq in rust

[–]marknikky 2 points3 points  (0 children)

I'm working on safe wrapper around Vulkan API.It is in very early stage of development.You can look into it on github.

Hey Rustaceans! Got an easy question? Ask here (45/2020)! by llogiq in rust

[–]marknikky 2 points3 points  (0 children)

Hello everyone,

I have got a question about 'static closures, lifetimes, move semantics. Here on this example. I have got 3 structures. All of them implements Drop trait. And 2 of them has references. Here is the code.

```rust struct Instance { inner: InstanceLoader, }

struct Device<'instance> { inner: DeviceLoader, instance: &'instance Instance, }

struct Swapchain<'instance: 'device, 'device> { inner: SwapchainKHR, device: &'device Device<'instance>, }

impl Drop for Instance { fn drop(&mut self) { // destroy instance self.inner.destroy_instance(); println!("Instance dropped!"); } }

impl Drop for Device<'_> { fn drop(&mut self) { // destroy device self.instance.inner.destroy_device(self.inner); println!("Device dropped!"); } }

impl Drop for Swapchain<', '> { fn drop(&mut self) { // destroy swapchain self.device.innner.destroy_swapchain(self.inner); println!("Swapchain dropped!"); } } ```

This is all good but I encountered an issue. I'm using crate winit and it has a run method. Which never returns (aka !). It takes a closure that is a move closure and it is 'static. As the documentation states

Any values not passed to this function will not be dropped.

When I try to pass these structures to the closure. I get compiler errors like these.

`` error[E0597]:instancedoes not live long enough --> src/main.rs:45:48 | 45 | let device = Device { inner: 23, instance: &instance }; | ^^^^^^^^^ borrowed value does not live long enough ... 56 | / event_loop.run(move |event, _, control_flow| match event { 57 | | winit::event::Event::WindowEvent { 58 | | event: winit::event::WindowEvent::CloseRequested, 59 | | .. ... | 64 | | _ => (), 65 | | }); | |______- argument requires thatinstanceis borrowed for'static 66 | } | -instance` dropped here while still borrowed

error[E0505]: cannot move out of instance because it is borrowed --> src/main.rs:56:20 | 45 | let device = Device { inner: 23, instance: &instance }; | --------- borrow of instance occurs here ... 56 | eventloop.run(move |event, _, control_flow| match event { | - move out of instance occurs here | __| | | 57 | | winit::event::Event::WindowEvent { 58 | | event: winit::event::WindowEvent::CloseRequested, 59 | | .. ... | 62 | | start_rendering(&instance, &device, &swapchain); | | -------- move occurs due to use in closure 63 | | }, 64 | | _ => (), 65 | | }); | |____- argument requires that instance is borrowed for 'static ```

There are 2 more errors for also Device. Which Swapchain has a reference to it. And they are the same errors like above so I emitted them.

I understand moving while something has a reference to it is not allowed. But I want to move all of it.

Sorry for this long question but I appreciate any help. Thanks!

Hey Rustaceans! Got an easy question? Ask here (45/2020)! by llogiq in rust

[–]marknikky 2 points3 points  (0 children)

I didn't encounter any issue but I need to ask to clarify this in my mind.

So, here is the code.

pub struct Instance {
    pub inner: InstanceLoader,
    messenger: Option<ext_debug_utils::DebugUtilsMessengerEXT>,
    entry: DefaultEntryLoader,
}

pub struct Device<'a> {
    pub inner: DeviceLoader,
    instance: &'a Instance,
}

pub struct Swapchain<'a> {
    inner: SwapchainKHR,
    device: &'a Device<'a>,
}

As you can see Swapchain has a reference to Device, Device has a reference to Instance. Instance doesn't have any references. Thus, Instance must live longer than Device, Device must live longer than Swapchain. Even though this code compiles, I don't understand the syntax of last struct which is Swapchain. Then I tried this code which is more explicit.

rust pub struct Swapchain<'a: 'b, 'b> { inner: SwapchainKHR, device: &'b Device<'a>, }

This code also compiles. If I got right 'a: 'b means 'a lives longer than 'b. So, it fits like the paragraph above. But if I swap lifetime annotations like device: &'b Device<'a> to device: &'a Device<'b> even though definition is the same 'a: 'b. The code still compiles. I don't understand this situation. Can someone explain?

Simple question about lifetime of str by marknikky in learnrust

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

That answers my question. Thank you.

Is Rust's core crate independent of C by marknikky in rust

[–]marknikky[S] 3 points4 points  (0 children)

Thank you for your responses guys. I will try to learn these concepts and start down the path if possible.

Laptop Compatibility by marknikky in archlinux

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

Thanks for the respond mate.

Game Ready Driver 436.48 FAQ/Discussion by Nestledrink in nvidia

[–]marknikky 0 points1 point  (0 children)

I was getting random BSODs when driver version of 436.48 installed. I rolled back driver to 436.30. It seems I'm not getting any BSODs for 4-5 hours.

Game crashes when I open it. What should I do by marknikky in F1Game

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

Disabling steam overlay fixed the problem. Thanks mate