KaKi87

joined 2 years ago
[–] KaKi87@sh.itjust.works 1 points 2 years ago

Tell me about it.

[–] KaKi87@sh.itjust.works 1 points 2 years ago (3 children)

I’m not even sure what blogging is, much less microblogging

It's simple, actually : blogging is posting large content, microblogging is posting short content (hence micro).

That's why Mastodon is microblogging, for example : because their character limit is 500.

https://writefreely.org/ might be the fediverse blogging platform you’re looking for

It would be, except it doesn't allow any interaction between authors and readers, making federation almost pointless, it also lacks attachments hosting and other blog stuff.

There's also Plume, which has slightly more features, but still lacks a lot, isn't actively developed and is currently suffering from massive spam.

So, to conclude, there currently isn't any interesting federated blogging platform.

[–] KaKi87@sh.itjust.works 2 points 2 years ago (5 children)

What do you mean by better microblogging support ?

By the way, microblogging ≠ blogging. Speaking of which, Lemmy's post character limit is 50K. What's Kbin's ?

[–] KaKi87@sh.itjust.works 2 points 2 years ago (7 children)

Hi, I'm also interested in using Lemmy as a blog. Did you explore this further ? Thanks

[–] KaKi87@sh.itjust.works 0 points 2 years ago

True, but less convenient than using an array in the first place.

[–] KaKi87@sh.itjust.works 0 points 2 years ago

I used to enjoy the flexibility that JS provides. And IDEs do a pretty good job of filling the holes!

Exactly.

My last project, I went all in on typescript. And I have caught so many more errors before even compiling. It’s like having tests. It gives a hell of a lot more confidence.

I can understand that too. Although, IDEs also catch a lot of type-related errors in vanilla JS.

[–] KaKi87@sh.itjust.works 2 points 2 years ago (2 children)

I'm not a TypeScript person, sorry. 😅

[–] KaKi87@sh.itjust.works 2 points 2 years ago* (last edited 2 years ago)

Hi,

I'm feeling the same and wondering the same, did you ended up trying this, and if yes, do you have some advice on how to manage this particular use case ?

Thanks

[–] KaKi87@sh.itjust.works 1 points 2 years ago (1 children)

dictionary/array hybrid

That's a name, thanks !

Serialization might not behave as you would expect (JSON.stringify)

Actually, my implementation idea relying on Proxy don't have this issue.

As for other implementations, they do have this issue, but as they say, hybrid array use cases don't generally involve the need to stringify, and even when they do, using Object.defineProperty with { enumerable: false } (or replacing the toJSON method) would fix it.

3rd-party functions might not be able to deal with your data structure properly (again, potentially unexpected behavior). You can’t easily access array methods (find, filter, map etc).

Actually, it would still be an Array, so no, there shouldn't be any problems, and yes, those methods definitely work, which is precisely what said I want to achieve.

How do you distinguish between ID access and index access?

If your IDs are integers then there is no need for an hybrid at all, precisely because all you have to do is put each item at the same position as their ID.

It’s harder to reason about access time of lookups. However, this might not be a concern of yours.

I'll definitely run benchmarks so that users would be aware of performance losses, if any. But use cases of hybrid arrays are mostly small datasets so it usually shouldn't be a concern indeed.

It may cause confusion if you’re working with other developers.

If I implement this, it will be as a documented and commented package, so it shouldn't be that much of a problem.

[–] KaKi87@sh.itjust.works 2 points 2 years ago

I just found two packages that do the same thing as I did :

The last one comes with a blog post explaining the same things I did !

[–] KaKi87@sh.itjust.works 1 points 2 years ago* (last edited 2 years ago)

My goal is to be able to both easily get an item by ID (using data[id]) and easily get an item by properties (using data.find()).

Meanwhile, just like Object requires Object.values(object) before calling find, Map requires [...map.values()], and it also have the additional inconvenient of requiring a call to map.get to get an item by ID, so no, it's even worse for my goal, but thanks.

8
submitted 2 years ago* (last edited 2 years ago) by KaKi87@sh.itjust.works to c/programming@programming.dev
 

Hi !

Given the following sample items : | ID | First name | Age | | ---------- | ---------- |


| | xvZwiCpi | Naomi | 42 | | Nzd9UsGT | Naomi | 24 | | QiDXP2wA | Thea | 53 | | JpYeAY7H | Jeremy | 35 |

I can store these in an array :

const data = [
  { id: 'xvZwiCpi', firstName: 'Frederic', age: 42 },
  { id: 'Nzd9UsGT', firstName: 'Naomi', age: 24 },
  { id: 'QiDXP2wA', firstName: 'Thea', age: 53 },
  { id: 'JpYeAY7H', firstName: 'Mathew', age: 35 }
];

Thus access them the same way by ID :

console.log(data.find(item => item.id === 'xvZwiCpi'));

And by properties :

console.log(data.find(item => item.firstName === 'Frederic').id);

Or I can store these in an object :

const data = {
  'xvZwiCpi': { firstName: 'Frederic', age: 42 },
  'Nzd9UsGT': { firstName: 'Naomi', age: 24 },
  'QiDXP2wA': { firstName: 'Thea', age: 53 },
  'JpYeAY7H': { firstName: 'Mathew', age: 35 }
};

Thus more easily access properties by ID :

console.log(data['xvZwiCpi'].firstName);

But more hardly access ID by properties :

console.log(Object.entries(data).find(([id, item]) => item.firstName = 'Frederic')[0]);

I could duplicate IDs :

const data = {
  'xvZwiCpi': { id: 'xvZwiCpi', firstName: 'Frederic', age: 42 },
  'Nzd9UsGT': { id: 'Nzd9UsGT', firstName: 'Naomi', age: 24 },
  'QiDXP2wA': { id: 'QiDXP2wA', firstName: 'Thea', age: 53 },
  'JpYeAY7H': { id: 'JpYeAY7H', firstName: 'Mathew', age: 35 }
};

To slightly simplify that previous line :

console.log(Object.values(data).find(item => item.firstName = 'Frederic').id);

But what if a single variable type could allow doing both operations easily ?

console.log(data['xvZwiCpi'].firstName);
console.log(data.find(item => item.firstName === 'Frederic').id);

Does that exist ?

If not, I'm thinking about implementing it that way :

const data = new Proxy([
  { id: 'xvZwiCpi', firstName: 'Frederic', age: 42 },
  { id: 'Nzd9UsGT', firstName: 'Naomi', age: 24 },
  { id: 'QiDXP2wA', firstName: 'Thea', age: 53 },
  { id: 'JpYeAY7H', firstName: 'Mathew', age: 35 }
], {
    get: (array, property) =>
        array[property]
        ||
        array.find(item => item.id === property)
});

In which case I'd put it in a lib, but how would this be named ?

I'd also make a second implementation that would enforce ID uniqueness and use Map to map IDs with indexes instead of running find : while the first implementation would be fine for static data, the second one would be more suitable for dynamic data.

Would this make sense ?

Thanks

 

Hello,

Does Pop OS have a multitask view feature that I could assign a shortcut to, like illustrated here on Linux Mint ?

Thanks

view more: next ›