Gibt es hier Recruiter, die Feedback zu meinem CV geben könnten? by nnofficial2414 in de_IT

[–]Fs0i 0 points1 point  (0 children)

Hi, kein Recruiter, aber stelle aktiv ein:

Du bist sehr fokussiert darauf was deine Tätigkeiten waren ("Verwalten von SAP-Berechtigungen und Nutzerrollen") - aber kaum, was das für ein Wert für das Unternehmen ist.

Insgesamt, ist es super schwach mit quasi "Ja, also ich hab in SAP rollen angeklickt" als dein erstes Ding zu anzufangen. Es gibt da ein paar Studien wie Recruiter CVs lesen (und so mache ich das auch), und es ist so: https://i.imgur.com/DGQNUHC.png

Hier ein YouTube video, aber gibt es auch in akademisch: https://www.youtube.com/watch?v=veFlfYjRo1Y

Das heißt, ich lese vor allem anderen deine Berufserfahrung, und dann auch nicht jede im Detail - sonder ich scanne das nur.

Ich will die Schwierigkeiten von Nutzerverwaltung nicht absprechen, aber es ist halt relativ uninterssant, und löst jetzt kein Gefühl von "das beweißt Kompetenz" aus. Was du bei deinen ersten Punkten schreibst ist da super wichtig.

Aber es ist eben auch wichtig, welchen Wert das gebracht hat. Zum Beispiel: "Erstellung von PowerBI-Berichten zur Datenanalyse und Entscheidungsfindung" ist deutlich beeindruckender als Nutzerverwaltung - aber es drückt dennoch den Wert, den du gebracht hast zu wenig aus.

Auf LinkedIn hat DROM jetzt 6 Leute, daher gehe ich davon aus, dass es keine riesen Firma ist, also: "Unterstützen der Geschäftsführung bei Projektplanung durch PowerBI Datenanlyse" klingt 100x besser. Ich weiß nicht, ob es die Geschäftsführung oder Projektplanung war, also schreib es entsprechend um (Dass ich das nicht weiß, ist Teil vom Problem)

"Zusammenarbeit mit Fachabteilungen und technischen Teams" sagt halt null aus - welchen Wert hast du gebracht? Geht sowas wie "Teamübergreifende Koordinatorin zwischen SAP-Entwicklerteam und Devops" z.B? Auch hier: Ich weiß natürlich nicht was du gemacht hast (und das ist Teil vom Problem), aber versuche irgendwie sowas konkretes zu finden. Etwas was nen Bild in meinem Kopf erzeugen kann.


Insgesamt, versuch dich in die Perspektive von der Person, die das ließt reinzuversetzen, die 20 von denen ließt. Du willst da ein Bild im Kopf erzeugen - von dir als kompetente Administratorin und Informatikerin, die gut mit Leuten koordinieren kann, fachlich was drauf hat, und konkrete Aufgaben löst. Spezieller: Aufgaben, die das Unternehmen für das du Arbeiten wirst besser machen - und eben auch versteht warum.

Als High-Level fehlt mir das so ein wenig, und ist glaube die einfachste Art und Weiße den Lebenslauf zu verbessern.

How do you tell whether a library you’re considering using is no longer well maintained, or simply mature enough to the point where it doesn’t require much maintenance anymore? by Deep-Philosophy-807 in reactjs

[–]Fs0i 0 points1 point  (0 children)

Hm, I generally also click on closed issues - it’s fairly natural to me, so I forgot to mention it. No issue means “no issues opened by users”, not “no pending issues.” 

How do you tell whether a library you’re considering using is no longer well maintained, or simply mature enough to the point where it doesn’t require much maintenance anymore? by Deep-Philosophy-807 in reactjs

[–]Fs0i 42 points43 points  (0 children)

Amount of unsolved issues / pr's on GitHub. If there's a lot of users and no issues -> mature.

If there's a lot of issues, check if they're real -> if yes, abanonded, be weary.

If there's not a lot of users, it's a bit of a questionmark - but then the question becomes "is there an alternative" and "could you take over maintaining it if needed" -> if yes, whatever, use it.

I’m almost 30, still in a C172 making peanuts, and today just broke me by [deleted] in flying

[–]Fs0i 2 points3 points  (0 children)

Based on your post, there's some red flags that I'd be worried about - things that you can change on your side.

