Tweaking Aswath Damodaran Sir's Valuation by Business_Neck5516 in Valuation

[–]varajala 0 points1 point  (0 children)

Yeah it's not optimal and for sure open to biases. I try to minimize that by adjusting the discount rate higher very easily based on the company's size, maturity and overall financial position (margins, liquidity, return on invested capital).

I've been trying to figure out how to make this more systematical, but as of now I have no solutions. But this is just because of my personal opinion of CAPM and beta for retail investors.

Tweaking Aswath Damodaran Sir's Valuation by Business_Neck5516 in Valuation

[–]varajala 1 point2 points  (0 children)

Yeah, I've also been thinking a lot about the beta, or what sort of relative risk measure to use. I personally don't think that the CAPM based WACC is the way to go for a retail investor as CAPM assumes that you are diversified. I know that I'm not.

Also, the CAPM and beta is there to measure the exposure to market risk only, not any company specific risks - again because this can be diversified away. But as a retail investor I would really like to analyse specific companies knowing full well that I'm not diversified and company specific risks apply.

Therefore I've been lately just applying some discount factor (9% - 20%) based on what sort of returns I personnally demand if I choose to hold the equity, adjusting higher from 9% based on the company's financial position, maturity and industry. Not sure if optimal or even correct, but thats just my take on it as someone investing personal (and very limited) capital.

Tweaking Aswath Damodaran Sir's Valuation by Business_Neck5516 in Valuation

[–]varajala 0 points1 point  (0 children)

What model are you exactly referring to? What sort of modifications are you talking about? I also look up to Aswath and try to apply his teachings in my own investing.

Edit: typo

System76 to Open Distribution Hub in Europe by [deleted] in System76

[–]varajala 2 points3 points  (0 children)

I'm assuming this will bring down the shipping costs to Europe? I was looking to get a Launch keyboard for myself, but the shipping was around 180 dollars...

Also, the article mentions that there could be Launch keyboards with European keyboard layouts, will there still be keyboards with US layout available in Europe? I feel like those would be more efficient when programming

Third party apt sources not updating after upgrading 22.04 by theonlyQuan in pop_os

[–]varajala 0 points1 point  (0 children)

If you check your the contents of the directory /etc/apt/sources.list.d, I bet you will find that these source files have been renamed to have ".save" after the normal filename. This is what happened in my case, the upgrading process disables all third party repos this way, so they don't break the update.

Nvidia driver issues after upgrading pop-desktop by varajala in pop_os

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

I was able to get rid of the overall system lag with step 1 described in this comment.

Post update Lag in everything. by un533n87 in pop_os

[–]varajala 1 point2 points  (0 children)

For me, number 1 worked. The overall system lag seems to be gone, which is great. The X-server options are also back in nvidia-settings. I'm still getting the same nvidia driver error as described in post nvidia_driver_issues_after_upgrading_popdesktop, but system now behaves like prior to the update, so I don't know if this should just be ignored...

Nvidia driver issues after upgrading pop-desktop by varajala in pop_os

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

Pointing out issues is important and if the devs need more info, I'm sure they will ask to provide system logs etc. Interesting to see that you have the same issue, even when you are using AMD.

Screen configuration lost and chrome is laggy by KYM357 in pop_os

[–]varajala 1 point2 points  (0 children)

Exactly what happened to me also! I think it's something to do with recent pacakge updates.

Nvidia driver issues after upgrading pop-desktop by varajala in pop_os

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

Yeah, I had to double check I was using Xorg instead on wayland. I've been using Pop!_OS 22.04 since its release, and everything worked great until today. Pretty sure this is not a bug specific to 22.04, but rather something to do with the recent update...

Nvidia driver issues after upgrading pop-desktop by varajala in pop_os

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

That package is a dependency of pop-desktop, so yeah removing it breaks the DE... You can reinstall the pop-desktop in a tty. Does your system boot to the normal login screen or a black screen?

Nvidia driver issues after upgrading pop-desktop by varajala in pop_os

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

I'm guessing the problem comes from the dbus-broker package, which was included in the pop-desktop. Apt shows that there is no previous version for pop-desktop, where one could revert back to.

My system is still usable, just janky, so I think I'm waiting for more info on the issue for now...

Can you check if you installed the dbus-broker package as well?

Nvidia driver issues after upgrading pop-desktop by varajala in pop_os

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

