pwnna

joined 1 year ago
 
 
[–] pwnna@lemmy.ca 8 points 7 months ago

I see we have moved the goal post to a "technical recession" now.

[–] pwnna@lemmy.ca 2 points 8 months ago

Ah so the health care system is so bad we have to fight for it now. At this point it is only a matter of time until they make us pay for it. Then it'll be further enshittified. Things are great 😐

 

I have a Fujifilm camera and decent lens that can do 600mm FF equiv is not cheap. I'm wondering what is the best option for bird photography at that range? There are some tiny 1/2.3 compact cameras like the Sony hx99 that doesn't seem too good. There also seem to be an option of picking up a m43 camera with a 300mm (600mm equivalent) lens. What is everyone's favorite options?

[–] pwnna@lemmy.ca 1 points 1 year ago

Deal is dead?

[–] pwnna@lemmy.ca 3 points 1 year ago

It also tears significantly in my experience, which is pretty unusable....

[–] pwnna@lemmy.ca 3 points 1 year ago

Some people work part time tho because the companies don't want to pay benefits....

[–] pwnna@lemmy.ca 2 points 1 year ago

Yup this is basically it. I even have people arguing with me here the moment i mention the word property tax. Unfortunately a lot of people would vote against their own long term interest in terms of services, community well being etc. for short term capital gains (and in the case of real estate, that's tax free, lol).

This is perhaps the greatest problem facing us in the 21st century democracy as the world has become more and more complex and the cause and effects of things becomes ever more debatable.

[–] pwnna@lemmy.ca 4 points 1 year ago (1 children)

Yeah but it is literally the biggest thing we should do as mentioned by the report that would address almost 40% of the problem. I'm not sure why are we are debating that we shouldn't do this considering that property tax rates are 3x lower in GTA than everywhere else in Ontario, and that it fixes a large part of the problem.

Basically, before we take the initial, and most impactful step that is uncomfortable but necessary, we are proposing future things to do that is less painful sounding but doesn't have clear returns. We all know why: people don't want to pay more and want to make it someone else's problem instead. Even the report acknowledges this political challenge. This conversation is basically the evidence for that.

[–] pwnna@lemmy.ca 1 points 1 year ago

Not sure how you got to that conclusion. I said wealth, not income. Wealth inequality is not the same as income inequality and taxing incoming doesn't fix wealth inequality. Neither does taxing consumption, as most people tend to horde their wealth in some sort of asset.

[–] pwnna@lemmy.ca 2 points 1 year ago

Exactly. If anything we need to catch up to make sure all of us home owners pay our fair share.

[–] pwnna@lemmy.ca 1 points 1 year ago (2 children)

Sure groceries are exempt, but there is a limit on how much you can reasonably spend. At the rate housing and asset prices are, there appears no limit on how much your wealth can grow. So instead of using a proxy metric (spending) to tax people with wealth, just go after it directly instead.

[–] pwnna@lemmy.ca 20 points 1 year ago (10 children)

Sales tax uniformly applies to everyone by the same absolute amount but relatively affects poorer people more. The city should just raise property taxes instead. May help reduce the housing cost as well which would make the city more affordable.

 

I have this code where I have a class MyElement that holds a MyData<UnderlyingData> that's constructed during the constructor:

#include <atomic>
#include <iostream>
#include <vector>

struct UnderlyingData {
  int a;
  int b;

  UnderlyingData(int _a, int _b) : a(_a), b(_b) {}
};

template <typename T> class MyData {
public:
  std::atomic<T> data_;

  template <typename... Args>
  MyData(Args &&...args) : data_(T(std::forward<Args>(args)...)) {}
};

class MyElement {
public:
  int c;
  MyData<UnderlyingData> mydata;

  explicit MyElement(int _c) : c(_c), mydata(0, 6) {}
};

int main() {
  std::vector<MyElement> arr;
  arr.emplace_back(5);

  std::cout << arr.at(0).c << " " << arr.at(0).mydata.data_.load().a << " "
            << arr.at(0).mydata.data_.load().b << "\n";

  return 0;
}

As you can see, MyData<UnderlyingData> holds an atomic<UnderlyingData> and the constructor of MyData attempts to perfect forward to the UnderlyingData through the atomic. This code works if I try to construct a MyData<UnderlyingData> variable manually, or a MyElement variable, like this:

  MyElement element(5);
  std::cout << element.c << " " << element.mydata.data_.load().b << "\n";

However, when I put MyElement into a vector and use either emplace_back or push_back(MyElement(5)), I get this cryptic error:

test.cpp: In instantiation of ‘MyData<T>::MyData(Args&& ...) [with Args = {MyData<UnderlyingData>}; T = UnderlyingData]’:
test.cpp:20:7:   required from ‘void std::_Construct(_Tp*, _Args&& ...) [with _Tp = MyElement; _Args = {MyElement}]’
/usr/include/c++/11/bits/stl_uninitialized.h:92:18:   required from ‘static _ForwardIterator std::__uninitialized_copy<_TrivialValueTypes>::__uninit_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = std::move_iterator<MyElement*>; _ForwardIterator = MyElement*; bool _TrivialValueTypes = false]’
/usr/include/c++/11/bits/stl_uninitialized.h:151:15:   required from ‘_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = std::move_iterator<MyElement*>; _ForwardIterator = MyElement*]’
/usr/include/c++/11/bits/stl_uninitialized.h:333:37:   required from ‘_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, std::allocator<_Tp>&) [with _InputIterator = std::move_iterator<MyElement*>; _ForwardIterator = MyElement*; _Tp = MyElement]’
/usr/include/c++/11/bits/stl_uninitialized.h:355:2:   required from ‘_ForwardIterator std::__uninitialized_move_if_noexcept_a(_InputIterator, _InputIterator, _ForwardIterator, _Allocator&) [with _InputIterator = MyElement*; _ForwardIterator = MyElement*; _Allocator = std::allocator<MyElement>]’
/usr/include/c++/11/bits/vector.tcc:474:3:   required from ‘void std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator, _Args&& ...) [with _Args = {int}; _Tp = MyElement; _Alloc = std::allocator<MyElement>; std::vector<_Tp, _Alloc>::iterator = std::vector<MyElement>::iterator]’
/usr/include/c++/11/bits/vector.tcc:121:21:   required from ‘std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {int}; _Tp = MyElement; _Alloc = std::allocator<MyElement>; std::vector<_Tp, _Alloc>::reference = MyElement&]’
test.cpp:30:19:   required from here
test.cpp:17:34: error: no matching function for call to ‘UnderlyingData::UnderlyingData(MyData<UnderlyingData>)’
   17 |   MyData(Args &&...args) : data_(T(std::forward<Args>(args)...)) {}
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
test.cpp:9:3: note: candidate: ‘UnderlyingData::UnderlyingData(int, int)’
    9 |   UnderlyingData(int _a, int _b) : a(_a), b(_b) {}
      |   ^~~~~~~~~~~~~~