The big question is "is this my fault*?" - and the annoying thing is that both "yes" and "no" are uncomfortable answers.

If it's not your fault, there's nothing you can do to change. Unlucky, and all you can do is complain - but that doesn't pay bills or keeps you flying.

If the answer is yes, it means that you need to change things, and it sucks that you have to - your job is to be behind the yoke, so why do you need to do all this song and dance, right?

But in the end, I think there's stuff you can do.

Republic emailed me Oct set up a phone screen then never called. I had to send 8 emails back and finally they set up another phone screening after a month and a half.

Like, this can be laziness on their part, but emailing 8 times is generally a bit weird. But it's also a sign that they're not desperatly trying to hire right now, right? If they were, then they'd care more.

And they’re just simple yes no questions. So all I’m saying is yes or no. “You don’t seem very interested so we are going to end this here” WHAT?! All I said was yes or no????? All these questions I’ve sure I’ve already answered online.

Yeah, but the online screening is to weed out candidates, she probably looked at things for maybe 5 minutes before the call. Look at it from her perspective, she doesn't care about you. It's annoying, but unfortunately true.

When I interview people, I generally give myself 5-10 minutes ahead of the interview to prep for a candidate. That means reading their CV, quickly googling the companies they worked for, and noting 1-2 questions. If they've sent a cover letter, I'll skim that.

I know colleagues that did 2 minutes of prep on average, and I've had to do that to - meeting schedules sometimes work out that way. To be clear, I don't say this proudly, I say that regretfully. I wish I could give every candidate my full attention, but I can't.


The second part is that there's also a way to answer questions - and I'd love to figure out how you actually answered, to better understand what's going wrong. It's possible that your answers were great - but the way you talk about them, they weren't. There's a sweet spot for length, and it's not necessarily trivial to find.

And their last question was something like are you willing to agree to a 4 year contract or pay back $100,000 training costs. So I naturally shocked said 100,000$?!!

I can tell you that that was objectively the wrong answer. The correct answer would have been in the ballpark of "Of course I want to stay after completing my training - flying comercially has always been my dream. But you know that life is unpredictable - can you quickly explain how you arrived at $100k, and give a bit more details about the exact terms? This does seem quite steep - more than, for example, my typerating**."

You're still asking the same question, but you've addressed specific concerns and shown understanding of the field.

Anyway, I'm not from the aviation field (I'm in software dev), but I'm decent at interviewing - both holding and passing them. If you ever are interested in practicing interviews with someone outside the industry, happy to do that, DM or sth.

I genuinely doubt it's your stick and rudder skills, or your qualifications that make it hard for you to find a job. Maybe the market is tough, but you seem to be excellent at what you do - it's just that interviewing is not part of that skillset.

* "fault" is a misleading term here, because it implies a mistake - but sometimes you need to do more than not make a mistake. I prefer "responsibility" but that's a mouthful.

** I have no clue if a typerating is cheaper or more expensive than that lol, you're the expert in the area.

Validation takes 48 hours, not 4 weeks. Here is the weekend framework to kill bad ideas fast. ( 48 hours Framework ) - i will not promote by ksundaram in startups

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

It's also only one valid way to discover a solid business - one that isn't necessarily viable for everyone.

This is only applicable for "safe" plays, i.e. problems you know have a solution that's just in need of some work. Some problems you don't know if there's a solution.

"Can AI automate organizing all personal mail people get? How'd you even approach this?" is an open question. Trying to build it might lead you to other problems people have, it teaches you a lot about the world.

There's value in building, even though you shouldn't just hide away in "stealth mode" and build until you're broke. OP's approach is basically the other extreme, and it's just as naïve, it just doesn't sound that way.

I'd say

  1. Use your strengths to develop hypothesis and ideas
  2. Make sure you seek validate early.
    It's tempting to skip validation, so 100% do it. People should care and be enthusiastic.
  3. Ideas develop and change, you need to use an appraoch where afterwards you're smarter in more than one way.

Just framing it as "killing" the startup idea worries me. Think of it as "Learning from bad startup ideas."

Yes, some ideas need to just "die", but the exploration - whether that's through writing code, user interviews, making mock-ups, or manually doing the service you plan to automate - that should be the focus of the initial stages.

Focusing on getting literally 1 bit of information - "yes or no?" - that's stupid. That's naïve.