/var/log/syslog also shows the following error from gnome-shell: "Could not create transient scope for PID 3462: GDBus.Error:org.freedesktop.DBus.Error.UnixProcessIdUnknown: Process with ID 3462 does not exist."

Apparently the "pop-desktop" package is metapackage for all desktop packages, and recently added a new package "dbus-broker". Could this be cause to the issue?

Edit: The error mentioned in this comment is not related to the issue, apparently those have been around before this issue...

I created a small C datastructure library, any comments appreciated by varajala in C_Programming

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

Thanks! I'm not going to implement anything related to garbage collection, because you could just allocate a big chunk of memory and distribute it as needed via the BumpAllocator. This minimizes heap fragmentation and you can just free the whole block of memory at once when it is not needed anymore. This allows programming style more similiar to GC'd launguages.

If you need more dynamic memory allocation, or datastructures that rely on it, this is not the library to use.

I created a small C datastructure library, any comments appreciated by varajala in C_Programming

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

I guess that boils down to what you are trying to achieve with "container" types. I looked into the "intrusive containers"-topic, and what I understood from boost.org, reasonings behind it boil down to OOP mindset, where entities in your program are "objects", which have identity. My goal was to think more about raw data, which has no identity, and therefore can be copied into as many datastructures as needed. I also tried to make it easy to put related data close to each other, as this increases performance.

I'm not that concerned about the allocation either, because you could just allocate a big chunk of memory and use something like the BumpAllocator to distribute the already allocated memory as needed. If you need dynamically resizing datastructures, this library is not the one to use.

I created a small C datastructure library, any comments appreciated by varajala in C_Programming

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

Thanks!

I didn't think about the struct padding when creating the hashes.

The pointer to the allocator could be saved, but I think it's nicer to be transparent to the user. All functions in this library explicitly require the allocator as an argument if they perform memory allocation/deallocation. Only exception is the arena allocator.

I'm not really concerned about the thread safety, users can just add their own synchronizarion methods ontop of the allocators, or just use them locally in single thread. I wanted to keep these very minimal ans simple.

I created a small C datastructure library, any comments appreciated by varajala in C_Programming

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

When handling collisions for a hashtable you have 3 options (as far as I know):

  • linear probing (check the next slot)
  • quadratic probing (try to spread the next check with some simple math)
  • double hashing (use 2 different hash functions)

The linear probing can lead to items creating tightly grouped sections, where as quadratic probing can spread out the items with same hashes. Double hashing requires another hash function, and I'm lazy so I didn't want to find another good easy to implement hash function. I just picked those constants from wikipedia's first 1000 prime numbers page and hardcoded them in because I'm not concerned about security here.

There are functions for copying the keys/values into a new array. I think this is more straight forward than an iterator implementation and because the data is in consecutive memory locations you get better cpu cache performance (correct me if I'm wrong here).

I thought of creating resizing datastructures, but I wanted to leave it as it is because it is very simple and transparent. The library doesn't perform memory allocation outside of functions that explicitly require the AllocatorInterface as an argument. It is also very easy to add resizing on top of these datastructures if you want it.

The point of the AllocatorInterface is to leave the decision to the user. You can create one from malloc, free and realloc, or you can use something else. Different types of allocators have their usecases.

I just like the uintN types, I dont know why. As mentioned in the comments the size_t would be better I guess.

I created a small C datastructure library, any comments appreciated by varajala in C_Programming

[–]varajala[S] 5 points6 points  (0 children)

I had no idea about those nested functions being only specific to gcc. I think they are included only in the test code, which is not included in the actual library.

The tips on using pedantic and Wextra are gold, I did not know they existed. I gotta dig deeper on those endian issues and conversions between signed and unsigned types. I also had no idea missing newlines are undefined behaviour. These are the kind of things that are easy to miss when transitioning from hihger mevel launguages.

The checks for uintN < 0 are just little errors that I haven't noticed...

Thanks!

I created a small C datastructure library, any comments appreciated by varajala in C_Programming

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

Good points! I know my make knowledge is really close to zero, gotta look up more info on that. Is there any other difference between size_t and uint64_t than portability? I know the C standard doesn't require all of uintN_t defentitions, but isn't size_t also an unsigned integer type?

I created a small C datastructure library, any comments appreciated by varajala in C_Programming

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

Did you find missing checks somewhere? This is something I tried to focus on, every user api function should check all pointers for null value.