test.cpp:9:3: note:   candidate expects 2 arguments, 1 provided
test.cpp:5:8: note: candidate: ‘constexpr UnderlyingData::UnderlyingData(const UnderlyingData&)’
    5 | struct UnderlyingData {
      |        ^~~~~~~~~~~~~~
test.cpp:5:8: note:   no known conversion for argument 1 from ‘MyData<UnderlyingData>’ to ‘const UnderlyingData&’
test.cpp:5:8: note: candidate: ‘constexpr UnderlyingData::UnderlyingData(UnderlyingData&&)’
test.cpp:5:8: note:   no known conversion for argument 1 from ‘MyData<UnderlyingData>’ to ‘UnderlyingData&&’

I've tried a number of permutations and can't seem to figure it out either. I don't understand why the constructor inferred seems to be UnderlyingData::UnderlyingData(MyData<UnderlyingData>) as I'm just passing two numbers to it... Any advice I can get is much appreciated.

 

I recently bought a refurbished x390. Got it and found the battery had one charge cycle on it. i5-8365U, 16GB of RAM, 256GB SSD, 1920x1080 IPS. A very nice machine as a backup to the family travel x1 nano.

[–] pwnna@lemmy.ca 2 points 1 year ago (1 children)

Level of experience?

 

I see a post here: https://lemmy.ca/post/921003. There is only one comment from me, but on lemmy.ml there are more comments and votes. Why is this the case?

view more: next ›