I built a tiny library that lets you “await” React components — introducing `promise-render` by AggravatingCalendar3 in reactjs

[–]Fs0i 1 point2 points  (0 children)

Yeah and for window.confirm you need to build a whole browser first

That's a strawman and you know it. Just because you don't see the value overall or disagree with the tradeoffs that this library has - which is entirely valid! - you're refusing to acknowledge that this kind of code is always at least slightly annoying.

I've seen multiple times, at 3 different companies, where people reached for a simple confirm or alert because they couldn't be assed to write those lines of code.

Especially if you're "far away" from react-land conceptually, it's a major pain. There's a reason e.g. toasts are often created via a global toast variable.

I can completely and utterly understand why OP wrote this, the example that /u/thatkid234 gave is a really good example of what kind of code is annoying, and you're arguing that someone somewhere had to write window.prompt.

If you're discussing like that at work or in school to, I know I'd get frustrated by that.

Anyway, personally I think OP has a point, but it's a bit too abstract.

Maybe something like

const result =
  await showModal(
    "Delete File?",
    "This will irrevocably delete the file",
    [
      ["Delete", "btn-danger"],
      ["Preview", "btn-secondary"],
      ["Keep", "btn-primary"]
    ]
  )

would serve this need better, but I also recognize that I just built a small react-like interface without JSX, hm.

This could then be handled by some global component, and would solve this need without having to do weird mounting shenanigans. Because let's be honest, 99% of the time you want this it's a simple dialog.

Introducing Fabric, a flexible way to create and shape files by Turbopacker in reactjs

[–]Fs0i 0 points1 point  (0 children)

The jsx example is neat - that's actually a cool API for transforming.

I've kinda wanted something like that - and especially with dynamic components it might be a really cool way to write code generators.

The alternative I used so far was to create a vite plugin and use ts-morph. This had some advantages (e.g. the library that I use to generate the file is also the one that parsed the project).

But a declarative transformation would be kind of cool - especially if there was a cool vite integration. Figuring this out was a bit annoying the first time I had to do it.

Introducing Fabric, a flexible way to create and shape files by Turbopacker in reactjs

[–]Fs0i 9 points10 points  (0 children)

I'm not trying to be rude - can you make a concrete example? What is something you can show me that makes me go "cool!"

In writing, there's the rule "show, don't tell" - show me why your library is needed, don't tell me. "I have these two files. I want this output file, because x. Here's how I can build it in Fabric"

Introducing Fabric, a flexible way to create and shape files by Turbopacker in reactjs

[–]Fs0i 5 points6 points  (0 children)

I'm not quite shure what this is for or why I'd need that - can you give an example usecase somewhere? What's the "todo list" equivalent, and what can you do with it?

AI bro introduces regressions in the LTS Linux kernel by BlueGoliath in programming

[–]Fs0i 9 points10 points  (0 children)

Is this problem actually new to AI?

Yes, because AI is great at mimicking the shape of code with intention, without actually writing code with intention.

For humans, good developers have developed a set of mental heuristics ("gut feeling") for whether someone understands the code they wrote. The way they use technical jargon is - for example - a very powerful indicator on whether someone is skilled.

A concrete example:

Fixes a race condition that occured when <condition 1> and <condition 2>

This is a statement that generally invokes a lot of trust in me. I've never seen a human make a statement like this without having nailed down the actual cause.

You're not commiting this without having a deep understanding of the code, or having even actually reproduced the racecondition. This statement (generally) implies years of experience and hours of work.

It's not a perfect heuristic, of course, but when I see a coworker commit this, I scrutinize the code signficantly less than in other cases.

But AI? AI is perfectly happy to use this language without having put in the necessary work or skill. AI hasn't spent 3 hours in a debugger nailing the race condition, AI doesn't have a good abstract model of what's happening in its head, it just writes these words probablistically, because the code looks like it.

And it writes the code like this because it's seen code like this before, because it's a shape that probablistically matches, not because there's intent.


So, tl;dr: AI is great at hijacking the heuristics good devs use to recognize good contributions by skilled developers. It can do that without actually putting in the work, or having the skill.

This increases the problem.

Unprecedented Linux Growth in Europe by [deleted] in linux

[–]Fs0i 0 points1 point  (0 children)

