#pretty much everything else i use works just fine in linux
Explore tagged Tumblr posts
Text
in a perfect world where every program from win10 works perfectly on linux then i'd literally just download mint and be done with it but i don't have the mental fortitude to do 20 minutes of fucking troubleshooting any time i want to play g*nshin or use csp so yaaay
#nonsense radio#pretty much everything else i use works just fine in linux#but considering i paid money for csp and i'm just now starting to get used to it after several years of having it#i'm sure as fuck not gonna switch#and if my g*nshin account gets banned for playing in a virtual machine snapshot of windows 10. i will fucking combust#it's the year of tech companies pissing me the fuck off apparently#my goddamn wacom drivers... i wonder if there's a foss alternative to them
0 notes
Text
update for the 4 of you reading this that care (this isn't meant to be pessimistic I just mean that very few of my friends follow me on here lol)
I feel like my art has been stagnating for a long time and it's mostly because I limit myself to fandoms and the attention I get for my fanart messes with the way I value my self-worth so a few months back I decided I wanted to start doing a lot more with my art to gain more personal fulfillment and to give myself a direction i actually wanted to take it in so that i felt like i was making progress and going somewhere with it. I was making plans to create a proper portfolio of things that weren't star wars yaoi or the dudes from fall out boy fucking, and I was planning on launching a YouTube channel where I posted speedpaints and stuff and I actually made some decent progress
I drew something I was really proud of and I knew the content in it would be pretty popular despite still technically being fanart, and I had a time-lapse recorded for it and everything, I was even halfway through the script. I also had a number of original drawings I'd done that I never posted anywhere and I felt like by this time I should have been able to properly launch this stuff and start taking appropriate steps to have my art reach a wider audience.
butttttt then my laptop died suddenly and randomly (i was literally using it just fine, i lifted it up from my lap and it shut off and wouldnt turn back on) and it's been in the repair shop for a week and they still don't know what's wrong with it. they think it's a motherboard issue and if it ends up being at least $600 to repair it I'm just getting a new laptop. I think they can transfer the data on the hard drive to an external that I have and if so that'd be wonderful because that laptop contains all the work I've been doing these last few months for this thing I wanna do with my art.
thankfully since then my roommate is letting me have one of his backup gaming pcs (he works in tech so he has plenty) and I've been able to get set up there in case I need to start my progress over, but the issue is that it's a Linux and clip studio literally doesn't work with Linux because the desktop version of the program apparently relies on either edge being installed if it's windows, or safari being installed if it's Mac. so I can't sign in or download the full version, I'm stuck with the super limited trial version, and because of this I've been trying to get comfortable with Krita. which thankfully can record time-lapses.
my mental health has only been improving since moving to Seattle despite some pretty low lows so thankfully, even though this is uh a pretty big deal all things considered, I'm handling it really well. I had one horrible encounter with a psychiatrist when trying to get treatment for my anxiety and adhd, but since my insurance here sucks since I'm poor and nothing has worked for my other issues I've been fortunate to be able to see doctors about, I've officially become a crystal mommy and I've resorted to ~alternative medicines~ and as a result I've had a considerable amount of improvement in a very short amount of time with the things I've struggled with getting help with from a professional psychiatrist. so yeah, I'm only getting better
biggest issue that still impacts me is that my attempts at befriending people irl have not borne much fruit, granted I haven't been trying super hard but with a huge covid spike coming up soon, said weak attempts are going to have to be put on hold for the time being. especially since the main thing I was literally going to do as soon as Christmas was over was join this drawing group that meets up every other Sunday, but now I don't have my laptop so it'll just have to wait regardless of what the state of things are looking like otherwise
uhhh what else. oh yeah I got into Chinese yaoi and Indian cinema and I got out of my head enough to start playing genshin impact again so basically I'm a huge faggot ama
OH SHIT I forgot to mention I got another horrible job and I'm kind of trapped into keeping it for at least a year unless something catastrophic happens because it's giving me really important experience in the field I'm trying to go into, but when I say it sucks I mean it's probably the most disorganized place I've ever worked at that wasn't a locally owned franchise. I work at an open-access low income healthcare organization that's all over Seattle so when I say it's terrible and disorganized I think you get the picture
anyway I don't know how often I'll be on here but I'm bored and lonely and scrolling through tumblr seems like a better use of my time than spending an entire shift looking at r/shittyfoodporn
6 notes
·
View notes
Note
I hope you know you've earned the title Linux pro my friend. Installing linux on apple hardware is a challenge, installing a linux OS without support for the architecture/arm on apple hardware is truly triumph. Even if you don't believe it i bestow upon you an honorary title of Linux pro. Be well, and be free friend!
Well, to be fair, I didn't install Zorin OS onto an M1 Mac. It's running under a UTM (QEmu) Virtual Machine. I am, however, surprised that I got Zorin OS Core running on an ARM Machine, at all. I'm even more surprised that I've done it before anyone has documented it online. There are plenty of questions about an ARM version and M1 Virtualization on Zorin's official forum, but they usually go unanswered. From the initial forum posts I used to get my leverage, most people seemed to conclude that Zorin OS Lite would work just fine, but attempting to install Zorin OS Core over top of Ubuntu Server ARM resulted in dependency issues. I got this issues at first too, but after trying and trying again, I realize that Ubuntu Server 20.04's own repositories didn't contain the app versions that Zorin OS was looking for when attempting to install. I realized that Zorin's devs probably had to implement these in repositories of their own, and I was right. I found the list of official Zorin OS repos and "sudo add-apt-repository"ed about 3-4 of them into Ubuntu Server. After that, "sudo aptitude install zorin-os-desktop" ran without errors, and one reboot later, I was running Zorin OS 16.3 Core on an ARM Virtual Machine.
It's still not perfect. Strange oddities, glitches, and freezes occur here and there. For example, this is the second version of this post I'm writing. During the first draft, the VM froze, and I had to restart it. It just does that randomly, for seemingly no reason. I've added an app to the macOS host to see if it's the external SSD sleeping that's causing this issue, but I don't know, as of right now.
The Software Store (aka package manager) also doesn't seem to work properly. Nothing installs, and I always have to use "sudo aptitude install" to get stuff. I'm assuming, despite being the ARM64 version of Gnome Software, something under the hood is still attempting to install the AMD64 version of apps, causing the weird failures and indefinite stalls.
The main LibreOffice app, for some reason, also didn't appear in the Zorin Menu, and had to be added manually.
Only one of UTM's sound card drivers allowed the audio settings to appear as normal. Everything else eliminated a bunch of sliders in the "Sound" settings and muted the VM on startup. That was pretty annoying because I wanted to hear the Zorin OS login chime. Luckily, the one sound card option fixed all this, but for some reason, the VM occasionally starts up with zero audio. It always does this when I restart, so I always have to shut down and then turn back on to fix it.
I'm sure there's plenty more, but so far that's all I've found. I'm sure a more power user would find other stuff, but I'm really only looked to use Zorin OS as a productivity OS, so I'm not likely to run into much more.
To be fair, though, even with all the weird stuff, it still runs smoother than the native install on my 2011 MacBook Pro, so I'm not complaining. In fact, I'm just happy to be using Zorin OS on my desktop, at all.
#Netscape Results#rambles#linux#linux arm#arm linux#apple silicon#virtual machine#virtualization#m1#m1 mac#mac#imac#m1 imac#zorin#zorin os#zorin os core#arm#arm64
2 notes
·
View notes
Text
A couple of notes from a techy young person who's been wrasslin' Windows for almost two years because of a bet, but is a Linux native:
* Get comfortable opening a terminal. There's a lot of useful programs that work better when the person telling you how to use them can just say "type this specifically" rather than having to learn all the ways the new update moved around all the graphical elements.
* Use a package manager. It's not worth it to try and remember to keep every little thing updated on its own. Choco can do it for you.
* Honestly? Stop the most egregious data collection from Windows, and give up on stopping everything. Do what you can to learn the ever-rotating steps it takes to block ads (because they are actually an affront to nature) - right now, uBlock Origin for your Firefox (and do use Firefox, everything else is Google these days) and searching for "tips, tricks" and/or "ads" in settings for Windows get most of them. To completely stop Windows data collection, you can use a tool called O&O ShutUp10, (package shutup10 on choco) but knowing what is and isn't safe to turn off is its own learning process. (Generally, turn off things it says are safe to.)
* If you actually need for some reason to be sure you aren't having data collected by the system, switch operating systems. Linux is the classic choice, and honestly is pretty user friendly imo these days. If you don't want to figure it out, though, honestly Macs are fine. I use them for work, they're functional, just too expensive. I'm not aware of nearly as many privacy concerns there, but I also work in about the least security- critical space possible so I've never had to check.
* Use the tool "autoruns" to decide what starts when on your computer. Google "sysinternals live" for instructions on how to run it off of the network - part of their deal with Microsoft when they were bought out is that their tools have to be available freely. They forgot to say it had to be publicised, but hey, it's at least available.
* That backup on a hard drive should really be stored somewhere that isn't your house, and that won't disappear due to interpersonal drama. Keep it with your childhood bestie you don't talk to much these days but who's always in your corner, not with your latest crush. Or with family, if you have family worth keeping it with. (I don't follow this advice, but I also high-key want to get out of that stupid bet.)
* For a specific password manager recommendation, I use Bitwarden. It's free for basically any use most folks could want from it, open source (so folks can and have checked that they aren't secretly stealing your passwords or storing them badly), and available most anywhere. Also, turn on two factor authentication. Where available, I use a YubiKey because it's easier than always being near my phone, but I also have an authentication app on my phone for the many, many places that don't take U2F or FIDO yet. (What those acronyms stand for isn't important, they're just different protocols for how to check to make sure you have a particular physical key to prove you're not just someone who guessed your password.)
Most importantly, never assume you're smart enough that you don't need to keep learning. This journey don't stop, and I don't think it should. Keep on going, and find ways to curate joy even when the digital world is becoming a digital wasteland. There's still people out there who make it worth it.
Me: oh yeah, if you think school photography is hard now, try imagining doing this with film.
The new girl: what’s film?
Me: … film. Like… film that goes in a film camera.
New girl: what’s that mean?
Me: … before cameras were digital.
New girl: how did you do it before digital?
Me:… with film? I haven’t had enough coffee for this conversation
114K notes
·
View notes
Note
Is Waterfox still your browser of choice?
I'm back on Firefox right now because it isn't in the Artix repo and I'm too lazy to get it myself. Theoretically it is more privacy oriented than vanilla Firefox but I'd noticed that a lot of websites just wouldn't work with it even with the usual agent string tricks or turning everything down a notch.
On linux you really are pretty much limited to Firefox currently unless you are lucky and have Waterfox in the repo. That said, the issues above are bad enough now that I can't really recommend it over Firefox. Everything else is either chromium based garbage or some half-baked nonsense that you can't get UBO on. Which is fine if you use a PiHole or otherwise block ads and so on a different way but really it's kind of silly that most non-mainstream linux browsers are such garbage.
As much as I dislike Mozilla, I have to say Firefox is the best overall in comparison. Definitely needs settings tweaks and I wouldn't run it default. On my Win10 machine I'll probably stick to WF since all my bookmarks are there and I can reflex to FF or Edge for anything that doesn't work but if I were installing W10 again I'd pick FF.
#anon#I remember someone told me about another FF fork that seemed interesting but the name of the project escapes me atm#there's also Pale Moon on linux but I haven't used it in a decade and idk if it has decent extensions
0 notes
Text
2020 Videogames
In 2020 I’m newly retired, so I’ve had free time. I think it’s fun to do reviews, so without further ado here’s every video game I played in 2020!
I recommend:
(4/5) Among Us – Very fun. It’s only fun with voice chat with friends, so I’ve only gotten to play once or twice. I’ve been watching it more than playing it. Also free to play for mobile gamers–I’m tired of the “everyone buys a copy” model of group gameplay.
(4/5) Brogue. Brogue is an ascii-art roguelike. It’s great, and it has a nice difficulty ramp. It’s a good “quick break” game. I play it in preference to other roguelikes partly because I haven’t done it to death yet, and partly because I don’t need a numpad?
(4/5) Cook Serve Delicious 3. One of the more fun games I played this year. You get really into it, but I had trouble relaxing and paying attention to the real world when I played too much, haha. I own but haven’t played the first two–I gather this is pretty much just a refinement.
(4/5) Green Hell. Price tag is a bit high for the number of hours I got out of it, but I haven’t finished the story. Great graphics, and the BEST map design I’ve seen in a 3D game in a long time. It feels like a real place, with reasonable geography instead of copy-pasted tiles. I love that as you walk along, you can just spot a cultivated area from the rest of the jungle–it feels more like it’s treating me like an adult than most survival games. Everything still gets highlighted if you can pick it up. I played the survival mode, which was okay but gets old quickly. I started the story mode–I think it would be fine, but it has some LONG unskippable scenes at the start, including a very hand-holdy tutorial, that I think they should have cut. I did start getting into the story and was having fun, but I stopped. I might finish the game some time.
(4/5) Hyperrogue. One of my recent favorites. The dev has made a fair number of highly experimental games, most of which are a total miss with me, but this one is fun. I do wish the early game wasn’t quite as repetitive. Failing another solution, I might actually want this not to be permadeath, or to have a save feature? I bought it on steam to support the dev and get achievements, but it’s also available a version or two behind free, which is how I tried it. Constantly getting updates and new worlds.
(4/5) Minecraft – Compact Claustrophobia modpack. Fun idea, nice variety. After one expansion felt a little samey, and it was hard to start with two people. I’d consider finishing this pack.
(4/5) Overcooked 2. Overcooked 2 is just more levels for Overcooked. The foods in the second game is more fun, and it has better controls and less bugs. If you’re considering playing Overcooked, I recommend just starting with the second game, despite very fun levels in the first. I especially appreciate that the second game didn’t just re-use foods from the first.
(4/5) Please Don’t Press Anything. A unique little game where you try to get all the endings. I had a lot of fun with this one, but it could have used some kind of built-in hints like Reventure. Also, it had a lot of red herrings. Got it for $2, which it was well worth.
(5/5) Reventure. Probably the best game new to me this year. It’s a short game where you try to get each of about 100 endings. The art and writing are cute and funny. The level design is INCREDIBLE. One thing I found interesting is the early prototype–if I had played it, I would NOT have imagined it would someday be any fun at all, let alone as amazing as it is. As a game designer I found that interesting! I did 100% complete this one–there’s a nice in-game hint system, but there were still 1-3 “huh” puzzles, especially in the post-game content, one of which I had to look up. It’s still getting updates so I’m hoping those will be swapped for something else.
(5/5) Rimworld. Dwarf fortress, but with good cute graphics, set in the Firefly universe. Only has 1-10 pawns instead of hundreds of dwarves. Basically Dwarf Fortress but with a good UI. I wish you could do a little more in Rimworld, but it’s a fantastic, relaxing game.
(5/5) Slay the Spire. Probably the game I played most this year. A deckbuilding adventure through a series of RPG fights. A bit luck-based, but relaxing and fun. I like that you can play fast or slow. Very, very well-designed UI–you can really learn how things work. My favorite part is that because it’s singleplayer, it’s really designed to let you build a game-breaking deck. That’s how it should be!
(4/5) Stationeers. I had a lot of fun with this one. It’s similar to Space Engineers but… fun. It has better UI by a mile too, even if it’s not perfect. I lost steam after playing with friends and then going back to being alone, as I often do for base-building games. Looks like you can genuinely make some complicated stuff using simple parts. Mining might not be ideal.
(5/5) Spy Party. One of my favorite games. Very fun, and an incredibly high skill ceiling. There’s finally starting to be enough people to play a game with straners sometimes. Bad support for “hot seat”–I want to play with beginners in person, and it got even harder with the introduction of an ELO equivalent and removing the manual switch to use “beginner” gameplay.
(4/5) Telling Lies. A storytelling game. The core mechanic is that you can use a search engine for any phrase, and it will show the top 5 survellance footage results for that. The game internally has transcripts of every video. I didn’t really finish the game, but I had a lot of fun with it. The game was well-made. I felt the video acting didn’t really add a huge amount, and they could have done a text version, but I understand it wouldn’t have had any popular appeal. The acting was decent. There’s some uncomfortable content, on purpose.
(4/5) Totally Accurate Battle Simulator (TABS). Delightful. Very silly, not what you’d expect from the name. What everyone should have been doing with physics engines since they were invented. Imagine that when a caveman attacks, the club moves on its own and the caveman just gets ragdolled along, glued to it. Also the caveman and club have googley eyes. Don’t try to win or it will stop being fun. Learn how to turn on slo-mo and move the camera.
(4/5) We Were Here Together. Lots of fun. I believe the second game out of three. Still some crashes and UI issues. MUCH better puzzles and the grpahics are gorgeous. They need to fix the crashes or improve the autosave, we ended up replaying a lot of both games from crashes. It’s possible I should be recommending the third game but I haven’t played it yet.
The Rest
(3/5) 5D Chess with Multiverse Time Travel. More fun that it sounds. If you play to mess around and win by accident, it’s pretty good. Definitely play with a second human player, though.
(1.5/5) 7 billion humans. Better than the original, still not fun. Soulless game about a soulless, beige corporation. Just play Zachtronics instead. If you’re on a phone and want to engage your brain, play Euclidea.
(3/5) A Dark Room. Idle game.
(1/5) Amazing Cultivation Simulator. A big disappointment. Bad english voice acting which can’t be turned off, and a long, unskippable tutorial. I didn’t get to actual gameplay. I like Rimworld and cultivation novels so I had high hopes.
(3/5) ADOM (Steam version) – Fun like the original, which I would give 5/5. Developed some major issues on Linux, but I appreciate that there’s a graphical version available, one of my friends will play it now.
(4/5) agar.io – Good, but used to be better. Too difficult to get into games now. Very fun and addictive gameplay.
(3/5) Amorous – Furry dating sim. All of the hot characters are background art you can’t interact with, and the characters you can actually talk to are a bunch of sulky nerds who for some reason came to a nightclub. I think it was free, though.
(0/5) Apis. Alpha game, AFAIK I was the first player. Pretty much no fun right now (to the point of not really being a game yet), but it could potentially become fun if the author puts in work.
(4/5) Autonauts. I played a ton of Autonauts this year, almost finished it, which is rare for me. My main complaint is that it’s fundamentally supposed to be a game about programming robots, but I can’t actually make them do more than about 3 things, even as a professional programmer. Add more programming! It can be optional, that’s fine. They’re adding some kind of tower defense waves instead, which is bullshit. Not recommended because it’s not for everyone.
(3/5) A-Z Inc. Points for having the guts to have a simple game. At first this looked like just the bones of Swarm Simulator, but the more you look at the UI and the ascension system, the worse it actually is. I would regularly reset because I found out an ascension “perk” actually made me worse off.
(5/5) Beat Saber. Great game, and my favorite way to stay in shape early this year. Oculus VR only, if you have VR you already have this game so no need to recommend. Not QUITE worth getting a VR set just to play it at current prices.
(1/5) Big Tall Small. Good idea, but no fun to play. Needed better controls and level design, maybe some art.
(0.5/5) Blush Blush. Boring.
(3/5) Business Shark. I had too much fun with this simple game. All you do is just eat a bunch of office workers.
(3/5) chess.com. Turns out I like chess while I’m high?
(3/5) Circle Empires Rivals. Decent, more fun than the singleplayer original. It shouldn’t really have been a separate game from Circle Empires, and I’m annoyed I couldn’t get it DRM-free like the original.
(3/5) Cross Virus. By Dan-box. Really interesting puzzle mechanics.
(4/5) Cultist Simulator. Really fun to learn how to play–I love games that drop you in with no explanation. Great art and writing, I wish I could have gotten their tarot deck. Probably the best gameplay “ambience” I’ve seen–getting a card that’s labeled “fleeting sense of radiance” that disappears in 5 seconds? Great. Also the core stats are very well thought out for “feel” and real-life accuracy–dread (depression) conquers fascination (mania), etc. It has a few gameplay gotchas, but they’re not too big–layout issues, inability to go back to skipped text, or to put your game in an unwinnable state early on). Unfortunately it’s a “roguelike”, and it’s much too slow-paced and doesn’t have enough replay value, so it becomes a horrible, un-fun grind when you want to actually win. I probably missed the 100% ending but I won’t be going back to get it. I have no idea who would want to play this repeatedly. I’m looking forward to the next game from the same studio though! I recommend playing a friend’s copy instead of buying.
(2/5) Darkest Dungeon. It was fine but I don’t really remember it.
(2/5) Dicey Dungeons. Okay deck-building roguelike gameplay (with an inventory instead of a deck). Really frustrating, unskippably slow difficulty curve at the start. I played it some more this year and liked it better because I had a savegame. I appreciate having several character classes, but they should unlock every difficulty from the start.
(2/5) Diner Bros. Basically just a worse Overcooked. I didn’t like the controls, and it felt too repetitive with only one diner.
(2/5) Don’t Eat My Mind You Stupid Monster. Okay art and idea, the gameplay wasn’t too fun for me.
(2/5) Don’t Starve – I’ve played Don’t Stave maybe 8 different times, and it’s never really gripped me, I always put it back down. It’s slow, a bit grindy, and there’s no bigger goal���all you can do is live.
(3/5) Don’t Starve Together – Confusingly, Don’t Starve Together can be played alone. It’s Don’t Starve, plus a couple of the expansions. This really could be much more clearly explained.
(1/5) Elemental Abyss – A deck-builder, but this time it’s grid-based tactics. Really not all that fun. Just play Into the Abyss instead or something.
(1/5) Else Heart.Break() – I was excited that this might be a version of “Hack N’ Slash” from doublefine that actually delivered and let you goof around with the world. I gave it up in the first ten minutes, because the writing and characters drove me crazy, without getting to hacking the world.
(2/5) Everything is Garbage. Pretty good for a game jam game. Not a bad use of 10 minutes. I do think it’s probably possible to make the game unwinnable, and the ending is just nothing.
(1/5) Evolve. Idle game, not all that fun. I take issue with the mechanic in Sharks, Kittens, and this where buying your 15th fence takes 10^15 wood for some reason.
(4/5) Exapunks. Zachtronics has really been killing it lately, with Exapunks and Opus Magnum. WONDERFUL art and characters during story portions, and much better writing. The gameplay is a little more varied than in TIS-100 or the little I played of ShenZen I/O. My main complaint about Zachtronics games continues to be, that I don’t want to be given a series of resource-limited puzzles (do X, but without using more than 10 programming instructions). Exapunks is the first game where it becomes harder to do something /at all/, rather than with a particular amount of resources, but it’s still not there for me. Like ShenZen, they really go for a variety of hardware, too. Can’t recommend this because it’s really only for programmers.
(1/5) Exception. Programming game written by some money machine mobile games company. Awful.
(4/5) Factorio. Factorio’s great, but for me it doesn’t have that much replay value, even with mods. I do like their recent updates, which included adding blueprints from the start of the game, improving belt sorting, and adding a research queue. We changed movement speed, made things visually always day, and adding a small number of personal construction robots from the start this run. I’m sure if you’d like factorio you’ve played it already.
(3/5) Fall Guys – I got this because it was decently fun to watch. Unfortunately, it’s slightly less fun to play. Overall, there’s WAY too much matchmaking waiting considering the number of players, and the skill ceiling is very low on most of the games, some of which are essentially luck (I’m looking at you, team games).
(3/5) Forager – Decent game. A little too much guesswork in picking upgrades–was probably a bit more fun on my second play because of that. Overall, nice graphics and a cute map, but the gameplay could use a bit of work.
(3/5) Getting Over It – Funny idea, executed well. Pretty sure my friends and I have only gotten through 10% of the game, and all hit about the same wall (the first tunnel)
(3/5) Guild of Dungeoneering – Pretty decent gameplay. I feel like it’s a bit too hard for me, but that’s fine. Overall I think it could use a little more cute/fun art, I never quite felt that motivated.
(1/5) Hardspace: Shipbreakers. Okay, I seriously didn’t get to play this one, but I had GAMEBREAKING issues with my controller, which is a microsoft X-box controller for PC–THE development controller.
(2/5) Helltaker. All right art, meh gameplay. But eh, it’s free!
(3/5) Hot Lava. Decent gameplay. Somehow felt like the place that made this had sucked the souls out of all the devs first–no one cared about the story or characters. It’s a game where the floor is made out of lava, with a saturday morning cartoon open, so that was a really an issue. Admirable lack of bugs, though. I’m a completionist so I played the first world a lot to get all the medals, and didn’t try the later ones.
(3/5) House Flipper – Weird, but I had fun. I wish the gameplay was a little more unified–it felt like a bunch of glued-together minigames.
(2/5) Hydroneer. Utterly uninspiring. I couldn’t care about making progress at all, looked like a terrible grind to no benefit.
(1/5) io. Tiny game, I got it on Steam, also available on phone. Basically a free web flash game, but for money. Not good enough to pay the $1 I paid. Just a bit of a time-killer.
(3/5) Islanders – All you do is place buildings and get points. Not particularly challenging, but relaxing. Overall I liked it.
(3/5) Jackbox – I played this online with a streamer. Jackbox has always felt a little bit soulless money grab to me, but it’s still all right. I like that I can play without having a copy–we need more games using this purchase model.
(3/5) Life is Feudal – Soul-crushingly depressing and grindy, which I knew going in. I thought it was… okay, but I really want an offline play mode (Yes, I know there’s an unsupported single-player game, but it’s buggier and costs money). UI was pretty buggy, and I think hunting might literally be impossible.
(2/5) Minecraft – Antimatter Chemistry. Not particularly fun.
(3/5) Minecraft – ComputerCraft. I played a pack with just ComputerCraft and really nothing else. Was a little slow, would have been more fun with more of an audience. I love the ComputerCraft mod, I just didn’t have a great experience playing my pack I made.
(3/5) Minecraft – Foolcraft 3. Fun, a bit buggy. Honestly I can’t remember it too well.
(1/5) Minecraft – Manufactio. Looked potentially fun, but huge bugs and performance issues, couldn’t play.
(4/5) Minecraft – Tekkit. Tekkit remains one of my favorite Minecraft modpacks.
(3/5) Minecraft – Valhelsia 2. I remember this being fun, but I can’t remember details as much as I’d like. I think it was mostly based around being the latest version of minecraft?
(4/5) Minecraft – Volcano Block. Interesting, designed around some weird mods I hadn’t used. I could have used more storage management or bulk dirt/blocks early in the game–felt quite cramped. Probably got a third of the way through the pack. I got novelty value out of it, but I wouldn’t have enjoyed it if I had ever used the plant mod before–it’s a very fixed, linear progression.
(5/5) Minit. This is a weird, small game. I actually had a lot of fun with it. Then I 100% completed it, which was less fun but I still had a good time overall.
(3/5) Monster Box. By Dan-box. One of two Dan-box games I played a lot of. Just visually appealing, the gameplay isn’t amazing. Also, Dan-box does some great programming–this is a game written in 1990 or so, and it can render hundreds of arrows in the air smoothly in a background tab.
(3/5) Monster Train. A relatively fun deckbuilding card game. It can’t run well on my computer, which is UNACCEPTABLE–this is a card game with 2D graphics. My MICROWAVE should run this shit in 2020. Ignoring that, the gameplay style (summon monsters, MTG style) just isn’t my cup of tea.
(2/5) Moonlighter. Felt like it was missing some inspiration, just didn’t have a sense of “fun”. The art was nice. The credits list is surprisingly long.
(2/5) Muse Dash. All right, a basic rhythm game. Not enough variety to the game play, and everything was based around perfect or near-perfect gameplay, which makes things less fun for me.
(3/5) NES games – various. Dr Mario, Ice Climbers. Basically, I got some Chinese handheld “gameboy” that has all the NES games preloaded on it. Overall it was a great purchase.
(2/5) Noita. “The Powder Game” by Dan-Box, as a procedurally generated platformer with guns. Lets you design your own battle spells. Despite the description, you really still can’t screw around as much as I’d like. I also had major performance issues
(3/5) Observation. I haven’t played this one as much as I’d like, I feel like it may get better. Storytelling, 3D game from the point of view of the AI computer on a space station. I think I might have read a book it’s based on, unfortunately.
(2/5) One Step From Eden. This is a deck-building combat tactics game. I thought it was turn-based, but it’s actually realtime. I think if it was turn-based I would have liked it. The characters were a bit uninspired.
(1/5) Orbt XL. Very dull. I paid $0.50 for it, it was worth that.
(4/5) Opus Magnum. Another great game from Zachtronics, along with Exapunks they’re really ramping up. This is the third execution of the same basic concept. I’d like to see Zachtronics treading new ground more as far as gameplay–that said, it is much improved compared to the first two iterations. The art, writing, and story were stellar on the other hand.
(3/5) Out of Space. Fun idea, you clean a spaceship. It’s never that challenging, and it has mechanics such that it gets easier the more you clean, rather than harder. Good but not enough replay value. Fun with friends the first few times. The controls are a little wonky.
(1/5) Outpost (tower defense game). I hate all tower defense.
(3/5) Overcooked. Overcooked is a ton of fun.
(4/5) Powder Game – Dan-box. I played this in reaction to not liking Noita. It’s fairly old at this point. Just a fun little toy.
(1/5) Prime Mover – Very cool art, the gameplay put me to sleep immediately. A “circuit builder” game but somehow missing any challenge or consistency.
(2/5) Quest for Glory I. Older, from 1989. Didn’t really play this much, I couldn’t get into the writing, and the pseudo-photography art was a little jarring.
(4/5) Raft. I played this in beta for free on itch.io, and had a lot of fun. Not enough changed that it was really worth a replay, but it has improved, and I got to play with a second player. Not a hard game, which I think was a good thing. The late game they’ve expanded, but it doesn’t really add much. The original was fun and so was this.
(3/5) Satisfactory. I honestly don’t know how I like this one–I didn’t get too far into it.
(4/5) Scrap Mechanic. I got this on a recommendation from a player who played in creative. I only tried the survival mode–that mode is not well designed, and their focuses for survival are totally wrong. I like the core game, you can actually build stuff. If I play again, I’ll try the creative mode, I think.
(3.5/5) Shapez.io. A weird, abstracted simplification of Factorio. If I hadn’t played factorio and half a dozen copies, I imagine this would have been fun, but it’s just more of the same. Too much waiting–blueprints are too far into the game, too.
(2.5/5) Simmiland. Okay, but short. Used cards for no reason. For a paid game, I wanted more gameplay out of it?
(0.5/5) Snakeybus. The most disappointing game I remember this year. Someone made “Snake��� in 3D. There are a million game modes and worlds to play in. I didn’t find anything I tried much fun.
(1/5) Soda Dungeon. A “mobile” (read: not fun) style idle game. Patterned after money-grab games, although I don’t remember if paid progress was actually an option. I think so.
(4/5) Spelunky. The only procedurally generated platformer I’ve ever seen work. Genuinely very fun.
(4/5) Spelunky 2. Fun, more of an upgrade of new content than a new game. Better multiplayer. My computer can’t run later levels at full speed.
(1/5) Stick Ranger 2. Dan-box. Not much fun.
(3/5) Superliminal. Fun game. A bit short for the pricetag.
(3/5) Tabletop Simulator – Aether’s End: Legacy. Interesting, a “campaign” (series of challenge bosses and pre-written encounters) deckbuilding RPG. I like the whole “campaign RPG boardgame” idea. This would have worked better with paper, there were some rough edges in both the game instructions and the port to Tabletop Simulator.
(4/5) Tabletop Simulator – The Captain is Dead. Very fun. I’d love to play with more than 2 people. Tabletop simulator was so-so for this one.
(2/5) Tabletop Simulator – Tiny Epic Mechs. You give your mech a list of instructions, and it does them in order. Arena fight. Fun, but I think I could whip up something at least as good.
(3/5) The Council. One of the only 3D games I finished. It’s a story game, where you investigate what’s going on and make various choices. It’s set in revolutionary france, at the Secret World Council that determines the fate of the world. It had a weak ending, with less choice elements than the rest of the game so far, which was a weird decision. Also, it has an EXCRUTIATINGLY bad opening scene, which was also weird. The middle 95% of the game I enjoyed, although the ending went on a little long. The level of background knowledge expected of the player swung wildly–they seemed to expect me to know who revolutionary French generals were with no explanation, but not Daedalus and the Minotaur. The acting was generally enjoyable–there’s a lot of lying going on in the game and it’s conveyed well. The pricetag is too high to recommend.
(0/5) The Grandma’s Recipe (Unus Annus). This game is unplayably bad–it’s just a random pixel hunt. Maybe it would be fun if you had watched the video it’s based on.
(3/5) The Room. Pretty fun! I think this is really designed for a touchscreen, but I managed to play it on my PC. Played it stoned, which I think helps with popular puzzle games–it has nice visuals but it’s a little too easy.
(3/5) This Call May Be Recorded. Goofy experimental game.
(4/5) TIS-100. Zachtronics. A programming game. I finally got done with the first set of puzzles and into the second this year. I had fun, definitely not for everyone.
(3/5) Trine. I played this 2-player. I think the difficulty was much better 2-player, but it doesn’t manage 2 players getting separated well. Sadly we skipped the story, which seemed like simple nice low-fantasy. Could have used goofier puzzles, it took itself a little too seriously and the levels were a bit same-y.
(2/5) Unrailed. Co-op railroad building game. It was okay but there wasn’t base-building. Overall not my thing. I’d say I would prefer something like Overcooked if it’s going to be timed? Graphics reminded me of autonauts.
(2/5) Vampire Night Shift. Art game. Gameplay could have used a bit of polish. Short but interesting.
(4/5) Wayward. To date, the best survival crafting system I’ve seen. You can use any pointy object and stick-like object, together with glue or twine, to make an arrow. The UI is not great, and there’s a very counter-intuitive difficulty system. You need to do a little too much tutorial reading, and it could use more goals. Overall very fun. Under constant development, so how it plays a given week is a crapshoot. The steam version finally works for me (last time I played it was worse than the free online alpha, now it’s the same or better). I recomend playing the free online version unless you want to support the author.
(1/5) We Need to Go Deeper. Multiplayer exploration game in a sub, with sidescrolling battle. Somehow incredibly unfun, together with high pricetag. Aesthetics reminded me of Don’t Starve somehow.
(2/5) We Were Here. Okay 2-player puzzle game. Crashed frequently, and there were some “huh” puzzles and UI. Free.
(3/5) Yes, your grace. Gorgeous pixel art graphics. The story is supposed to be very player-dependent, but I started getting the feeling that it wasn’t. I didn’t quite finish the game but I think I was well past halfway. Hard to resume after a save, you forget things. I got the feeling I wouldn’t replay it, which is a shame because it’s fun to see how things go differently in a second play with something like this.
These are not all new to me, and very few came out in 2020. I removed any games I don’t remember and couldn’t google (a fair number, I play a lot of game jam games) as well as any with pornographic content.
2020 Videogames was originally published on Optimal Prime
2 notes
·
View notes
Text
i have things to do today, all of which i’m putting off for some reason
group A: i need to message my doctor and ask them to get... an order sent in for me to get re-vaccinated, because apparently MMR didn’t work on me very well the first two times. need to message my therapist and tell them i’m a dumb fuck and i have to be on a ferry when i would usually have my appointment.
group B: i need to clean out the fridge; i need to do the meal planning.
group C:i need to shave.
group D: i need to pick up cat food. i need to pick up the farm box. i need to pick up anything else we want at the farmer’s market.
group E: i need to put the bike mount on the phone and the phone mount on the bike.
group F: I need to go on a bike ride with some friends.
group G: i need to get ready for a camping trip this weekend.
group A: It would have been better (convenient, responsible) to have done these two weeks ago. i have to ask someone to do a thing for me. i had to reschedule an appointment three weeks ago with my therapist on similar near-notice and i feel bad about it, because i know that therapy is incredibly low-margin for how much of an unpleasant thing it is. i need to do it, because either (i don’t do it, i just don’t show up, they ??? at me for it being my second absence ever) or (i do it, they reschedule me, i maybe have to pay because i didn’t give much notice) or (i do it, they reschedule me, it’s all fine). i feel like an ass being apparently not-immune to mumps and rubella, and apparently the way i want to deal with it is not write a one-sentence email and then walk my ass three blocks to the doctor’s office but instead ignore it.
group c: i get super bored shaving, and i irritate my face if i do it too often, and also i fucking hate facial hair. testosterone is overall great, but the hair is garbage. i am strongly considering getting the hair zapped, but i’m held back by: what if it doesn’t work? i don’t hear about testosterone-powered humans doing this frequently; what if the people doing it think i’m weird for wanting it/oh god i have to deal with a human for this; it’s probably sorta expensive and i feel bad wanting to spend money on a ... literally superficial thing. but also it’s scratchy and pokey and it *hurts* to be anything other than clean-shaven and i can’t sleep without wearing a scarf unless i’ve shaved within a few hours of going to bed, and i can’t eat certain foods, and i can’t sweat, ... and this is ridiculous. and it takes 15 minutes and i spill water everywhere and generally make a mess. and i need to not put off everything else to do research on this because now is not the time.
group D: these are all located on the same quarter-block, but each is sufficiently heavy that i need to make at least three trips for it.
group B & D: we get a box of produce every week from a farm; i like it because it’s comparatively very cheap, and it’s all really nice (not buggy, not muddy, lots of weird vegetables that i enjoy and know how to cook but wouldn’t think to get on my own or isn’t even available at the nearest groceries). but the quantities are kinda weird; we get more of one thing than i could possibly use in a week (or even two), or just enough of something to serve one person as a side dish, and i have to get extra; and in either case the fridge gets nearly completely full on wednesday afternoon, to the minor dismay of my housemates. (and the damn fridge is slowly filling up anyway, because we panic and turn all the leftovers at the end of a cycle into syrups and shrubs and pickles and stuff.) so i have to plan out the week ahead of time, to be sure we’ll use it all up. and some weeks i can cook every night for 7 days, and lunch on the weekends, and some weeks i can’t, either due to scheduling constraints, being sick, stuff coming up. so i’m loathe to look at this last week’s failure (i’ve been sick since saturday night), and i’m not excited about trying to plan this next week (because i’m going to be gone friday night and assuredly tired on saturday).
group E: if i fuck it up i have wasted 30 dollars on a phone case and the nice mount that everyone likes. i can’t be sure i haven’t fucked it up until after i’ve done it, because there’s not a good way to test the placement. oh, i might be able to hold it on with like shitty double sided tape or something. but also i have to be in the garage to do this.
group F: we were planning to go on sunday, but i was sick; last night, but i was still sick and cohuman had an appointment. so today, but i need to do the phone mount and i feel weird about wearing normal clothes to bike in (too hot!) and weird about cyclist clothes (i’m too slow! they’ll be too cold at the coast! i can’t carry a jacket on this bike!). i’m going to be slower than usual because i’m still a little sick, or i’ll push myself and be wrecked at the end. but also i know i like this route and i like biking, and i’ll get stronger if i go, so i want to...
group G: today’s the last chance to be sure i have all the gear (and to replace it if i don’t). i need to get stove fuel & figure out food that tastes good with minor prep that doesn’t need refrigeration and that can be carried by bike for 20 miles. i need to be sure everything fits in my interim panniers, and how we’re packing it to make it not a disaster every time i need to get something. i need to be sure it’s light enough that it doesn’t make my decidedly-non-touring bike handle weird. i need to make sure of the route. i need to be sure that the bike site will allow us even if it’s full.
okay; a lot of these are part “unreasonable anxiety” and part “justified anxiety, because i know it takes just one oversight to fuck it up”(1).
the second i can fix with more adhd meds, though i don’t think that much i’m planning to do today particularly has that failure mode. for the first, i need to make sure to use non-stimulant med; i also have the intervention of getting High Enough That I Can’t Think Very Far Ahead, if it turns out i need to.
(1) one small bad decision can be an expensive/unfixable mistake: cohuman’s bike probably would’ve been fine if i hadn’t suggested taking the seatpost out to stick it in the car. i broke a book a few weeks ago when it slipped out of my hand and hit a hard object on the spine. i shifted wrong on my actual touring bike once and twisted the chain 90 degrees(2). i ran the blender with the lid off the other day and sprayed cashews all over the kitchen. mad with power, we bought couches that were too big, and the living room has been cramped this whole time. i bought a graphics card that didn’t play nice with linux, and for three months my machine crashed on average every other day (it seems an update fixed it? i’m not actually sure.) one time i didn’t pay attention and ran a shot glass through the garbage disposal. one time i fucked up and put drano in a clogged dishwasher; this makes soap. i dented a doorframe by putting a too-large over-the-door rack and shims on the wrong side. i broke a paper towel holder by grabbing it too fast when i knocked over a cup when i was on the phone, and also nearly fucked up scheduling surgery because of it. i cut the door on the litter box too low and pico constantly flings cat litter out. we tried to make rice in the rice cooker and forgot the water.
(2) very fortunately, despite it being on a road some distance out from the nearest town of barely 7k, and having not seen a single person for half an hour, barely a minute after i’d pulled off to the side, a guy in a pickup passed me, turned around, and offered me a ride back to town.
i feel like i don’t have enough time to do all this, but i’m pretty sure i do. messages will take < 20 minutes, shaving < 20 minutes, meal planning and fridge 90ish minutes, phone mount < 30 minutes; so i could be done with all that by 2:30, or at worst 3. cat food and human food will take 90 minutes or so, and part of that can’t happen til at least 4pm. bike ride will probably happen at 6; we’ll be home by 8:30. packing list can occur after that.
so despite spending 30 minutes writing this out, it’s probably fine, and i probably want to get started nowish.
i guess “dinner” isn’t really anywhere in there. i think i can find a < 20 minute prep one for to happen after biking.
2 notes
·
View notes
Text
RAMBLE: Booting a portable DOS collection, the pros and cons
Quite a while ago I posted screenshots of a bootable FreeDOS USB stick that I have with a collection of games installed. Like I mentioned in my initial Twitter post about it, I was inspired to do it by Lazy Game Reviews, who made a video where he had a full install on a high-end PC. After that I had an idea. “What if I could run my DOS games from anywhere, not just on a single PC." I got a USB stick, and went to work finding a portable solution.
What I did was not a full installation of FreeDOS. Instead I used a program called Rufus for making bootable USB sticks. Normally you’re supposed to give it the ISO of whatever OS you wish to boot but it gives you MS-DOS and FreeDOS as built in options. While I could have gone all in with actual MS-DOS, FreeDOS has better compatibility with modern hardware. FreeDOS also has a USB installer available on their website, but it’s just that. An installer for putting the operating system onto a hard drive. When installed via Rufus, you don’t get the full packages that you can download from the FreeDOS website. Instead you get just the kernel, the very bare essential thing needed to boot the operating system. While this works good enough for a lot of games, quite a few of them require extra memory of some kind. DOS on it’s own only uses 640k of RAM, even if you have 4GB on your system. After manually creating and editing my own CONFIG.SYS and AUTOEXEC.BAT (the two important system settings files), all my DOS stick boots at startup is HIMEMX (For that extended memory), CuteMouse (A wonderful generic mouse driver), and 4DOS (An enhanced command line interface). In retrospect I probably could have extracted a full setup from a virtual machine, but what I have now is functional. This so far works with just about everything I’ve thrown at it, aside from games with CPU speed issues, but this was a problem even when DOS was relevant and not a modern incompatibility.
I’ve tested this USB stick on a handful of computer setups to see how much compatibility varied. The first was my personal desktop. It’s got an AMD FX-4350, an Nvidia 750Ti, and 8GB of RAM. The second was my HP Spectre x360 laptop. The third was a salvaged embedded all-in-one PC that was originally part of a fancy restaurant cash register. It has an Intel Celeron 420, no GPU, and 2GB of RAM. I use it pretty much as a DOS gaming machine with Xubuntu on the hard drive for the pitiful amount of Linux and Windows games (via Wine) that it could run as well as downloading/moving games without having to use my main desktop. Each computer booted into DOS just fine.
First, I should address the issues that were present among all three computers. The first and what is probably a dealbreaker for a lot of people. The sound, or lack thereof. While modern video displays are just as capable of running FreeDOS as ones from decades ago, none of the sound devices in any of the computers I tried had compatible drivers. The only sound I could get was from the “PC Speaker”. A simple device that can play simple square-wave tones and not much else. Sure a clever developer could get some decent sound effects and music but for the most part all you get from it are beeps and boops. Back in the day this was an actual loudspeaker in IBM compatible PCs, but most beepers these days are tiny piezoelectric beepers. While it still works, it doesn’t produce as good of sound quality. The DSS MP3 player was impressive in DOSBox, but on my home computer you had to really try and pick out the music as the poor little buzzer struggled to play pretty much anything from the new wave pop of XTC to the heavy metal of Aria. There is the OPL2LPT that I could plug into the all-in-one for some FM synth music but it’s expensive and would only be used on one machine. I don’t mind the beeping however, I’d rather have that rather than no sound at all.
Video is a better story, but still one with caveats. The first thing to note is that newer Nvidia cards don’t seem to play too well with CGA and EGA graphical modes. While the HP laptop and the all-in-one had no issue displaying those outdated visual standards, my 750ti gave everything a green tint. Some text modes, like when trying to play PC-Man or Paratrooper had invisible text. LGR also ran into this issue in his video so it is something with Nvidia GPUs. While disappointing, I can’t really fault Nvidia for not playing well with graphics modes that aren’t used by modern computers. This second quirk is more of a nitpick than anything serious. This “problem” is the aspect ratio. While you can set most monitors and TVs to correct aspect ratios, this could potentially cause issues with the more “unusual” video modes. I wouldn’t know firsthand with DOS, but I usually handle aspect ratios on the driver-side of things because my monitor can be weird about some resolutions even when using Windows 7. Of course DOS doesn’t do this in software, so whatever you’re running gets stretched to the aspect ratio of the display. It’s a pet peeve of mine to see 4:3 stretched but it’s not a dealbreaker. If you’re lucky, some 3D games like Car & Driver let you adjust the aspect ratio or set a custom resolution.
So putting aside those limitations, what can you play on this USB stick? Here’s a list of the things I’ve got on here and run with no issue:
Doom I & II
The Oregon Trail 2nd Edition
Silpheed
Super Street Fighter II
Retro City Rampage 486
Sim City 2000
Arkanoid 1&2
Jazz Jackrabbit
Paku Paku
Rise of the Triad
Shadow President
Ancient Domains of Mystery (The free version, which still gets updated but lacks features from the paid release. Said paid release only supports modern PCs AFAIK)
Tales of Middle Earth (2.0, Maj’Eyal is only for modern PCs)
Golden Axe
PC-Man
Paratrooper
Alley Cat
robotloveskitten
Catacomb 3D (original)
Softdisk Catacomb Trilogy
ChampProgramming games
Wolfenstein 3D
Duke Nukem 3D
A lot of much older DOS games have their speed tied to the CPU so are completely unplayable on modern PCs, hence why it’s mostly 90′s games on there. Your mileage still varies, but it’s nowhere as much of a crapshoot as trying to play something from 1983. Overall, I’m happy with the results. It boots fast and without having to run another OS underneath like DOSBox means that I don’t have to worry about a game struggling on my new space age machines. I recommend anyone who has a spare USB stick try the same thing. It’s easy, doesn’t take up much space on the stick, and probably will run on your machine just fine.
1 note
·
View note
Text
Python Docx

Python Docx4j
Python Docx To Pdf
Python Docx Table
Python Docx To Pdf
Python Docx2txt
Python Docx2txt
When you ask someone to send you a contract or a report there is a high probability that you’ll get a DOCX file. Whether you like it not, it makes sense considering that 1.2 billion people use Microsoft Office although a definition of “use” is quite vague in this case. DOCX is a binary file which is, unlike XLSX, not famous for being easy to integrate into your application. PDF is much easier when you care more about how a document is displayed than its abilities for further modifications. Let’s focus on that.
Python-docx versions 0.3.0 and later are not API-compatible with prior versions. Python-docx is hosted on PyPI, so installation is relatively simple, and just depends on what installation utilities you have installed. Python-docx may be installed with pip if you have it available.
Installing Python-Docx Library Several libraries exist that can be used to read and write MS Word files in Python. However, we will be using the python-docx module owing to its ease-of-use. Execute the following pip command in your terminal to download the python-docx module as shown below.
Python has a few great libraries to work with DOCX (python-dox) and PDF files (PyPDF2, pdfrw). Those are good choices and a lot of fun to read or write files. That said, I know I'd fail miserably trying to achieve 1:1 conversion.
Release v0.8.10 (Installation)python-docx is a Python library for creating and updating Microsoft Word (.docx) files.
Looking further I came across unoconv. Universal Office Converter is a library that’s converting any document format supported by LibreOffice/OpenOffice. That sound like a solid solution for my use case where I care more about quality than anything else. As execution time isn't my problem I have been only concerned whether it’s possible to run LibreOffice without X display. Apparently, LibreOffice can be run in haedless mode and supports conversion between various formats, sweet!
I’m grateful to unoconv for an idea and great README explaining multiple problems I can come across. In the same time, I’m put off by the number of open issues and abandoned pull requests. If I get versions right, how hard can it be? Not hard at all, with few caveats though.
Testing converter
LibreOffice is available on all major platforms and has an active community. It's not active as new-hot-js-framework-active but still with plenty of good read and support. You can get your copy from the download page. Be a good user and go with up-to-date version. You can always downgrade in case of any problems and feedback on latest release is always appreciated.
On macOS and Windows executable is called soffice and libreoffice on Linux. I'm on macOS, executable soffice isn't available in my PATH after the installation but you can find it inside the LibreOffice.app. To test how LibreOffice deals with your files you can run:
In my case results were more than satisfying. The only problem I saw was a misalignment in a file when the alignment was done with spaces, sad but true. This problem was caused by missing fonts and different width of 'replacements' fonts. No worries, we'll address this problem later.
Setup I
While reading unoconv issues I've noticed that many problems are connected due to the mismatch of the versions. I'm going with Docker so I can have pretty stable setup and so I can be sure that everything works.
Let's start with defining simple Dockerfile, just with dependencies and ADD one DOCX file just for testing:
Let's build an image:
After image is created we can run the container and convert the file inside the container:
Running LibreOffice as a subprocess
We want to run LibreOffice converter as a subprocess and provide the same API for all platforms. Let's define a module which can be run as a standalone script or which we can later import on our server.
Required arguments which convert_to accepts are folder to which we save PDF and a path to the source file. Optionally we specify a timeout in seconds. I’m saying optional but consider it mandatory. We don’t want a process to hang too long in case of any problems or just to limit computation time we are able to give away to each conversion. LibreOffice executable location and name depends on the platform so edit libreoffice_exec to support platform you’re using.
subprocess.run doesn’t capture stdout and stderr by default. We can easily change the default behavior by passing subprocess.PIPE. Unfortunately, in the case of the failure, LibreOffice will fail with return code 0 and nothing will be written to stderr. I decided to look for the success message assuming that it won’t be there in case of an error and raise LibreOfficeError otherwise. This approach hasn’t failed me so far.
Uploading files with Flask
Converting using the command line is ok for testing and development but won't take us far. Let's build a simple server in Flask.
We'll need few helper function to work with files and few custom errors for handling error messages. Upload directory path is defined in config.py. You can also consider using flask-restplus or flask-restful which makes handling errors a little easier.
The server is pretty straightforward. In production, you would probably want to use some kind of authentication to limit access to uploads directory. If not, give up on serving static files with Flask and go for Nginx.
Important take-away from this example is that you want to tell your app to be threaded so one request won't prevent other routes from being served. However, WSGI server included with Flask is not production ready and focuses on development. In production, you want to use a proper server with automatic worker process management like gunicorn. Check the docs for an example how to integrate gunicorn into your app. We are going to run the application inside a container so host has to be set to publicly visible 0.0.0.0.
Setup II
Now when we have a server we can update Dockerfile. We need to copy our application source code to the image filesystem and install required dependencies.
In docker-compose.yml we want to specify ports mapping and mount a volume. If you followed the code and you tried running examples you have probably noticed that we were missing the way to tell Flask to run in a debugging mode. Defining environment variable without a value is causing that this variable is going to be passed to the container from the host system. Alternatively, you can provide different config files for different environments.
Supporting custom fonts
I've mentioned a problem with missing fonts earlier. LibreOffice can, of course, make use of custom fonts. If you can predict which fonts your user might be using there's a simple remedy. Add following line to your Dockfile.
Now when you put custom font file in the font directory in your project, rebuild the image. From now on you support custom fonts!
Summary
This should give you the idea how you can provide quality conversion of different documents to PDF. Although the main goal was to convert a DOCX file you should be fine with presentations, spreadsheets or images.
Further improvements could be providing support for multiple files, the converter can be configured to accept more than one file as well.
Photo by Samuel Zeller on Unsplash.
Did you enjoy it? Follow me@MichalZalecki on Twitter, where I share some interesting, bite-size content.
This ebook goes beyond Jest documentation to explain software testing techniques. I focus on unit test separation, mocking, matchers, patterns, and best practices.
Get it now!
Mastering Jest: Tips & Tricks | $9
Latest version
Released:
Extract content from docx files
Project description
Extract docx headers, footers, text, footnotes, endnotes, properties, and images to a Python object.
The code is an expansion/contraction of python-docx2txt (Copyright (c) 2015 Ankush Shah). The original code is mostly gone, but some of the bones may still be here.
shared features:
extracts text from docx files
extracts images from docx files
no dependencies (docx2python requires pytest to test)
additions:
extracts footnotes and endnotes
converts bullets and numbered lists to ascii with indentation
converts hyperlinks to <a href='http:/...'>link text</a>
retains some structure of the original file (more below)
extracts document properties (creator, lastModifiedBy, etc.)
inserts image placeholders in text ('----image1.jpg----')
inserts plain text footnote and endnote references in text ('----footnote1----')
(optionally) retains font size, font color, bold, italics, and underscore as html
extract user selections from checkboxes and dropdown menus
full test coverage and documentation for developers
subtractions:
no command-line interface
will only work with Python 3.4+
Installation
Use
Note on html feature:
font size, font color, bold, italics, and underline supported
hyperlinks will always be exported as html (<a href='http:/...'>link text</a>), even if export_font_style=False, because I couldn't think of a more cononical representation.
every tag open in a paragraph will be closed in that paragraph (and, where appropriate, reopened in the next paragraph). If two subsequenct paragraphs are bold, they will be returned as <b>paragraph q</b>, <b>paragraph 2</b>. This is intentional to make each paragraph its own entity.
if you specify export_font_style=True, > and < in your docx text will be encoded as > and <
Return Value
Function docx2python returns an object with several attributes.
header - contents of the docx headers in the return format described herein
footer - contents of the docx footers in the return format described herein
body - contents of the docx in the return format described herein
footnotes - contents of the docx in the return format described herein
endnotes - contents of the docx in the return format described herein
document - header + body + footer (read only)
text - all docx text as one string, similar to what you'd get from python-docx2txt
properties - docx property names mapped to values (e.g., {'lastModifiedBy': 'Shay Hill'})
images - image names mapped to images in binary format. Write to filesystem with

Return Format
Some structure will be maintained. Text will be returned in a nested list, with paragraphs always at depth 4 (i.e., output.body[i][j][k][l] will be a paragraph).
If your docx has no tables, output.body will appear as one a table with all contents in one cell:
Table cells will appear as table cells. Text outside tables will appear as table cells.
To preserve the even depth (text always at depth 4), nested tables will appear as new, top-level tables. This is clearer with an example:
becomes ...
This ensures text appears
only once
in the order it appears in the docx
always at depth four (i.e., result.body[i][j][k][l] will be a string).
Working with output
This package provides several documented helper functions in the docx2python.iterators module. Here are a few recipes possible with these functions:
Some fine print about checkboxes:
MS Word has checkboxes that can be checked any time, and others that can only be checked when the form is locked.The previous print as. u2610 (open checkbox) or u2612 (crossed checkbox). Which this module, the latter willtoo. I gave checkboxes a bailout value of ----checkbox failed---- if the xml doesn't look like I expect it to,because I don't have several-thousand test files with checkboxes (as I did with most of the other form elements).Checkboxes should work, but please let me know if you encounter any that do not.
Release historyRelease notifications | RSS feed
1.27.1
1.27
1.26
Python Docx4j
1.25
1.24
1.23
1.22
1.21
1.19
1.18
1.17
1.16
1.15
1.14
1.13
1.12
1.11
1.2
Python Docx To Pdf
1.1
Python Docx Table
1.0
0.1
Python Docx To Pdf
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Python Docx2txt
Files for docx2python, version 1.27.1Filename, sizeFile typePython versionUpload dateHashesFilename, size docx2python-1.27.1-py3-none-any.whl (22.9 kB) File type Wheel Python version py3 Upload dateHashesFilename, size docx2python-1.27.1.tar.gz (33.3 kB) File type Source Python version None Upload dateHashes
Close
Hashes for docx2python-1.27.1-py3-none-any.whl
Hashes for docx2python-1.27.1-py3-none-any.whlAlgorithmHash digestSHA25651f6f03149efff07372ea023824d4fd863cb70b531aa558513070fe60f1c420aMD54b0ee20fed4a8cb0eaba8580c33f946bBLAKE2-256e7d5ff32d733592b17310193280786c1cab22ca4738daa97e1825d650f55157c
Close
Hashes for docx2python-1.27.1.tar.gz
Python Docx2txt
Hashes for docx2python-1.27.1.tar.gzAlgorithmHash digestSHA2566ca0a92ee9220708060ece485cede894408588353dc458ee5ec17959488fa668MD5759e1630c6990533414192eb57333c72BLAKE2-25684783b70aec51652a4ec4f42aa419a8af18d967b06390764527c81f183d1c02a

0 notes
Text
Openvpn Server For Mac Os
Openvpn Server For Mac Osx
Openvpn For Mac Os X
Install Openvpn Server Mac Os X
Openvpn For Mac Download
Openvpn Server For Mac Os 10.10
Openvpn Server For Macos
On your Mac, choose Apple menu System Preferences, then click Network. Tunnelblick helps you control OpenVPN ® VPNs on macOS. It is Free Software that puts its users first. There are no ads, no affiliate marketers, no tracking — we don't even keep logs of your IP address or other information. We just supply open technology for fast, easy, private, and secure control of VPNs. Navigate to the OpenVPN Access Server client web interface. Login with your credentials. Click on the Mac icon to begin download. Wait until the download completes, and then open it (the exact procedure varies a bit per browser).
Spurred by a unhelpful digg post on setting up an OpenVPN server on Windows, I decided to finally get OpenVPN working on my Mac, which is currently running as my web server / other servers. I eventually found some help, but it took awhile, so why not gather it all up here.
What is OpenVPN?
A VPN or Virtual Private Network essentially connects a remote machine to a network, over the Internet, securely. A common use for VPN is to let a user at home or on the road make an encrypted connection to his office’s network as if he/she were actually in the office. In this type of setup, you would be able to connect to file servers, mail servers, or printers remotely, without having to worry about someone on the Internet watching what you do and snagging private information.
I wanted to use it so I could use VNC to connect to some of my home machines on my laptop at school.
OpenVPN utilizes SSL, the same technology used to encrypt websites to make its connection secure. Its also OpenSource and free, which are two good reasons for using it. It is also fast and very powerful, once you get things set up.
One alternative to OpenVPN commonly cited is Hamachi. It seems easier to set up and can run on the major 3 OS platforms. The main reason I shyed away from Hamachi, as many people do, is because it is closed source, and owned by a company. That means you just really can’t be sure about what its doing or how its doing it. Sometimes this is acceptable, like when using Skype, but sometimes, you’d just rather have the open software. Plus, OpenVPN is a much cooler thing to have running on your system anyways.
Configuring The Server
This was where there isn’t a lot of Mac specific info. Most tutorials deal with using Linux or Windows. Thats fine, probably what most people have as servers. But I wanted it on a Mac! The ever useful Darwinports has a port of OpenVPN, labelled “openvpn2”. They have the regular openvpn port, but it is an older (1.6) version, and that won’t due. Install it by using the command
sudo port install openvpn2
This will get you most of the packages you need to get things going.
Now we turn to the OpenVPN site for configuration instructions. You can follow the Linux instructions pretty closely, and things will work out well with a few exceptions:
The easy-rsa folder can be found at /opt/local/share/doc/openvpn2/easy-rsa . I copied the openvpn2 folder to someplace easier to find like /opt/local/etc/openvpn . You could make it easier and put it in /etc/openvpn too, but sometimes I forget to check there…
The sample server and client configuration files can be found at /opt/local/share/doc/openvpn2/sample-config-files. I also grabbed the server.conf file and copied it to my simplier openvpn folder. Making these copies will also ensure your changes won’t be overwritten when OpenVPN is updated.
according to this hint from macosxhints.com,tunnelblick might be needed to get OpenVPN working correctly. Download tunnelblick here,the current version I got was 3.0 RC3. We will be using it as our client as well, so more info in that section below
So with the help of the OpenVPN manual and the nice tip about tunnelblick, we should have a working version of OpenVPN on our server.
Configuring the Client
Like I mentioned, we need tunnelblick to connect to our server. Tunnelblick is a very elegant and easy to manage GUI front end to OpenVPN. The 3.0 RC3 version comes with everything bundled together, and all you need to do is drop it into your Applications folder. Run it and you should see a little tunnel in the upper-right hand corner of your screen. It should also add the folder ~/Library/OpenVPN. In this folder I copied the ca.crt, client.crt, client.csr, and client.key which were created on the server during the PKI section of the tutorial. I used fugu to move stuff over from the server. Now you can click on the tunnelblick tunnel icon and then click on “details” to get to the meat of the program. Select “edit configuration” to modify the important stuff. I basically copied OpenVPN’s sample client configuration, and pasted it into here. Modifying the destination IP address and the location of the crt and key files. I had to use the entire path file to get these to work correctly for some reason, namely: /Users/username/Library/openvpn/ca.crt . I don’t know why I couldn’t use realitive file names, but it wasn’t having it. Also, I started by using the local IP address of my server to make sure things were working correctly before trying to connect to it from the Internet. When that was all finished, I selected “Connect” and you should be connected to your own VPN server!
https://unadulteratedperfectionsandwich.tumblr.com/post/641430312805711872/iso-burn-usb-for-mac. Form the article above, you can clearly deduce that iSeePassword is the only reliable burning image tool with no demerits or limitations at all. It has been tested with many brands of computers and operating systems including the Mac OS, thus you can completely rely on it to burn ISO file to USB/DVD on Mac OS X without getting any errors.
If you have file sharing turned on, you can check your connection by hitting apple + k to go to the connection dialog and connecting to afp://10.8.0.1 (if you followed the tutorial exactly, else use the IP address you set it up for). This should connect to your server.
The next step is to get more machines from your intranet on the vpn. But that is for another post, as I haven’t quite figured it out yet…
Export macOS Server Data We’re not going to import this, as it only takes a few seconds to configure new settings. Additionally, if you have outstanding services built on macOS Server, you might be able to pull this off without touching client systems. First, let’s grab which protocols are enabled, running the following from Terminal:
Openvpn Server For Mac Osx
sudo serveradmin settings vpn:Servers:com.apple.ppp.pptp:enabled
sudo serveradmin settings vpn:Servers:com.apple.ppp.l2tp:enabled
Next, we’ll get the the IP ranges used so we can mimic those (or change them) in the new service:
sudo serveradmin settings vpn:Servers:com.apple.ppp.pptp:IPv4:DestAddressRanges
Silver Efex Pro is the most advanced black-and-white photo plugin you’ll ever use. With its unique algorithms and an array of tools and adjustments for changes like brightness, contrast, and amplifying whites, you get total control of your digital darkroom. Silver Efex Pro’s advanced Grain Engine produces lifelike recreations of classic black-and-white film with superb levels of accuracy. UNIQUE ALGORITHMS FOR BETTER RESULTSTo create great black and white photos you need more than a simple desaturation tool to remove the color from an image. Color effect pro 4 for mac.
https://unadulteratedperfectionsandwich.tumblr.com/post/641430150681149440/thunderbird-portable-for-mac. Thunderbird is both free and freedom respecting, but we’re also completely funded by donations! Help us sustain the project and continue to improve. Donate Join our Newsletter Keep up with the latest and greatest updates on news, features, events, and previews, and get a sneak peek on the upcoming releases. Mozilla Thunderbird is the safe, fast email client that's easy to use. It has lots of great features including quick message search, customizable views, support for IMAP/POP, RSS support and more. Plus, the portable version leaves no personal information behind on the machine you run it on, so you can take your email and adress book with you wherever you go.
Now let’s grab the DNS servers handed out so those can be recreated:
sudo serveradmin settings vpn:Servers:com.apple.ppp.pptp:DNS:OfferedServerAddresses:_array_index sudo serveradmin settings vpn:Servers:com.apple.ppp.l2tp:DNS:OfferedServerAddresses:_array_index
Finally, if you’re using L2TP, let’s grab the shared secret:
sudo serveradmin settings vpn:Servers:com.apple.ppp.l2tp:L2TP:IPSecSharedSecretValue
Once we have all of this information, we can configure the new server using the same settings. At this point, you can decide whether you want to dismantle the old server and setup a new one on the same IP address, or whether you’d rather just change your port forwards on your router/firewall. Ports Before we configure any VPN services, let’s talk about ports. The following ports need to be opened per The Official iVPN Help Docs (these are likely already open if you’re using a macOS Server to provide VPN services):
PPTP: TCP port 1723
L2TP: UDP ports 1701, 4500 and 500
Enable VPN pass-through on the firewall of the server and client if needed
openvpn There are a number of ways to get a VPN Server installed on macOS. One would be to install openvpn:
sudo port -v install openvpn2 OpenVPN has a lot of sweet options, which you can read about at openvpn.net. SoftEther One of the other tools Apple mentioned is SoftEther. I decided not to cover it here because it uses Wine. And I’m not a fan of Wine. Or Use iVPN That will require some work to get dependencies and some working with files and network settings. Another option would be to install iVPN from here, on the Mac App Store. You can install it manually as well, and if you do, you’ll need to pay separately through PayPal, which is what we’ll cover here. Once installed, if you purchased the license separately, use the Enter Manually button to provide it. At the Registration screen, make sure the name, email, and serial are entered exactly as you see them in the email you received. At the Thank You screen, click OK.
Openvpn For Mac Os X
At the EULA screen, click Accept assuming you accept the license agreement. Configure iVPN At the main screen, you’ll have a few options, which we’ll unpack here:
Use Directory Server: Allows you to use an LDAP or Active Directory connection to provide username and passwords to the service.
Use custom accounts: Allows you to manually enter accounts to provide username and passwords for clients to connect to the
Shared Secret: The secret, or a second factor used with L2TP connection.
Allow 40-bit encryption keys: Allows clients to use lower levels of encryption. Let’s not do this.
IP Address Range: The beginning and ending IP that will be manually handed out to client computers. When configuring the range, take care not to enter a range of addresses in use by any other DHCP services on your network or you will end up with conflicts.
Basic DNS: Allows you to configure a primary and second DNS server to send to clients via DHCP when they connect to the VPN interface.
Advanced DNS: Allows you to configure DNS servers as well as Search Domains.
Configure Static Routes: Allows you to specify the interface and netmask used to access a given IP.
Export Configuration Profile: Exports a configuration profile. When imported into a Mac or iOS device, that profile automatically configures the connection to the PPTP or L2TP service you’ve setup.
VPN Host Name: Used for the configuration profile so a client system can easily find the server w
If you configure Directory Authentication, you’ll get prompted that it might be buggy. Click OK here. The Directory Authentication screen allows you to choose which directory services to make available to PPTP or L2TP. If the system hasn’t been authenticated to a directory server, do so using the Users & Groups” System Preference pane. Once you’ve chosen your directory service configuration, if you require a third DNS server, click on Advanced DNS and then enter it, or any necessary search-domains. Click Done when you’re finished. Click the log button in the upper left-hand side to see the logs for the service. This is super-helpful when you start troubleshooting client connections or if the daemon stops for no good reason (other than the fact that you’re still running a VPN service on macOS Server and so the socket can’t bind to the appropriate network port).
Install Openvpn Server Mac Os X
Finally, you can also create a static route. Static routing provides a manually-configured routing entry, rather than information from a dynamic routing traffic, which means you can fix issues where a client can’t access a given IP because it’s using an incorrect network interface to access an IP. Once everything is configure, let’s enter the publicly accessible IP address or DNS name of the server. Client computers that install the profile will then have their connection to the server automatically configured and will be able to test the connection. Configure Clients If you configured the new server exactly as the old one and just forwarded ports to the new host, you might not have to do anything, assuming you’re using the same username and password store (like a directory service) on the back-end. If you didn’t, you can setup new interfaces with a profile. If you pushed out an old profile to configure those, I’d recommend removing it first if any settings need to change. To configure clients, we’ll install the new profile. When you open the profile on a client system (just double-click it to open it), you’ll see the Install dialog box. Here, click on Continue. Because the profile isn’t signed, you’ll then get prompted again (note: you can sign the profile using another tool, like an MDM or Apple Configurator). Click Continue. Then enter the username that will be used to connect to the VPN and click the Install button.
Openvpn For Mac Download
The Profile can then be viewed and manually removed if needed. Click on the new iVPN entry in the Network System Preference pane. Here, you can enable
Openvpn Server For Mac Os 10.10
Now that it’s easy, let’s click the VPN icon in the menu bar and then click on Connect iVPN to test the connection. Once clients can connect, you can use the iVPN icon in the menu bar to monitor the status of clients.
Openvpn Server For Macos
0 notes
Text
Done
And it only took me two months. Whatever. I’ll be faster next time. But am I really done?
I think so. I can still see things to improve, but I can also see how the improvements I would make would really just be sidements.
To be honest, going through it now, I’m not sure if I’m in love with it. It’s got good bits. I think, as usual, that in the process of editing I’ve stripped some of the meat from its bones.
As usual it lacks description. I do like description in novels. Never used to, didn’t care. But if the writer can paint – using not too many strokes – a good picture – well, that’s escapism, isn’t it? That’s another world.
I could improve this story, jam in … description? Or I could just go on to the next one. And that’s what I’m doing. It’s dumb to keep poring over a piece. I’m excited about the next one.
I wonder if I’ve learned anything from this one. Nah. There’s one bit left in the story I don’t like, that I think I’ve done badly. Often in the past I’d leave such bits in, in the hopes that my initial readers would tell me, no, it’s great.
That’s a poor strategy. Really, it’s just laziness. But I’m going to do it here. Just with that bit. Every other part has been tweaked until I consider it acceptable.
Well. Maybe I have learned something. As is usual with lessons, I already knew or suspected it. It’s this: you need to know where you’re going and preferably why.
There was at least one bit that was frankly garbage for some time. A bit where our guy goes to meet the mysterious creatures, sees his once-girlfriend. It was garbage because I had no little idea what these people were like. I’d come up with surface stuff – they stood around staring, in a hopefully creepy way. But I didn’t know why.
I did need, in the end, to know why. I sorted it out by just writing out the question and answering it. I wonder if I can find the note I made.
No, I seems. The closest is this:
What does Coco want from him? She wants to left alone, wants to enjoy her Universe in peace
And this:
“Sorry, it’s just you’re not looking at me.”
“Town?” she said, as if she’d never heard the word.
“You know, like a place people live? With … shops?”
“We live in the Universe.”
Point is, sometimes there’s things that aren’t working, and, yeah, if you directly write down the right question and try to answer it, you’ll find a solution, probably within seconds.
I’m gonna take the thing off Gitlab now. A funny feeling. I write on Linux, use free software tools all the time, so I feel like everything I do should be open, too. And yet, here I’m taking the thing down so I can sell it.
Well, nobody else worries about this. Software is meant to be free (so say some, including me), but this is a story. There’s no “source” people can benefit from. Actually, that’s not true, is it? I stuck the story in a git repo because I thought, arrogantly, that some people might be able to learn from it, the decisions I made.
A half-lie, that. I did it to encourage myself to finish the thing. And I’ve done that.
I started to worry a couple of weeks ago about what I’d done. You’re not meant to submit to publications stories that have already been up on the Internet. I think I’ve read some say that it’s fine if it’s been on a blog or something. But I can’t remember the details.
Regardless, it looks like I’ll get away with it. I’ve checked archive.org and they don’t seem to have hoovered up my git repo. As expected, and a relief.
Fuck, am I going to have cut the link out of all of my posts? I guess so.
And later on, it might return. Certainly if no one picks up this story I’ll stick it back up. I like that sort of thing.
Will anyone enjoy this story? Is it a good story? I really can’t tell you. I can tell you much of it is written pretty well. There’s some good bits and no bad bits. Storytelling-wise it might be weak. It might be a bit of an “eh” story.
I think my next story’s gonna have a premise with a lot more intrinsic drive. I mean it’s gonna be about a murder, or a kidnapping or a war or an assassination. Something to do with life and death, something not too abstract. Something that’s like a rocket up one’s arse. Something that’s unmistakably dramatic. Something no one can deny is a gripping story.
Murders, revenge, etc – these are all good for grabbing you. My girlfriend watches K-Dramas and spends all day shouting at the screen. It’s ’cause some bastard’s poisoned the King, but they think it was our hero that did it, so they’re torturing him, and he knows he didn’t do it, but he doesn’t say anything because he’s protecting Lee Min Ho.
Of course, all of that you can’t do in a short story. I don’t even know if I could write that in a novel, and that worries me. I think I think I’m too good for melodrama, would consider myself a cheesemonger if I wrote it. But you can’t deny it grabs you by the balls and kisses you forcefully on the mouth.
More worries? Well, these are the usual worries, aren’t they? What if I’m not good enough?
That’s why I’m on to the next one. The thing that’ll make me good enough is practice. But I know I’ve got a long way to go.
I want to do twelve stories this year. I guess this counts as this month’s – we’ll ignore that I started it in December. Nothing gets done over the Chistmas period.
Importantly I’m excited about writing again. I want to write lots of stories, just overdose on them. Travel, you know, through worlds. Create them, I guess. But I don’t think you create stories. You punch holes into universes.
0 notes
Text
Battle of the $350 laptops: Acer Swift 1 vs. Gateway Ryzen 3 3200U
We've been on the lookout for good but seriously cheap laptops for a while now. Acer's $650 Swift 3 is an excellent choice for budget laptops in the under-$700 range, but we've been really itching to find one in the almost nonexistent sub-$400 category. To that end, today we're looking at two of Walmart's finest—a $378 Acer Swift 1 and a $350 Gateway GWTN141-2. Both of these are serviceable if cheap laptops, but the Gateway, despite being the less expensive model, will be the clear winner for most people. It's more powerful, more repairable, more upgrade-able, and in our testing, a bit more reliable as well.
Acer Swift 1 SF114-32
Thankfully, the off-putting dingy yellow POST logo isn't in your face for long—the Swift 1 cold boots to the desktop in about 11 seconds.
We found the keyboard pretty unremarkable. It makes maximal use of the Swift 1's chassis, so it doesn't feel too cramped—but we already know some of you will hate the compressed arrow key layout.
DC barrel jack, full-size HDMI out, USB-C, 2x USB 3.0 type-A.
SD card slot, 3.5mm audio combo jack, USB 2.0 type-A, power and HDD LEDs, Kensington lock slot.
If you want to get into the Swift 1, you'll need a set of Torx bits. But there's no reason to bother, unless you're replacing the battery—or, we guess, the Wi-Fi—since everything else is soldered to the board.
Once you (very carefully, due to the thin aluminum side panels) lift off the back panel, there's not much to look at—no active cooling, and no sockets either, except for the Wi-Fi and one unpopulated, SATA-only M.2.
We didn't actually intend to test or review the Swift 1—we ordered a Walmart Motile 14, with a Ryzen 5 processor for only $350. But Walmart has an unfortunate tendency to just throw in any similar product when it runs low on stock, and the Swift 1 is what got sent in its place—with no notification, either by email or in our account at Walmart.com, and no paperwork in the box either.
There's only a 30-day return/exchange window on laptops at Walmart, but Things Came Up, and we didn't open the box until after that window had shut. Discovering that our Ryzen 5 laptop had magically turned into a Pentium Silver (roughly Celeron-class) laptop and there wasn't anything we could do about, it did not spark joy... but it is still an under-$400 laptop, and we're here to test and review cheap laptops, right?
Physically, the Swift 1 strongly resembles a lower-end Chromebook. It's not particularly lightweight, but it's quite slender, and its silver-skinned good looks are unassuming. On the plus side, it has a metallic chassis, not plastic; on the minus side, that chassis is extremely thin and very easily bent up. When we disassembled the Swift 1, despite being extremely careful and using a soft plastic spudger, we still bent the right side a little bit while getting the back panel off.
The best feature of the Swift 1 is its fast boot times—you can expect a cold boot to get to the Windows 10 desktop in around 11 seconds, including POST. Unfortunately, the high performance ends there—the Swift 1's Pentium Silver CPU, 4GiB RAM, and 64GB eMMC storage combine for a pretty lackluster experience.
Everything on the Swift 1—with the exception of the battery, the Wi-Fi chipset, and one unpopulated, SATA-only M.2 slot—is soldered on, unrepairable, and un-upgradeable. What you buy is what you get, and it works until it breaks.
Gateway GWTN141-2
We've got to give EVOO credit for one thing—they nailed the Gateway branding with that wallpaper.
We have a feeling some of you will be excited about that uncompressed arrow key layout.
The fingerprint reader on the Gateway is built into the touchpad—this was a new one on us. Note the dark square in the upper left.
Kensington lock slot, DC barrel jack, USB 3.0 Type-A, full-size HDMI out, USB Type-C.
SD card slot, 3.5mm audio combo jack, USB 3.0 Type-A.
Behold, a mystery panel! It looks pointless at first glance, but there's actually an M.2 slot under there at the top. I think I'd rather pull the whole back off than try to mess around in that tiny panel though.
The Gateway is very easy to disassemble; just Philips screws and pop things loose. The plastic chassis felt sturdy enough to survive quite a few disassemblings.
Looking a little closer, we see an active cooling system, an empty DDR4 DIMM slot, an occupied M.2 NVMe slot, an empty M.2 SATA slot, and an unfortunately soldered Realtek Wi-Fi chipset.
On the left, we see the currently empty M.2 slot, which is silkscreened as SATA only. By contrast, the occupied M.2 (with the C: drive in it) is silkscreened PCIE/SATA.
We went into testing the GWTN141-2 with a mixture of excitement and trepidation—on paper, a Ryzen 3200U system for $350 is a great deal. But in practice, we'd discovered that the new Gateway line is—like the horrid $140 EVOO EV-C-116-5—manufactured by Shenzhen Bmorn Technology and imported by EVOO. We're happy to say that the GWTN141-2 is not a repeat of the EV-C-116-5's story. The Gateway's Ryzen 3 3200U CPU was not limited by substandard thermals or factory underclocking, and it performs as you'd expect from looking at public leaderboards. The Gateway offers an even faster cold boot than the Swift—we timed it at eight seconds from power button to Windows desktop.
Continuing the Gateway's tale of "Hey! Not bad," the 128GB SSD might be an odd Chinese brand you've never heard of, but it's a real M.2 NVMe SSD which can be replaced or upgraded. Although the 4GiB RAM the system comes with is soldered to the board, there's an empty DIMM slot available. There's even an empty M.2 SATA-only slot, with an easy-access panel for that slot on the back.
The only real flies in the GWTN141-2's ointment are its cheap plastic chassis and its equally cheap Realtek 8821CE Wi-Fi.
The plastic used for the chassis is noticeably softer than you might expect for a laptop; it feels more like a kid's toy than a real computer, and it even felt slightly tacky to the touch on first unboxing. (Your mileage may vary, here—it bothered me, but the Spousal Opinion was "Whatever, it's fine.") On the plus side, the plastic chassis felt sturdy enough to survive plenty of disassembly and reassembly, unlike the Swift 1's razor-thin aluminum side panels.
The Realtek Wi-Fi is serviceable if slow under Windows, but it will cause severe headaches for anyone wanting to install Linux—and unlike most of the GWTN141-2's gear, it's soldered to the board and not replaceable.
Performance
Passmark CPU testing demonstrates just how much air there is between these four laptop models—the $650 Swift 3, the $350 Gateway and Swift 1, and the $140 EVOO.
We're not really used to seeing big differences between single-threaded Passmark scores. The near-doubling of Swift 1's score by the Gateway is worth sitting up and noticing.
Cinebench R20 tells roughly the same story Passmark did—namely, the Gateway's Ryzen 3 3200U is far more CPU than the Swift 1's Pentium Silver N5000.
Once again, we see big air between these laptop models, even on single-threaded tests. Notice the EVOO has dropped out of the race entirely at this point.
Geekbench 5, as usual, flattens the differences between CPUs noticeably more than either Passmark or Cinebench. We believe Passmark and Cinebench serve as far references for the difference between Gateway's Ryzen 3200U and Swift 1's Pentium Silver.
Geekbench 5 continues the trend of showing big air on single-threaded benchmarks between these laptops.
Gateway's "Netac" 128GB SSD isn't very impressive by NVMe standards, but it crushes Acer's soldered-on 64GB eMMC without breaking a sweat.
The stars of our show today are, of course, Acer's $378 Swift 1 SF114-32 and Gateway's $350 GWTN141-2. But for reference, we're throwing in a couple of spoilers—Acer's $650 Swift 3 SF314-42, and EVOO's unspeakable $140 EV-C-116-5 doorstop.
We think it's important to relate the Swift 1 and the Gateway not only to one another, but also to a "real laptop." We also think it's instructive to compare the Swift 1, in particular, to the EVOO—because the gap between the two underscores the fact that the Swift 1, though no match in performance for the Gateway, is—for the most part—a usable laptop.
With that said, we find it difficult to recommend the Swift 1 over the Gateway. Although the Gateway's older Ryzen 3 CPU is no match for this year's Renoirs, it's still no slouch—and it absolutely dominates the Swift 1's Pentium Silver N5000. Gaming workloads will bring the 3200U to its knees, but there was never a time we felt like rolling our eyes and saying "ugh" at the Gateway during normal desktop or Web-based use.
The Swift 1's Pentium Silver N5000 is an entirely different beast, designed for maximum electrical and thermal efficiency with everything else left to go hang. It's roughly half the speed of the 3200U in most tests—but it gets by with entirely passive cooling, and the battery life is frankly pretty crazy. In most use, the Swift 1 struck us as reasonably responsive—but unfortunately, it's not hard to find Web-based workloads in which it struggles.
Specifically, the Swift 1 choked badly on Facebook's new layout. Attempting to type a short paragraph about electrical connections resulted in text buffering—leaving us to watch as it "typed" itself out, character by laborious character, for another couple of minutes. To be fair, this is more about Facebook sucking than about the Swift 1—but also to be fair, a lot of people will expect to use Facebook on their new laptop.
We have to stress that the Gateway is absolutely no gaming laptop—it turns in a Time Spy score only a third of the Swift 3's, and the Swift 3 itself is only a budget laptop. But the Swift 1 can't even run the test.
The less-demanding Night Raid tells roughly the same story—the Gateway gets a third the Swift 3's score, while the Swift 1 fails to complete the test.
The differences between the Swift 1 and the Gateway are even more apparent in gaming tests, where the Gateway's scores aren't great, but the Swift 1's score is "I can't do this."
3DMark warned us "this system does not have enough VRAM and may not complete the test" on both systems, but the Gateway completed the tests fine (2 fps on Time Spy is "fine," right?), while the Swift 1 crashed out entirely within seconds of beginning either test.
If you want to run a game from 2010, you might do OK on the Gateway. On the Swift 1, we sincerely hope the only kind of gaming you want to do is interactive fiction.
Battery Life
Both laptops have good battery life, not-so-good stability. Using Event Viewer to find crash times got to be a regular thing.
Neither laptop successfully completed the PCMark 10 Modern Applications battery life test. What you're seeing from them isn't "time before shutdown" it's "time before crash."
Since both laptops crashed under PCMark 10's Modern Apps testing, we tried our go-to YouTube clip at 1080p in fullscreen. The Gateway delivered ten hours of playback—longer than the actual video clip!—but the Acer still crashed.
Trying to test our two ultrabudget laptops for battery life was a frustrating exercise, to say the least. The short version is they both offer excellent battery life—which you may not get all the way through before needing to reboot due to a crash.
Neither laptop lasted all the way through PCMark 10's Modern Office battery-life test. Both crashed well before the battery itself was exhausted. The Swift 1 did at least survive for slightly longer than the Swift 3's (successful) test run; but the Gateway couldn't make it much past four hours before suffering an application crash.
With no good data from the Modern Applications battery test, we tried falling back on something simpler—loading up the BBC's 10 Hours of Relaxing Oceanscapes on YouTube and playing it in full-screen at 1080p until the battery died.
The Acer Swift 1 failed this test as well. After crashing at 4 hours 20 minutes, it tumbled into a strange, half-brightness version of its POST screen. The Gateway, on the other hand, managed to play the clip for a solid six hours and forty-one minutes before shutting down at 5 percent battery.
Scoring this one decisively is a challenge. A sticker next to the touchpad on the Swift 1 boldly claims "up to 17 hours battery life"—we certainly weren't able to verify that figure, but to be fair, we can't really falsify it either. We found the Gateway's more-than-6.5-hour YouTube playtime stellar—but given that it, too, failed to complete PCMark 10 Modern Apps testing, we can't get too excited about it.
Neither laptop is likely to disappoint on the very specific grounds of battery life—but you should definitely save your work before going to bed.
Can it Linux?
The Swift 1 "just works" on Ubuntu 20.04—the only unclaimed device is the fingerprint reader.
The Gateway's Realtek Wi-Fi is a no-go on Ubuntu 20.04. It's possible to download and locally compile a driver from various sources on Github—but it'll break and need fiddling after kernel upgrades.
The Acer Swift 1 worked fine out of the box with Ubuntu 20.04. It lacked for nothing but a driver for the fingerprint reader, which most Linux users don't expect anyway.
The Gateway, unfortunately, should be considered a no-go for most Linux users—its Realtek 8821CE Wi-Fi does not have in-kernel support, and getting it working is a painful slog of finding a driver on someone's Github, downloading and building it locally, and waiting for it to break on the next kernel upgrade.
Extremely ambitious Linux users might be able to turn the Gateway into a good Linux system by putting a $20 Intel AX200 Wi-Fi 6 card—connected with an M key-to-A+E key converter—in the Gateway's empty M.2 slot. We can't guarantee that'll work, but if you try it, let us know how that goes!
Due to limited time, we did not battery test either system under Ubuntu.
Refurbished, or new?
Enlarge / The Ryzen 3 3200U in the Gateway is a better all-around CPU than anything we could find used for a similar price.
One of the more common refrains in the Ars comments when we test inexpensive laptops is "I can do better buying used!" In this under-$400 class, we don't believe that's actually the case. We went looking on Amazon and eBay for refurbished laptops under $400 and found five of the most common CPU models for those laptops. Then we used public Passmark leaderboards to compare those CPUs to what's in the Gateway and the Acer we reviewed today.
The first thing we'd like to point out is that, unless you've got a cousin looking to unload something fast, you aren't going to get a great refurbished laptop for $400 or less. We didn't find anything newer than Intel fifth-generation Core CPUs in this price bracket. That means a 6-year-old system. Worse, quite a lot of the systems in this bracket had second-generation i5 CPUs, marking them as a whopping 9 years old.
The best-performing CPU in our scavenged finds is an Intel Core i5-4300M. This 7-year-old M-series manages to outperform our sole fifth-generation part due to its whopping 37W TDP—it's configured for power, not efficiency, which in turn means poor battery life, especially if your refurb is still limping along on the OEM battery.
The Core i5-4300M handily outperforms the Swift 1's Pentium Silver N5000, but the Gateway's Ryzen 3 3200U beats it by 25 percent on multithreaded tests and about 15 percent on the single-threaded tests. Add in a new NVMe SSD versus whatever SATA garbage the refurbisher threw in for cheap, DDR4 RAM instead of DDR3, Vega 3 graphics versus HD Graphics 4600, and a one-year warranty versus typically 30 days, and the Gateway is obviously a far better deal.
Do you think we got this wrong? Hit us up in the comments—but please, keep it realistic. A single oddball sale you found in your local Facebook marketplace doesn't count; we're looking for readily available, refurbished laptops from dealers who can be found on Amazon, Newegg, or eBay.
Conclusions
We can't recommend Acer's Swift 1 SF114-32 for most users. Although it's handsome on the outside and boots quickly, it just doesn't offer enough muscle for some common workloads—such as Facebook's new and rather blecherous Web interface, which drowns the N5000 in more Javascript than it's ready to handle.
The Gateway GWTN141-2, on the other hand, is absolutely a credible laptop. It's certainly not a great laptop—we don't love the fact that it, like the Acer Swift, crashed out of the PCMark 10 battery test—but it's got enough muscle to make it through light workloads without complaint. It's even willing to take a stab at some older games if you want it to.
We tested the webcam on both laptops in three conditions: dim office lighting, harsh forelight with a studio flood, and harsh backlight with a studio flood. It would be difficult to tell one laptop from the other on the basis of webcam images; in both cases, all three (difficult) lighting conditions produced grainy, but acceptable images with clear facial features. You wouldn't mistake these for a mid-grade or better Logitech standalone, but you also wouldn't mistake them for the no-name garbage we had to settle for earlier this year to get kids online for school.
The speakers were similarly "it works, meh" on both systems—usable, but tinny. We definitely would not advise anyone to set any store in "tuned for THX" (as the Gateway proudly declares itself) anymore.
You should know what you're giving up by dropping down to this under-$400, ultrabudget laptop class—if you've got the extra $300 to spend, you get an enormous amount of additional performance, stability, and general quality out of an upgrade to Acer's Ryzen 7 4700U-powered Swift 3. But if you just don't have the extra money—or just don't want to spend it—the Gateway GWTN141-2 gets most jobs done just fine.
0 notes
Text
Two Weeks With Flutter
For the two last weeks I've been playing around with Flutter which is a framework for building Android and iOS apps (it also has Web/Windows/Mac/Linux/ChromeOS support in development). And I really like it. I mean, I didn't always like it. When I first picked it up I thought it was needlessly complicated and frustrating. But as I started to learn what the things actually did I started to think it wasn't so bad. It might even be fun. But I guess that's the way with most programming frameworks.
So Flutter makes Android and iOS apps. How'd you expect it to do this? Probably something like HTML, right? Nope. Flutter uses Dart. The way it knows what to build is you have to override the the build() method and make it return your entire UI. The entire UI in one method. Yeah... that's going to get messy fast. Just take a look at one of my build() methods.
Widget build(BuildContext context) { return Scaffold( body: SafeArea( child: Stack( children: <widget>[ FutureBuilder<list>>( future: DatabaseManager.getAllTasksAsTasks(), builder: (BuildContext context, AsyncSnapshot<list>> tasks) { if (tasks.hasData) { return ReorderableListView( children: createWidgets(tasks.data), onReorder: (int start, int current) {}, ); } else { return Center(child: CircularProgressIndicator()); } }, ), Container(color: Color.fromRGBO(0, 0, 0, 0.4)), Hero( tag: "TaskCreate", child: new AlertDialog( title: const Text('Create Task'), content: new TextField( controller: textController, autofocus: true, ), actions: <widget>[ new FlatButton( onPressed: () { Navigator.of(context).pop(); }, textColor: Theme.of(context).primaryColor, child: const Text('Create'), ), ], )), ]// This trailing comma makes auto-formatting nicer for build methods. ) ) ); }
Yeah, I tried to move some things to their own methods (or classes which is more performant but you really only have to worry about that once you call setState()) but there's only so much you can do and so much you have time to do. If some normal person saw this they would probably say it's ugly. And to be honest when I first saw something like this I thought it was ugly too. It's even more messy if you try adding something to it. Paste your text, watch the entire thing go red, then try to add the end bracket in just the right spot (although a better way appears to be cut the old code, create the old container, and paste the old code). But as I got to know how it worked there was something actually pretty elegant about this.
It's sort of like designing something with Legos. You have your root UI, your scaffold, and that can have a child which is a list view and a floating action button. Only instead of Legos they're widgets. There's widgets for almost everything: list views, cards, centered content, images, text, etc. And if you can't find a widget that serves your purposes you can find one on pub.dev or code your own.
So apart from Widgets there's scenes... no views... I mean routes. OK, different frameworks call them different things. Basically just a page of your app. In Flutter they're called routes. In Unity they're called scenes. And the way Flutter handles routes is pretty interesting. It's like a stack of routes. When you go to a new route you call .push() and when you want to go back or if someone hits the back button .pop() is called.
It's pretty simple. But the code to create one of these routes is not. Like look at this:
class TaskRoute extends StatefulWidget { TaskState createState() => TaskState(); } class TaskState extends State<taskroute> { ... }
Every single time we want to create a new route/widget class. Why do we need all this boilerplate? Why do we need Stateful/State/Stateless (not pictured). I think it's for optimization or something but it's still annoying.
So now I should probably talk about the language Dart. Oh, Dart. It's not a bad language. Not as bad as Javascript anyways. The best way to describe Dart is to say it's a modern COOL (C-like Object Oriented Language) similar to other COOL's like C# and Java. Emphasis on modern. So as languages mature there's a tendency of adding random syntactic 'sugar' that no one really needs or asked for that only serve to alienate newcomers to the language. Like take C++. C with classes, right? Nope. Now it's this giant behemoth of a language that takes ages to compile. And I've noticed the same thing with C#. In fact most of the newer syntactic sugar additions to C# are in Dart. Almost as if the Dart team is copying from C#. Hmm...
And this is a particular sore spot for Dart which has a million ways to do everything.
So take typing. There is static typing which means the compiler knows the types of everything at compile time and can alert you of any problems. Then there's hipster typing which means you're going to get a nasty surprise when you run that line of code you haven't tested yet. So which one do you expect Dart to choose? Trick question, Dart uses both. And different tutorials use one or the other. It can make it seem like a tutorial is written in a different language.
And it's not even like some dedicated keyword. This is the difference between static typing and hipster typing in Dart:
// Statically typed; will not compile var myVar = "Hi"; myVar = 5; // Hipster typed; will compile var myVar; myVar = "Hi"; myVar = 5;
Also: allocating new object. You can define new objects (oh, and by the way everything is a reference type in Dart) using the new keyword. But you don't have to use the keyword. It's completely optional. Which, why even have the keyword? Also it's possible to define a method that returns something without actually returning. I mean, you get a warning if you do that but it'll compile just fine. There's also a bunch of weird syntax like Dog({this.id, this.name, this.age}). This is basically the same as saying:
Dog(int id, String name, int age) { this.id = id; this.name = name; this.age = age; }
And there's a large amount of using functional map-like syntax instead of for loops. You know, the standard syntactic sugar stuff.
So syntactic sugar isn't in and of itself bad. The problem is when you have so much syntactic sugar it gives you syntactic diabetes meaning the language gets so inconsistent that it is difficult for new comers to learn. This is definitely a problem for Dart: one tutorial might use the new keyword and explicitly type all their variables. Then the next tutorial might not do any of that and it gets very confusing very fast.
But it's not all bad. There are a few neat things you can do in Dart. For one there's no public or private. To make something private by starting it with an _. It sort of reminds me of Python where you make a function by just indenting. I think it's pretty neat. Also you can have named constructors. It's pretty cool as you can name a constructor something like FromDatabase(Map<string dynamic>) if you just read from a database.
There's also two type of exceptions: error and exception. Error is bad, you should not be getting errors. Exceptions are, well, exceptions. So just catch them normally. I don't really know the difference between these two though. There are assert which is only called in debug builds. Oh, yeah, Flutter compiles to a debug build by default but there are also release and profiling builds.
Also when defining a list, which you'll do a lot in Flutter, every element can end in a comma, even the last one. This is something I've been thinking about whenever I code outside of an IDE. Adding a comma when there shouldn't be one results in a lot of compiler bugs (or in the case of hipster languages runtime bugs). So I think putting a comma after every item, even the last item is the way to go.
Lastly there is Future and async. A function signature that implements these is something like:
Future<list>> getTasks() async
and then you call it like:
tasks = await getTasks();
This is a major thing in Flutter. The main way I use it is when I push another route. I say something like await push() and that stops executing until the route being pushed calls pop(). And then I can do whatever management I need to make sure the data is saved.
Another way this comes into play is I can use an async method to load a database.
Although, to be honest, I sort of think this feature is a little superfluous. Especially in the database example. Reading from the database is so fast that stopping the whole app as the database returns its results is likely good enough. And the poping of pages could be done with a callback instead.
So how is it to actually develop for Flutter? Pretty good, actually. The first major feature of Flutter is the hot reload feature. Everytime you save your app it is instantly recompiled and sent to your phone (if it is already plugged in and the app is started) so the app updates faster than you can turn your head to look at it. It's pretty cool. It sure is a big shift from Unity's builds that can take minutes just to get an APK that you then have to install. Although it can fail sometimes. Usually when you rename something, but that rarely happens. I should probably mention here that I use my phone to test. You can also get a virtual device but that's like a 1GB download and I don't want to do that.
As for debugging instead of crashing flutter will give you a red screen of death.
Which, I mean, looks pretty ominous. Couldn't they have put a smily face on it or something like Windows?
There's also the call stacks when you get an error. They're not as compact as Unity and there's a lot of scrolling and they usually contain tons of information about Flutter's internal calls I don't care about before and after the relevant parts of the callstack. But I mean it's serviceable. Better than not having a callstack at all or a callstack that rarely points to the right thing like... some other languages.
Now there's Android Studio. It's basically a less good version of a JetBrains IDE. There's no telling you how many times something is called, there's no refactoring tools, it doesn't tell you to import packages to fix errors, it takes an extra click to get into the search all screen (Ctrl+N vs Ctrl+T), and it doesn't alert you if something isn't used. And it still takes more RAM than Chrome. Like, what are you doing? But at least it supports the Material theme I'm using on Rider. Like, it doesn't matter if the IDE sucks, as long as it looks good, right?
The only thing it really has over Rider (which I was using for Unity C#) is that it automatically inserts a comment telling you that this end brace corresponds to a particular widget. Which given the nested nature of build() method is quite useful. Not useful enough to get me to not jump ship to IntelliJ though.
So last but not least: the problems I have with Flutter. And there are a lot of them. The biggest one is the documentation. You know, for something made by Google that is almost 3 years old you'd think it would have better documentation. But no. You still see things like: "Enables the form to veto attempts by the user to dismiss the ModalRoute that contains the form." In all fairness this is the exception rather than the rule. Most of the commonly used widgets do have good documentation. But when you click to what a class is you still get this nonsense.
And there are a few bugs still. I encountered one where if you use Navigator.pop() it does not trigger the onPop callback. You need to use Navigator.maybePop() instead.
So all in all Flutter is a fine framework and pretty fun to program for. The foundation is pretty solid, it's just some of the documentation that is not quite up to snuff and some things can be hard to do due to not having the proper widget. Two problems that I'm sure will be solved soon. And once they are I think Flutter has a pretty good shot at being the most popular framework in the world due to its ability to run on Android, iOS, Web, Windows, Mac, Linux, and ChromeOS with an identical experience on all platforms.
0 notes
Link
Design a Mobile App Featuring Remarkable User Experience
Can You Design a Mobile App Featuring Remarkable User Experience? Creating a Successful mobile app design could mean Business Transforming Results.
Success of Tomorrow Begins Today with These Mobile App Design Techniques
Mobile apps are eating the world. Think of Facebook, What’s App, SnapChat, Angry Birds, Instagram, Pokemon GO, which have successfully turned startups into multi-billion-dollar ventures.
So, are you willing to be the next in line?
It’s 2020, whether you wish for some entertainment or organize your to-do lists or even spy on your husband, a mobile app is all you need. And there is no sign of this changing.
Some facts and figures to get acquainted with:
There are over 2.7 billion smartphone users in the world.
People are addicted to their smart devices throughout the day; out of which the maximum amount of their time is spent on various mobile applications.
There are over 2.7 million apps in the Google Play store and 2.2 million in the App Store.
The revenue from top successful apps is expected to reach $190 billion in the year 2020.
However, it certainly does not indicate that the market is full. There is always room for novelty and productive apps. I know what’s going on in your mind right now? Everything else is fine but the big question is “How to Get Noticed?”
Spoiler Alert: Mobile App development is no joke and can’t be created overnight. It’s a bit more intense.
Is there any Sure-Short way to succeed?
I am sorry to disappoint you that there is no such cookie-cutter solution as successful survival asks for evolution and adaptation. However, apps like WhatsApp, Instagram, and gaming apps like Angry Birds have different success stories but there are some common ingredients help a lot.
Unique App Concept
Usefulness
Usability
Performance
Appearance
Engagement
Let’s delve into the details:
#1 Discovery stage
Many of you make this mistake of heading first into mobile app creation without doing proper research (in regards to the target audience, how to conduct the process further). Moreover, what we non-techies do is, end up trusting all the assumptions that either overlooks or dismiss some extremely significant factors which might succeed the app.
As a result, lack of planning or laying appropriate foundation leads to a bumpy drive and complications which in turn end up destroying their momentum and costing a hefty amount like never before. So what exactly needs to be done is?
Get an idea- Track your Target audience & competitors
Monetizing Your App
Minimum Viable Product
The discovery stage is more like a road-map for the mobile application development project. Each sub-section narrows it down leading to incremental improvements to the subsequent iterations.
#2 User Experience Design
Although there have never been more choices in the website design industry than now. But paradoxically, all those choices make choosing more challenging than ever. In such cases, what can be done is to understand what you need rather than attempting to sort & filter all the choices on offer. Time to put yourself in your end user’s shoes.
As soon as you open the app, how do you expect things to go? Pretty smoothly right? I mean one should feel as if he or she intuitively knows everything- where to click next, what actions to perform, smooth navigation, etc. But what if you get stuck in between? I am sure you will simply give up and switch to the other one. So how to stop this from happening, after all, you spent all day and all night long researching. Do effective UX!
In simple words, UX designing is when you can create products that give significant and pertinent experiences to the end-clients. And it’s never-ending! Even a minor update in the technology makes you think about how people are using your app. UX design tips to take into account:
Maximize accessibility and ease of use
Incorporate the great “look and feel”
Test it out and identify some of the obvious surface flaws.
Rectify
#3 User Interface Design
By now your app doesn’t have any functionality but that’s completely okay. Here you will decide how your end-user perceives the quality of your app. Many of you have this misconception that UI and UX are the same. Well, they are certainly not! UX is all about optimal app usability and a smooth experience whereas UI is more regarding how the app looks and behaves especially in a visual sense (animation). For better UI, consider the following
Style guides – The building block of your app’s interface
Create a rendered design- Don’t be afraid to change things up
At this point, you need to test a lot because practically any changes beyond this point get SIGNIFICANTLY more expensive.
Additional tip– Come up with something aesthetically pleasing, make use of all the latest trends. In short, focus on how your app works and looks.
#4 Mobile App Development
After designing, comes mobile app development in line. I am sure by now you have placed a lot of exertion establishing out the framework of your application. Time to enter the next phase, more specifically the most challenging stages in the entire app design and development process. And it starts with simple yet not so simple design to development handoff. One wrong move can result in a poor 1qquality product. So, how to carry on things in the right manner?
#1 Planning
Before you start, you need to set everything in place. And this is how planning is done; you need to break it down into smaller, manageable chunks.
#2 Development
Here mobile app developers automatically start implementing things predefined especially in regards to the functionality of the app.
#3 Testing
In real-world scenarios, the app gets to be rigorously tested. Also, it is a good practice to test the app early as it minimizes the final costs.
#4 Review
At the end of the testing phase, it is time to review the app and get ready to launch.
#5 Deployment
Last but certainly not the least, this stage calls for proper planning where everything is in control. Technically speaking, here integrity of the live environment is protected and correct components are released.
Did We Mention About Mobile App Development Challenges?
An industry-wide skills crisis – Unfortunately, due to unawareness of the career companies are unable to set their lives in the app development realm. Moreover, app development also takes time. it currently takes between six months to a year to develop and roll out.
It’s a costly process – More than 62 percent of organizations are accounted for spending more than $500,000 to make only one to three applications.
Working with multiple platforms and devices – Right from i Pads to i Phones, Android and Windows phones and tablets and Windows, Linux and Apple desktops, apps need to work across these devices (irrespective of the operating system and the size) but this is a key development challenge.
Choosing Web, Hybrid or Native- Each company needs to decide on the best kind of apps for their business- web apps, hybrid apps or full Visual Studio and Xamarin projects to deploy native apps? Each approach can have its development challenges.
Integration issues- Developers often come up against integration challenges. Successful apps will integrate and synchronize with multiple types of SQL databases, and back-end databases.
Overcome them?
One of the best solutions I can think of is making the most rapid app development tools. By using these tools one can develop sophisticated, fully functional web, hybrid, and even native business apps far more quickly than traditional development methods.
Takeaways
The mobile app development is not just about a restricted clique of savvy engineers anymore. Even though you are not technology-focused, you can create one easily. Lastly, execution is as important as ideation. If technology is not your expertise, you should not focus on it, because there are more important things to do. The most brilliant idea is worth much less than great execution. You just couldn’t describe it better than this. You need a plan, and you need to run it smoothly.
And that’s all for now! I hope you might have taken in some things about what goes into building a portable application directly without any preparation.
0 notes
Text
The PICO-8 Virtual Fantasy Console is an idealized constrained modern day game maker
I love everything about PICO-8. It's a fantasy gaming console that wants you - and the kids in your life and everyone you know - to make games!
How cool is that?
You know the game Celeste? It's available on every platform, has one every award and is generally considered a modern-day classic. Well the first version was made on PICO-8 in 4 days as a hackathon project and you can play it here online. Here's the link when they launched in 4 years ago on the forums. They pushed the limits, as they call out "We used pretty much all our resources for this. 8186/8192 code, the entire spritemap, the entire map, and 63/64 sounds." How far could one go? Wolf3D even?
"A fantasy console is like a regular console, but without the inconvenience of actual hardware. PICO-8 has everything else that makes a console a console: machine specifications and display format, development tools, design culture, distribution platform, community and playership. It is similar to a retro game emulator, but for a machine that never existed. PICO-8's specifications and ecosystem are instead designed from scratch to produce something that has it's own identity and feels real. Instead of physical cartridges, programs made for PICO-8 are distributed on .png images that look like cartridges, complete with labels and a fixed 32k data capacity."
What a great start and great proof that you can make an amazing game in a small space. If you loved GameBoys and have fond memories of GBA and other small games, you'll love PICO-8.
How to play PICO-8 cartridges
If you just want to explore, you can go to https://www.lexaloffle.com and just play in your browser! PICO-8 is a "fantasy console" that doesn't exist physically (unless you build one, more on that later). If you want to develop cartridges and play locally, you can buy the whole system (any platform) for $14.99, which I have.
If you have Windows and Chrome or New Edge you can just plug in your Xbox Controller with a micro-USB cable and visit https://www.lexaloffle.com/pico-8.php and start playing now! It's amazing - yes I know how it works but it's still amazing - to me to be able to play a game in a web browser using a game controller. I guess I'm easily impressed.
It wasn't very clear to me how to load and play any cartridge LOCALLY. For example, I can play Demon Castle here on the Forums but how do I play it locally and later, offline?
The easy way is to run PICO-8 and hit ESC to get their command line. Then I type LOAD #cartid where #cartid is literally the id of the cartridge on the forums. In the case of Demon Castle it's #demon_castle-0 so I can just LOAD #demon_castle-0 followed by RUN.
Alternatively - and this is just lovely - if I see the PNG pic of the cartridge on a web page, I can just save that PNG locally and save it in C:\Users\scott\AppData\Roaming\pico-8\carts then run it with LOAD demon_castle-0 (or I can include the full filename with extensions). THAT PNG ABOVE IS THE ACTUAL GAME AS WELL. What a clever thing - a true virtual cartridge.
One of the many genius parts of the PICO-8 is that the "Cartridges" are actually PNG pictures of cartridges. Drink that in for a second. They save a screenshot of the game while the cart is running, then they hide the actual code in a steganographic process - they are hiding the code in two of the bits of the color channels! Since the cart pics are 160*205 there's enough room for 32k.
A p8 file is source code and a p8.png is the compiled cart!
How to make PICO-8 games
The PICO-8 software includes everything you need - consciously constrained - to make AND play games. You hit ESC to move between the game and the game designer. It includes a sprite and music editor as well.
From their site, the specifications are TIGHT on purpose because constraints are fun. When I write for the PalmPilot back in the 90s I had just 4k of heap and it was the most fun I've had in years.
Display - 128x128 16 colours
Cartridge Size - 32k
Sound - 4 channel chip blerps
Code - Lua
Sprites - 256 8x8 sprites
Map - 128x32 cels
"The harsh limitations of PICO-8 are carefully chosen to be fun to work with, to encourage small but expressive designs, and to give cartridges made with PICO-8 their own particular look and feel."
The code you will use is LUA. Here's some demo code of a Hello World that animates 11 sprites and includes two lines of text
t = 0 music(0) -- play music from pattern 0 function _draw() cls() for i=1,11 do -- for each letter for j=0,7 do -- for each rainbow trail part t1 = t + i*4 - j*2 -- adjusted time y = 45-j + cos(t1/50)*5 -- vertical position pal(7, 14-j) -- remap colour from white spr(16+i, 8+i*8, y) -- draw letter sprite end end print("this is pico-8", 37, 70, 14) print("nice to meet you", 34, 80, 12) spr(1, 64-4, 90) -- draw heart sprite t += 1 end
That's just a simple example, there's a huge forum with thousands of games and lots of folks happy to help you in this new world of game creation with the PICO-8. Here's a wonderful PICO-8 Cheat Sheet to print out with a list of functions and concepts. Maybe set it as your wallpaper while developing? There's a detailed User Manual and a 72 page PICO-8 Zine PDF which is really impressive!
And finally, be sure to bookmark this GitHub hosted amazing curated list of PICO-8 resources! https://github.com/pico-8/awesome-PICO-8
Writing PICO-8 Code in another Editor
There is a 3 year old PICO-8 extension for Visual Studio Code that is a decent start, although it's created assuming a Mac, so if you are a Windows user, you will need to change the Keyboard Shortcuts to something like "Ctrl-Shift-Alt-R" to run cartridges. There's no debugger that I'm seeing. In an ideal world we'd use launch.json and have a registered PICO-8 type and that would make launching after changing code a lot clearer.
There is a more recent "pico8vscodeditor" extension by Steve Robbins that includes snippets for loops and some snippets for the Pico-8 API. I recommend this newer fleshed out extension - kudos Steve! Be sure to include the full path to your PICO-8 executable, and note that the hotkey to run is a chord, starting with "Ctrl-8" then "R."
Editing code directly in the PICO-8 application is totally possible and you can truly develop an entire cart in there, but if you do, you're a better person than I. Here's a directory listing in VSCode on the left and PICO-8 on the right.
And some code.
You can expert to HTML5 as well as binaries for Windows, Mac, and Linux. It's a full game maker! There are also other game systems out there like PicoLove that take PICO-8 in different directions and those are worth knowing about as well.
What about a physical PICO-8 Console
A number of folks have talked about the ultimate portable handheld PICO-8 device. I have done a lot of spelunking and as of this writing it doesn't exist.
You could get a Raspberry Pi Zero and put this Waveshare LCD hat on top. The screen is perfect. But the joystick and buttons...just aren't. There's also no sound by default. But $14 is a good start.
The Tiny GamePi15, also from Waveshare could be good with decent buttons but it has a 240x240 screen.
The full sized Game Hat looks promising and has a large 480x320 screen so you could play PICO-8 at a scaled 256x256.
The RetroStone is also close but you're truly on your own, compiling drivers yourself (twitter thread) from what I can gather
The ClockworkPI GameShell is SOOOO close but the screen is 320x240 which makes 128x128 an awkward scaled mess with aliasing, and the screen the Clockwork folks chose doesn't have a true grid if pixels. Their pixels are staggered. Hopefully they'll offer an alternative module one day, then this would truly be the perfect device. There are clear instructions on how to get going.
The PocketCHIP has a great screen but a nightmare input keyboard.
For now, any PC, Laptop, or Rasberry Pi with a proper setup will do just fine for you to explore the PICO-8 and the world of fantasy consoles!
Sponsor: OzCode is a magical debugging extension for C#/.NET devs working in Visual Studio. Get to the root cause of your bugs faster with heads-up display, advanced search inside objects, LINQ query debugging, side-by-side object comparisons & more. Try for free!
© 2019 Scott Hanselman. All rights reserved.
The PICO-8 Virtual Fantasy Console is an idealized constrained modern day game maker published first on http://7elementswd.tumblr.com/
0 notes