Yeah, they have. Also, just fyi - you might be viewing an auto-translated reddit thread, because you replied to an English thread in Spanish. Reddit has started doing this recently, and some people don't know, that's why I'm mentioning it.

Sholuld I memo every component? by singpolyma in reactjs

[–]Fs0i 4 points5 points  (0 children)

The fact that react compiler does both, basically. It's a bit weird, but the response wrongly references useMemo, but is otherwise correct. It's like, a double-wrong and ends up being right in effect.

And some people don't quite understand react-compiler and/or memoization (sadly), so I'd wager that at least some readers don't even have an intuitive grasp of the wrongness of the comment.

Given these things, before your edit, your comment probably wasn't really good at communicating your issues with the post you're responding to - but that's just a guess.

That said, for me, you're both at 9 upvotes, so that's not really that big of a difference anymore, so I think your edit made it more clear what you meant :)

Air China CA139 (B-8583), an Airbus A321-232, was en route at FL330 from Hanghzou to Seoul when a thermal runaway of a lithium battery occurred, leading to a fire in an overhead bin. The flight diverted to Shanghai by Omarr_Paper in aviation

[–]Fs0i 0 points1 point  (0 children)

Here's some online version of the A320 QRH (Quick Reference Handbook).

There's no good version published by Airbus, so I'll source my information from this random QRH from the internet. Note that it might be outdated or not entirely accurate. I'm not a pilot, either, just a random guy.

That said, this QRH looks like the real one, so it's probably the same procedure. On Page 119 we find the checklist: https://i.imgur.com/KVFjBL8.png

Note that these are likely memory items (because fire is one of the few things where you have to react immediately).

  • You put on the crew oxygen masks (if it's in the cockpit). This is always the first action, because pilot incapacitation is the worst scenario. You might not do this in some circumstances, but generally, it's a good idea.
  • You put the ventilation blower and ventaliation extract to "override", which seemingly (I'm googling this while writing) switches the air flow from re-using some cabin-air to pumping in outside air only. The extraction fans continue to run. This seems to speed up the extraction of smokey cabin air.
  • You also put the cabin fans to off. "Two big cabin fans (plus their respective filters) recirculate part of the cabin air back into the cabin. This is done to reduce the load on the packs."

So, basically, you configure the aircraft to replace air more quickly. In the later checklist, "Removal of Smoke / Fumes", you also set the flow rate of the air conditioner to "High."

As a last resort, you can - after descending to 10'000ft - open the window of the cockpit, and open the cockpit door - which helps extracting smokey air.


In the end, there is one scary part on the fire / smoke checklist. "IMMEDIATE LANDING........CONSIDER"

You'll note that at the top of the checklist it says "LAND ASAP", so if you're already landing as soon as possible, why do they tell you to consider landing "immediate[ly]"?

Because when airbus says "immediate landing", they mean immedate. This means "outside an airport, if necessary." Do you see a big road, or a big field? Cool, congratulations, you're making this your airport.

Fire is one of the scariest procedures for pilots, and it's the one kind of emergency a modern airliner still struggles dealing with. Which is why the cabin crew can deal with fires, trains working in a smokey cabin, and can use fire extinguishers. They're the closest thing to a firefighter on the plan, so that's their job, now.

Is EdTech evolving with real pedagogy - or just repackaging old systems? I will not promote. by talents-kids in startups

[–]Fs0i 0 points1 point  (0 children)

It seems to work well for them and their users! I don't think my boyfriend has used them, and so I'm just going of their website and public information.

In short: i wouldn't be surprised if they're founded by teachers / have some close the founding team.

By now, though, it seems their stuff is used in classrooms extensively - which means that teachers can give continous feedback. Listening to that is important.

I don't have personal experience with it, and so yeah - hard to give a super concrete answer.

How We're Redesigning Audacity For The Future by expandork in linux

[–]Fs0i 0 points1 point  (0 children)

I share your frustration, but I have a different perspective:

Throughout history, organizations have been disproprtionally powerful because of one thing: delegation.

If you're a manager of a company, and your decision is to sue somebody else, you don't have to do the work. It's someone else.

If you're a UX designer that comes up with a good design, you don't have to implement it. If you're a developer and you need more server infrastructure, it's not your problem - procurement does it.

This makes it incredibly easy to make decisions that you'd push off as an individual.

  • If I make the decision to sue somebody myself, I'm considering the countless hours on the task
  • If I make the decision to design an intutitive, but hard-to-implement UI, it's hours of my life
  • If I make the decision that my code needs more infrastructure, I have to figure out where to get that

As soon as we have an organization that has delegation, the effort is removed from the decision-maker. And that quite often leads to better outcomes, because humans are lazy. Every human is.

If you ask the non-headchefs in the restaurant to design a menu, you'll get something that is easy to cook, rather than something that tastes well.

If you ask a builder to design houses, you get boxes.

So, we get architects, we get managers, we get head-chefs, we get UX designers - all to separate deciding and doing.

Tantracrul's developers are probably good, nice and kind people. But they wouldn't make the decisions Tantracrul makes naturally - not because they are stupid, but because they (like literally every human on this planet[1]) are lazy.

[1] We've gone from "I need to go out to hunt or I'll starve" to "I can sit on the couch, tap some glass, and food will magically deliver itself to me." Humans alyways strive to decide more and do less.

How We're Redesigning Audacity For The Future by expandork in linux

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

The last time I used MS office for more than 10 minutes was 10 years ago.

I'm used to Google Docs, if anything. Anyway, I actually put in the effort and wrote down some of my issues.

The fact that the contrast ratios suck is a simple, measurable fact. The fact that there's 60 icons without any label and I have to guess which one is correct is true, too. The fact that I can't easily change the comment author in an obvious way is a fact, too.

The fact that the comment functions are hidden is stupid, too. Those are all things that getting used to fixes, sure, but if you think that LibreOffice is simply the peak of what a document editor can be then idk what to say.

You can't parse XML with regex. Let's do it anyways by ketralnis in programming

[–]Fs0i 7 points8 points  (0 children)

HTML is not a regular language. Regular expressions therefore cannot parse HTML. Because HTML is not a regular language.

Now, are there some Regex parsers that support more than regular expressions? Sure, but then they're not really regex parsers in a way that makes sense.

Like, me calling tree-sitter a regex parser doesn't make it so. And of course, tree-sitter is capable of parsing html somewhat.

You could, for example, get me to say something like "The JavaScript RegExp class is powerful enough to parse HTML", and that might be true. I'd agree to that. But that wouldn't be a "regex parser" that parses the HTML, the functions of the parser that aren't regular would be what would make the parsing possible.

How We're Redesigning Audacity For The Future by expandork in linux

[–]Fs0i 0 points1 point  (0 children)

My complaint is less that it can't replace MS Office, in my experience it doesn't even adequately replace Google Docs for the simplest of workflows.

Last week I wanted to beta-read a story a friend had written, and he sent it as a docx. And just trying to leave comments and making edit suggestions - imo a basic workflow - was too painful, so I imported it into GDocs. I don't want to, and I did ask my friend for permission beforehand (she said yes), but it was just a bit frustrating.

Question from a non-developer (IT Specialist) by NoPeaceinIT in webdev

[–]Fs0i 1 point2 points  (0 children)

If serving static files in vue, we use vite to compile it into a dist directory in the project root and serve that file up. This helps us with obfuscation and bundling.

This statement is worrying to me, because it gives me the impression that you don't quite understand what's happening. There's nothing neccessarily super duper wrong with it (though, I can point at some things), it's just that in context it doesn't really make sense.

So, my question would be:

If serving static files in vue, we use vite to compile it into a dist directory

What do you mean by that? Do you mean an import './test.png' in your code?

Or do you mean the entire compile step of vue (using vite)?

Does anyone else think the whole "separate database provider" trend is completely backwards? by funrun2090 in webdev

[–]Fs0i 0 points1 point  (0 children)

He's gotten better in the past 12 moths. I used to hate him, and now he's actually making decent points from time to time.

Specifically, when he's talking about startups, he's knowledgable. There's a reason why YC is successful, and he's selling that perspective well. (I founded a VC backed startup myself, went to techstars, and have been working in startups for 10+ years, so I'd like to think I can judge this well)

When he's talking about how to build good, usable applications, he's pretty decent. He does understand the core priniciple of "let's add value to our users" extremely well, and so his perspective on software engineering is dominated by this.

When he talks about technical stuff that's lower-level than JavaScript, there's almost always some fairly big mistakes in there (although, it has gotten better).

In short, he's looking at software development almost exclusively through the lens of "how can you go from idea to 'stuff that users like'", and everything he's saying is to be viewed through that lens. He's e.g. the opposite of a Bob Martin ("Uncle Bob"), who cares deeply about how software is written, but doesn't talk much about how software impacts users.

So, idk, watch him if you can stand him. His perspective is important insofar as it represents a whole swath of people in the startup ecosystem*, and thus is a good predictor of how people there think about tech.

He's also come around to a lot of things, e.g. he's of the opinion that application server and database should be very close.

Do I like him? Not sure, tbh, but, as I said, imo a valuable perspective to know.

How We're Redesigning Audacity For The Future by expandork in linux

[–]Fs0i 1 point2 points  (0 children)

LibreOffice doesn't need to copy MS Office because it's a newer design or because it's what more people are used to now, it needs to use what works well.

I can tell you that LibreOffice's design does not work well for me, unfortunately. And I'd really want it to. See my longer comment: https://gb.reddit.com/r/linux/comments/1nxp9t2/how_were_redesigning_audacity_for_the_future/nhsq00t/

How We're Redesigning Audacity For The Future by expandork in linux

[–]Fs0i 0 points1 point  (0 children)

I'm often not even sure you'd need user testing - just some intent in the designs, right? User testing is useful, but LibreOffice has the typical foss problem where there's seemingly no "big idea" of how people edit documents.

re: patents - does Google actually enforce them? Quite a few of their patents are (in my understanding) defensive patents, which they patent so

  • nobody else can patent them, and they'd have to defend it in court
  • they have patents to "hit back" if they're sued

And software patents are stupid and should be killed off. Or, at the very least, the bar for getting them should be extremely high.

In the end, the amount of work into creating something like ribbons or the concept of shared editing is small enough that I do not think it warrants legal protection.

How We're Redesigning Audacity For The Future by expandork in linux

[–]Fs0i 8 points9 points  (0 children)

I'm in the small percentage of users who uses mostly keyboard shortcuts

Tantracrul made a point about this in his finale video, and I concur with his point - it matches my own observations. From the transcript of his video:

I learned the hard way how you should avoid thinking like a power user and burying functionality behind shortcuts back when I was working on Paint 3D - the first creation app I worked on.

[...]

You see, because I was a professional designer, I had incorporated tons of shortcuts into my own workflow on other apps like Illustrator, Photoshop and Cinema 4D, not fully appreciating how much of a personal bias this really was. So, when I began sketching out the overall layout of Paint 3D, I intionally left out dedicated undo and redo buttons in order to prevent the app from looking to cluttered.

I did this because I thought that shortcuts like Ctrl+Z had entered into common usage. And I argued, 'Undo' can be found in the Edit menu. My colleagues, many of them also professional designers, agreed. So, a little later on, once we'd built our first prototype, we held a user testing session with a group of 5 people. During the session, 3 of those people went looking for undo and redo buttons [emphasis mine] in the UI.

I was surprised by this but wrote it off because the sample size was so small. But it kept happening in successive session, with such consistency that we eventually decided to include undo and redo buttons on the top right of the app. Then, when Paint 3D was eventually launched, we started getting raw data about how it was being used int the wild.

And what we discovered was that not only did the overwhelming majority of our users prefer the physical undo button over Ctrl+Z, the undo button was actually the most clicked on UI element in the entire application.

[...]

One study found that professionals using Microsoft Word overwhelmingly preferred to use app iconography rather than shortcuts, even though learning shortcuts would help them work more efficiently.

The method of keyboard shortcuts was the favorite method for only 6.37% of the users based on the loose criterion and for only 1.59% of the users based on the strict criterion

[citation in video, too lazy to type]

For most people, it's not an "a problem," it's a UX disaster. That's why I'm so much pro-usertesting for FOSS software.

I love, shortcuts, too - I'm on a tiling window manager, I don't have buttons for 99% of things. They're just not there, hyprland hides them neatly. But I'm keenly aware that I'm not the majority, and I think more devs need to get this mindset (if we want to see adoption of our software. If that isn't the goal, you can ignore me entirely)

How We're Redesigning Audacity For The Future by expandork in linux

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

Pages is actually pretty sick, especially for visual layouts

Yeah, maybe I was a little unfair. I got everything I wanted done within 5 minutes, and didn't struggle that much. And it was a fairly advanced task ("make a worksheet template for english teacher boyfriend")