#anyway i’m on desktop app now so there shouldn’t be a problem
Explore tagged Tumblr posts
Text
(2021 art) some old character sheets of my oc’s <3 i will redesign them sooner or later lol but for now this is all i’ve got (btw the little drawings above them are other possible designs and color palettes i considered, this wasn’t supposed to be posted so i left them there. whatever.) (ALSO. Alessandra is supposed to be goth��� i have to change her casual outfits she wouldn’t wear That)
+ some drawtober drawings i did of them lol ! (yeah that’s mafuyu project sekai)
#I’VE BEEN TRYING TO POST THIS FOR A MONTH NOW#BUT THE TUMBLR APP WON’T STOP CRASHING EVERYTIME I TRY LOL#anyway i’m on desktop app now so there shouldn’t be a problem#but im too lazy to write everything again so i’ll tell you more about them in another post im tired lmao#jysk_doodles#jayskai_ocs#doodles#original characters#ocs#my ocs#my oc#my original characters#my original character#my art#character art#character design#drawtober#mafuyu asahina#(idk she’s in the post i guess i should tag her lol)#2021 art#project sekai
2 notes
·
View notes
Note
hey, so, I had an art related question... if all of this is too much, feel free to ignore it.
the backstory is that I've had the same laptop since early high school but recently I had a birthday (I'm 28 now). my parents got me an HP laptop, and my friend got me a tablet, which she bought off of an online friend for $30. the problem is that I haven't had new technology like... ever? none that was actually mine anyway, and certainly nothing that could handle me using it for art.
and this is especially a problem when it comes to the tablet. my friend helped me get firealpaca onto the laptop, and get the tablet set up with the right drivers, aaaaand... I cannot make one line that looks good using it. I've been using pen and paper for so long and I have a really light touch, and it feels like I have to jam the pen down to get it to register, at which point I might as well have not set the pen sensitivity to anything at all because the thickest line is the only kind I can make?? any lighter and it won't show up on the screen at all. like I can ctrl+z and it doesn't even go back a step, the line didn't get drawn. there's like a 20% chance that any line I try to put down won't actually register. and tbh this isn't really what I had wanted... it's a huion tablet, which is the brand I wanted, but I was gonna buy myself one where you can see what you're drawing on the screen of the tablet itself. not just due to coordination issues, I think I could get used to that part, but because I feel like I wouldn't be having this specific problem with getting things to register. every single line I make looks like crap with this tablet, it makes me feel like I might as well be drawing with my feet, and I've been fidgeting with settings, and it doesn't seem like anything helps. I also still don't have a mouse for the laptop yet, so I can't click and drag anything very well because it has a trackpad, so messing with sliders is already aggravating.
I feel so lost and overwhelmed, and like if I buy anything else, I'm just going to end up with more unusable stuff because *I'm* probably the problem. I just don't know anything, and trying is mentally fatiguing me so quickly... my brain knows what I want my art to look like, and my hands can do it with a real pen. I just have absolutely no clue how to make this machine produce anything.
so I guess my questions are stuff like, what equipment do you use? are there tablets that will register a light touch or am I really going to have to be this heavy handed in order to work with one? what resolution/canvas size do you usually work on? any recommendations for what program to use?
overall, I'd really like to get myself something that feels more intuitive than the tablet... honestly, I was finding some success drawing with just my finger on the touch screen of my phone at one point. there were still a lot of problems with that, but the nail in the coffin was that my phone's memory space filled up and I had to get rid of the drawing app to make it functional again (it's an iphone, which is why). maybe I should just get an ipad or something...? though, one more thing on the mountain of potential options is the last thing my crumbling ADHD brain needs. I've been taking a break from art in general because I've still maintained my 40-hours-a-week work schedule through the whole pandemic... I do 10 hour shifts and work overnight, so I technically have free time since I only work 4 days a week, but the type of work I do leaves me with no energy at all. so I've been in an art slump and I've been wanting to get out of it, but this is just making art feel impossible, even though the whole reason why I've always wished I could draw digitally is so that I can color digitally. I had been drawing things in pen and scanning them to color in photoshop, but cleanup takes so long that I literally can't produce finished work anymore. I'm out of options that aren't prohibitively labor intensive and frustrating.
this was probably way too much information, but if you have any advice I'd be really grateful.
Huh, well first off HAPPY BIRTHDAY DUDE!! Congrats on the sweet new tech (even if it's been a bit frustrating) and well-deserved celebration!
From the sounds of it I think the main issue is probably your tablet (this is pure speculation on my end though, so you know, grain of salt and all). You're right in that you shouldn't have to fight against your equipment. I have a really light touch too and I've never had the same issue. I personally don't have any experience with huion tablets, but if you're having trouble getting your lines to register then it might have been worn down by the previous user. It's not so much about buying a monitor (the screen one) vs. tablet so much as getting working equipment.
An iPad is a great alternative!! I've played around with the apple pencil and procreate and it's a super intuitive program with (obviously) super easy set up! You get the drawing on the screen AND really nice pen pressure. I'm really happy seeing it opening up new doors for more people to get into digital art!
In terms of your current laptop/tablet situation:
My set up rn is pretty pricey ngl; I have a PC desktop computer with a 16 inch Wacom Cintiq. Getting started in digital art doesn't mean you have to drop a bag on a ton of equipment right from the get go though! If you're looking for a safe small investment, I'd recommend getting a Wacom Bamboo pen tablet!
This lil' baby right here is what I started with!! I think cost-wise it floats around 70ish bucks, but that's exponentially more affordable than buying a huge monitor. One of my friends who's also a pro artist uses a similar small tablet because it works great! That's an alternative that might be worth looking into.
You can also get free trials on other drawing programs (clip studio paint is a great one!) To test and see if it's a software issue with firealpaca.
You could also try checking online forums to see if anyone else is running into similar issues, or watch some YouTube videos of people reviewing different tablets. I know this might be even more overwhelming, so I'd try and narrow the scope to focus on one thing at a time.
My best advice right now would actually be to get a mouse, or any other accessories you need. I've also been in your shoes where I was completely overwhelmed, and I can say that checking off all the small easy things makes a HUGE difference! It makes you feel more in control of the situation, and even if you're still having trouble with digital art you can at least get more comfortable using your laptop in the mean time.
You got this dude!! I believe in you!!
EDIT:
Thanks @wooliebirds!
99 notes
·
View notes
Text
Reading More Productively | Getting Into the Habit
If you’re anything like me right now you’re shaking your head thinking, how did I not finish as many books as I had liked to this year? Or the classic “why am I not reaching my Goodreads goal?” Well, my friend, that means you have to read a lot smarter and no, I don’t mean more “intelligent books.” Having trouble getting back into reading can be a result of many things and I’ve noticed quite a few of these from my own reading habits.
LACK OF INTEREST
You might be finding yourself not having any inspiration to sitting down and having yourself a good old reading sesh. This is usually because you’re probably a mood reader and not only that, you’re bored af with your TBR list. You need to cut off and forget those books that aren’t serving you any purpose and are basically TBR place holders. If you need some more ideas on how to sort yours read one of my past posts on how to sort your TBR into a more manageable list.
FOLLOW BOOK BLOGGERS, BOOKTUBERS, AND BOOKSTAGRAMMERS
Sometimes all it takes is to follow someone who has similar tastes in books as you. Don’t waste your time following someone if you have nothing in common with your reading. It makes more sense to follow someone who digests the same genres and authors that you adore. Plus, you find another book bestie to read along with! :)
YOUR FOCUS NEEDS MORE FOCUS
Not gonna lie, this is probably my number one problem and I’m probably speaking on behalf of like 90% of other readers when I say that I have issues getting off the internet. Specifically as readers we struggle with this the most because we use the online world to find more books to discover and we are starving for knowledge or to immerse ourselves in another person’s world. This is completely okay, but taking all your spare time to check the latest tweets on Twitter? Eh, not so okay for your TBR pile. Unplug from the data and wifi so you can truly dive into that book that’s been sitting on your bedside table for over the past week.
JOIN IN ON #READATHONS
Sometimes knowing that you’ve got a community at the touch of your fingertips that’s reading at the same time as you makes the simple act of reading more fun! If you’re at a loss of which to follow go read one of my recent posts to discover some new readathons!
GRAB A READING BUDDY
So maybe you’re not the large crowd reading type? That’s okay too because there’s always the option of finding someone IRL or online to buddy read with who has similar reading tastes. A lot of times all it takes is a quick tweet/hashtag #buddyread/post/DM to ask others out there who’d want to join you.
START A BOOK CLUB OR JOIN ONE
So what if you’re an inbetweener? That’s cool, you can always create your own book club or find one that’s already established. Just search #bookclub on any of the social apps you use to find one to your liking. When in doubt look into some book clubs for your favorite genres in Facebook groups. If you need any tips on how to start a book club read another post from this #Bookmas series.
TAKE PART IN THE #READINGAFTER10 CHALLENGE
It’s funny, I’ve been telling myself to do this for like the past year. No joke. 😂 BookTuber, Ariel Bissett, started this challenge awhile back hoping to contribute more of her time reading versus wasting time elsewhere. You can search into the challenge and see what others have been up to by looking up the hashtag on Instagram. Ariel at one point explains that she fell off the bandwagon not long after, probably due to being so busy with all her creative bookish YouTube content that she’s always up to! Anyways, just because she may not be participating at this moment doesn’t mean that we shouldn’t give it a go! Let’s bring back this movement! Honestly, there’s a few awesome benefits to this. 1) Less time on social media = less exposure to blue light on your phones. This means that you have an easier time falling asleep at night. 2) More reading time. 3) Finally catching up on the top books of your TBR pile.
SUBSCRIBE TO A BOOK BOX
When you’re getting a newly released book every month you’re more inclined to read it if there’s others getting it too. Some book boxes even include fun activities and communities that you can be a part of. So if you’re feeling out of place with no close friends that read this would be a great option for you! I’ve conveniently made a list of 18 book boxes the other day that goes into detail of what they include as well as the current prices (as of November 2018).
USE SOME APPS AND PHONE SETTINGS TO DISTRACT YOU FROM ACTUALLY BEING “ONLINE”
FOREST
If you have a love for greenery and artificial woods then the Forest app is for you! This is seriously one of the most adorable productivity apps you can download on your phone or use via your browser (if you have easy access to a computer). Every day you start off with a clean slate of grass and the goal is to grow your forest as much as you can in a day. It’s fun because over time you rack up coins to buy different kinds of trees to grow! You can also sync your account from mobile to desktop if you have other stuff you want to work on like I do with book blogging! Another great perk is the ability to block yourself from certain apps and websites which is helpful against your online weaknesses.
POMODORO
This is an app a lot of people use when they need to get some sort of task finished, but it can easily be used as a timer for reading! Simple set the timer for 25 minutes and keep reading! If the timer goes off, feel free to either keep reading or move onto something else that needs to be done in your daily tasks. This is such a short time frame that it will be simple for you to dedicate only 25 minutes a day to reading or more sessions if you’d prefer.
STAYFOCUSD
For those of you that like to be on a desktop/laptop throughout the day this is another great service similar to Forest where you can block specific websites from being used while being in focus mode for specific amounts of time. This one is available as a Google chrome extension.
STAY FOCUSED
Almost the same name as the previous one I’ve mentioned as well as similar features, but they take it a step forward by letting you choose a maximum amount of time to spend on particular sites/apps as well as which days of the week. This is an app offered for Android. I have mainly android based devices so if you’re an iOS user your best bet is to search for similar apps/extensions as the ones I’ve mentioned above. Some may or may not be offered via both iOS and Android.
RAIN SOUNDS
If you’re a person that needs some kind of noise in the background, but isn’t distracting (like sound lyrics) you should look into downloading the Rain Sounds app. They have a variety of different tracks of rain in different atmospheres and environments and you can edit the specific sounds you’re hearing as well..
AIRPLANE MODE
Though, not QUITE as fun as using the Forest app you can always set your phone to airplane mode (or silent for those of you with better willpower). It’s the easiest and quickest way to get you sucked into a book.
I hope that I helped you figure out some new ways to get back into the habit of reading. I know it can be hard with the online world that we have, but your TBR pile misses you! Pay attention to it! Give it some love! :)
Check back on my socials, join my newsletter, and/or come back here tomorrow to read another #Bookmas filled post!
Read my other posts in the #25DaysofBookmas series!
Subscribe to my blog so you never miss another post!
Learn more about me - your friendly, interweb book nerd! :)
Follow me where I’m social:
Twitter: @whimsiesofanerd
Instagram: @whimsiesofanerdgirl
Goodreads: @whimsiesofanerdgirl
Pinterest: @whimsiesofanerd
Facebook: @whimsiesofanerdgirl
Have a suggestion or want to get in touch? Email me: [email protected]
2 notes
·
View notes
Text
““safe blogs put constraints on artists wahh”
…
like dude if you and your fellow artists are drawing/writing about pedophilia, rape/romanticized rape, homophobic tropes, & racist shit
then GOOD you deserve to be constrained jfccccc””
———
I gotta go in on this, oh my god. I hope you’re in for a read lmao. I am in a shit mood so I am going to be vague tonight. Time for me to debunk this shit ( • ̀ω•́ )✧
—"Safe blogs put constraints on artists wahh"
Well of course they do. Like those with0ut-theshit blogs for example, those blogs not only say which people they shouldn’t reblog from because they drew a ship you don’t like, it actually labels them as a shitty person because they drew something for that ship. Whether it was a gift art for a friend, a commission, or even just a thing for a online group project, that blog labeled them as a bad person for drawing the pairing you deemed as unhealthy. It’s fine if you do not want to reblog a particular ship from an artist, but to blatantly refuse to support an artist, new or old, is just immature and really shitty behavior if I am being honest here. Which I am. No one deserves to be cast out of a “safe blog” for their shipping preferences. Whether one ships 0tayur1 (which is the main reason I am going so hard rn), sh@l@din, Sh31th, or even s@ngb*m, it does not make them a bad/unsafe artist and person.
—“like dude if you and your fellow artists are drawing/writing about pedophilia, rape/romanticized rape, homophobic tropes, & racist shit, then GOOD you deserve to be constrained jfccccc“
Okay. Since you did tag an*i 0t@yur1, I am going to debunk all of what you claim it to be. And defend my fellow artists and fanfic writers everywhere.
First things first, the whole pedophilia accusation… 0tab3k is in no way a pedophile. That word has been thrown around way too much for it to have any goddamn meaning at this point. He isn’t five years older than Yur1, he is barely an adult, Yur1 who is 16, is not a prebuescent child under the age of 13 which is the cut off age for pedophilia. I won’t delve into this further because I’m sure many people, CSA victims included, have told you an*is time and again, in depth, what pedophilia actually fucking means. And with some of the victims relaying their own experiences to you to prove it.
Second, 0tab3k….is….fucking….eighteen. He just turned eighteen two months prior of meeting Yur10. While it does mean, by law he has reached the age of majority in both Russia, Kazakhstan, and in 75% of the United States, he is still a teenager like Yur1. Reaching the age of majority in whatever country you reside from and live in does not mean you are an adult. Human brains do not finish developing until one is 25 anyway.
The age difference between 0tab3k and Yur10 is that of a Sophomore (10th grader) and Senior (12th grader) in high school. There are literally lots of couples who have the same age difference that 0tayur1 has and 99% of them were still the healthiest relationships they ever had. There is nothing abusive about an 18 year old and 16 year old dating. At all. Abuse can happen in any relationship no matter what age dynamic. It isn’t always the older person abusing the younger, or the man abusing the woman. LBGTQ relationships have the potential to be abusive if one or both partners have underlying problems from their past or mental health. It doesn’t happen with someone who is an adult preying on someone younger and vulnerable. It can happen with fucking anyone. Stop projecting abuse that aren’t there in the first place onto ships you hate.
Rape/romanticized rape. Okay as much as I do not wish to touch on this, I’m going to just a little. People can write about rape/noncon if they want. Like it or not, dark themes in fiction is a healthy way of exploring as long as you don’t try to condone or do that shit to someone in real life. Rape is a vile, degrading act no one deserves to go through. I don’t like it and I don’t like to write it (I wouldn’t even dare draw it either), people can explore that aspect of fiction if they please. As long as they tag their shit appropriately so people know to avoid it, I don’t see it as an issue. I don’t think anyone should romanticize rape, but it happens. 0tayur1 is not one of the fictional ships that happens in at all, my guy.
Now I’m going to talk about the homophobic tropes. My question is, fucking where is it?? Are you talking about ABO? Yur10 being grossed out by v1ktuur1 being all lovey dovey? Male/female roles inserted into a M/M ship? V1kt0r not doing the dishes or some shit? These are barely homophobic. You just have a stick so far up your ass about overused fandom tropes, you’re tasting it for next 84 years. And you don’t realize that 90% of the fandom is LBGTQ like yourself because you’re probably screaming "those straight, homophobic white girls” everytime you see some shit you don’t like that is barely an issue.
The racism thing, the reach is so far with this one, man. Tell me, where is the racist shit in this or any pairing??? I don’t see it. None of us do. Again, you are fucking projecting the problematic stuff that isn’t there in whatever you’re complaining about. Are you actually going around and looking for the shit so you can bitch to whoever listens and get them on your side? That is completely fucked of you.
“then GOOD you deserve to be constrained jfccccc“
Fuck off with this. Seriously??? You honestly think we artists who actively try to stay in our lane with our ships, having good fun, tagging what needs to be tagged deserve to be constrained, treated like a bad criminal because of the content of what we draw or write? People are so done with your “purity” complex that the ones on your safe list are actively trying to get off of it by drawing the things you, by your dumb ass morality standards, deem as bad and unsafe. When you make people on your “safe” list angry that you have done that while alienating a great deal of the fandom you’re in, then the real problematic person here is you. And when you run out of safe artists and people to support, your purpose to make fandom safe will be for naught. I’m sure deep down you know this. Maybe not. Whatever.
If you really want to avoid what squicks you, then actually learn to use the resources provided on the internet for use at the availability of your fingertips. If you are on mobile, use Washboard and don’t use the app. If you are on desktop, use xkit or tumblr savior. No one deserves to be constrained. You do not have the authority to do so in any fandom no matter how hard you try. Tumblr is not your safe space, fandom is not your safe space. The entire internet is not your safe space. No one on there or in the real world is going to cater to you. Ever. Your behavior as an an*i is abhorrent. Stop.
(submitted by crystallinekai)
👏🏽👏🏽👏🏽👏🏽👏🏽
1 note
·
View note
Link
(Via: Hacker News)
The log/event processing pipeline you can't have
Let me tell you about the still-not-defunct real-time log processing pipeline we built at my now-defunct last job. It handled logs from a large number of embedded devices that our ISP operated on behalf of residential customers. (I wrote and presented previously about some of the cool wifi diagnostics that were possible with this data set.)
Lately, I've had a surprisingly large number of conversations about logs processing pipelines. I can find probably 10+ already-funded, seemingly successful startups processing logs, and the Big Name Cloud providers all have some kind of logs thingy, but still, people are not satisfied. It's expensive and slow. And if you complain, you mostly get told that you shouldn't be using unstructured logs anyway, you should be using event streams.
That advice is not wrong, but it's incomplete.
Instead of doing a survey of the whole unhappy landscape, let's just ignore what other people suffer with and talk about what does work. You can probably find, somewhere, something similar to each of the components I'm going to talk about, but you probably can't find a single solution that combines it all with good performance and super-low latency for a reasonable price. At least, I haven't found it. I was a little surprised by this, because I didn't think we were doing anything all that innovative. Apparently I was incorrect.
The big picture
Let's get started. Here's a handy diagram of all the parts we're going to talk about:
The ISP where I worked has a bunch of embedded Linux devices (routers, firewalls, wifi access points, and so on) that we wanted to monitor. The number increased rapidly over time, but let's talk about a nice round number, like 100,000 of them. Initially there were zero, then maybe 10 in our development lab, and eventually we hit 100,000, and later there were many more than that. Whatever. Let's work with 100,000. But keep in mind that this architecture works pretty much the same with any number of devices.
(It's a "distributed system" in the sense of scalability, but it's also the simplest thing that really works for any number of devices more than a handful, which makes it different from many "distributed systems" where you could have solved the problem much more simply if you didn't care about scaling. Since our logs are coming from multiple sources, we can't make it non-distributed, but we can try to minimize the number of parts that have to deal with the extra complexity.)
Now, these are devices we were monitoring, not apps or services or containers or whatever. That means two things: we had to deal with lots of weird problems (like compiler/kernel bugs and hardware failures), and most of the software was off-the-shelf OS stuff we couldn't easily control (or didn't want to rewrite).
(Here's the good news: because embedded devices have all the problems from top to bottom, any solution that works for my masses of embedded devices will work for any other log-pipeline problem you might have. If you're lucky, you can leave out some parts.)
That means the debate about "events" vs "logs" was kind of moot. We didn't control all the parts in our system, so telling us to forget logs and use only structured events doesn't help. udhcpd produces messages the way it wants to produce messages, and that's life. Sometimes the kernel panics and prints whatever it wants to print, and that's life. Move on.
Of course, we also had our own apps, which means we could also produce our own structured events when it was relevant to our own apps. Our team had whole never-ending debates about which is better, logs or events, structured or unstructured. In fact, in a move only overfunded megacorporations can afford, we actually implemented both and ran them both for a long time.
Thus, I can now tell you the final true answer, once and for all: you want structured events in your database.
...but you need to be able to produce them from unstructured logs. And once you can do that, exactly how those structured events are produced (either from logs or directly from structured trace output) turns out to be unimportant.
But we're getting ahead of ourselves a bit. Let's take our flow diagram, one part at a time, from left to right.
Userspace and kernel messages, in a single stream
Some people who have been hacking on Linux for a while may know about /proc/kmsg: that's the file good old (pre-systemd) klogd reads kernel messages from, and pumps them to syslogd, which saves them to a file. Nowadays systemd does roughly the same thing but with more d-bus and more corrupted binary log files. Ahem. Anyway. When you run the dmesg command, it reads the same kernel messages (in a slightly different way).
What you might not know is that you can go the other direction. There's a file called /dev/kmsg (note: /dev and not /proc) which, if you write to it, produces messages into the kernel's buffer. Let's do that! For all our messages!
Wait, what? Am I crazy? Why do that?
Because we want strict sequencing of log messages between programs. And we want that even if your kernel panics.
Imagine you have, say, a TV DVR running on an embedded Linux system, and whenever you go to play a particular recorded video, the kernel panics because your chipset vendor hates you. Hypothetically. (The feeling is, hypothetically, mutual.) Ideally, you would like your logs to contain a note that the user requested the video, the video is about to start playing, we've opened the file, we're about to start streaming the file to the proprietary and very buggy (hypothetical) video decoder... boom. Panic.
What now? Well, if you're writing the log messages to disk, the joke's on you, because I bet you didn't fsync() after each one. (Once upon a time, syslogd actually did fsync() after each one. It was insanely disk-grindy and had very low throughput. Those days are gone.) Moreover, a kernel panic kills the disk driver, so you have no chance to fsync() it after the panic, unless you engage one of the more terrifying hacks like, after a panic, booting into a secondary kernel whose only job is to stream the message buffer into a file, hoping desperately that the disk driver isn't the thing that panicked, that the disk itself hasn't fried, and that even if you do manage to write to some disk blocks, they are the right ones because your filesystem data structure is reasonably intact.
(I suddenly feel a lot of pity for myself after reading that paragraph. I think I am more scars than person at this point.)
ANYWAY
The kernel log buffer is in a fixed-size memory buffer in RAM. It defaults to being kinda small (tens or hundreds of kBytes), but you can make it bigger if you want. I suggest you do so.
By itself, this won't solve your kernel panic problems, because RAM is even more volatile than disk, and you have to reboot after a kernel panic. So the RAM is gone, right?
Well, no. Sort of. Not exactly.
Once upon a time, your PC BIOS would go through all your RAM at boot time and run a memory test. I remember my ancient 386DX PC used to do this with my amazingly robust and life-changing 4MB of RAM. It took quite a while. You could press ESC to skip it if you were a valiant risk-taking rebel like myself.
Now, memory is a lot faster than it used to be, but unfortunately it has gotten bigger more quickly than it has gotten faster, especially if you disable memory caching, which you certainly must do at boot time in order to write the very specific patterns needed to see if there are any bit errors.
So... we don't do the boot-time memory test. That ended years ago. If you reboot your system, the memory mostly will contain the stuff it contained before you rebooted. The OS kernel has to know that and zero out pages as they get used. (Sometimes the kernel gets fancy and pre-zeroes some extra pages when it's not busy, so it can hand out zero pages more quickly on demand. But it always has to zero them.)
So, the pages are still around when the system reboots. What we want to happen is:
The system reboots automatically after a kernel panic. You can do this by giving your kernel a boot parameter like "panic=1", which reboots it after one second. (This is not nearly enough time for an end user to read and contemplate the panic message. That's fine, because a) on a desktop PC, X11 will have crashed in graphics mode so you can't see the panic message anyway, and b) on an embedded system there is usually no display to put the message on. End users don't care about panic messages. Our job is to reboot, ASAP, so they don't try to "help" by power cycling the device, which really does lose your memory.) (Advanced users will make it reboot after zero seconds. I think panic=0 disables the reboot feature rather than doing that, so you might have to patch the kernel. I forget. We did it, whatever it was.)
The kernel always initializes the dmesg buffer in the same spot in RAM.
The kernel notices that a previous dmesg buffer is already in that spot in RAM (because of a valid signature or checksum or whatever) and decides to append to that buffer instead of starting fresh.
In userspace, we pick up log processing where we left off. We can capture the log messages starting before (and therefore including) the panic!
And because we redirected userspace logs to the kernel message buffer, we have also preserved the exact sequence of events that led up to the panic.
If you want all this to happen, I have good news and bad news. The good news is we open sourced all our code; the bad news is it didn't get upstreamed anywhere so there are no batteries included and no documentation and it probably doesn't quite work for your use case. Sorry.
Open source code:
logos tool for sending userspace logs to /dev/klogd. (It's logs... for the OS.. and it's logical... and it brings your logs back from the dead after a reboot... get it? No? Oh well.) This includes two per-app token buckets (burst and long-term) so that an out-of-control app won't overfill the limited amount of dmesg space.
PRINTK_PERSIST patch to make Linux reuse the dmesg buffer across reboots.
Even if you don't do any of the rest of this, everybody should use PRINTK_PERSIST on every computer, virtual or physical. Seriously. It's so good.
(Note: room for improvement: it would be better if we could just redirect app stdout/stderr directly to /dev/kmsg, but that doesn't work as well as we want. First, it doesn't auto-prefix incoming messages with the app name. Second, libc functions like printf() actually write a few bytes at a time, not one message per write() call, so they would end up producing more than one dmesg entry per line. Third, /dev/kmsg doesn't support the token bucket rate control that logos does, which turns out to be essential, because sometimes apps go crazy. So we'd have to further extend the kernel API to make it work. It would be worthwhile, though, because the extra userspace process causes an unavoidable delay between when a userspace program prints something and when it actually gets into the kernel log. That delay is enough time for a kernel to panic, and the userspace message gets lost. Writing directly to /dev/kmsg would take less CPU, leave userspace latency unchanged, and ensure the message is safely written before continuing. Someday!)
(In related news, this makes all of syslogd kinda extraneous. Similarly for whatever systemd does. Why do we make everything so complicated? Just write directly to files or the kernel log buffer. It's cheap and easy.)
Uploading the logs
Next, we need to get the messages out of the kernel log buffer and into our log processing server, wherever that might be.
(Note: if we do the above trick - writing userspace messages to the kernel buffer - then we can't also use klogd to read them back into syslogd. That would create an infinite loop, and would end badly. Ask me how I know.)
So, no klogd -> syslogd -> file. Instead, we have something like syslogd -> kmsg -> uploader or app -> kmsg -> uploader.
What is a log uploader? Well, it's a thing that reads messages from the kernel kmsg buffer as they arrive, and uploads them to a server, perhaps over https. It might be almost as simple as "dmesg | curl", like my original prototype, but we can get a bit fancier:
Figure out which messages we've already uploaded (eg. from the persistent buffer before we rebooted) and don't upload those again.
Log the current wall-clock time before uploading, giving us sync points between monotonic time (/dev/kmsg logs "microseconds since boot" by default, which is very useful, but we also want to be able to correlate that with "real" time so we can match messages between related machines).
Compress the file on the way out.
Somehow authenticate with the log server.
Bonus: if the log server is unavailable because of a network partition, try to keep around the last few messages from before the partition, as well as the recent messages once the partition is restored. If the network partition was caused by the client - not too rare if you, like us, were in the business of making routers and wifi access points - you really would like to see the messages from right before the connectivity loss.
Luckily for you, we also open sourced our code for this. It's in C so it's very small and low-overhead. We never quite got the code for the "bonus" feature working quite right, though; we kinda got interrupted at the last minute.
Open source code:
loguploader C client, including an rsyslog plugin for Debian in case you don't want to use the /dev/kmsg trick.
devcert, a tool (and Debian package) which auto-generates a self signed "device certificate" wherever it's installed. The device certificate is used by a device (or VM, container, whatever) to identify itself to the log server, which can then decide how to classify and store (or reject) its logs.
One thing we unfortunately didn't get around to doing was modifying the logupload client to stream logs to the server. This is possible using HTTP POST and Chunked encoding, but our server at the time was unable to accept streaming POST requests due to (I think now fixed) infrastructure limitations.
(Note: if you write load balancing proxy servers or HTTP server frameworks, make sure they can start processing a POST request as soon as all the headers have arrived, rather than waiting for the entire blob to be complete! Then a log upload server can just stream the bytes straight to the next stage even before the whole request has finished.)
Because we lacked streaming in the client, we had to upload chunks of log periodically, which leads to a tradeoff about what makes a good upload period. We eventually settled on about 60 seconds, which ended up accounting for almost all the end-to-end latency from message generation to our monitoring console.
Most people probably think 60 seconds is not too bad. But some of the awesome people on our team managed to squeeze all the other pipeline phases down to tens of milliseconds in total. So the remaining 60 seconds (technically: anywhere from 0 to 60 seconds after a message was produced) was kinda embarrassing. Streaming live from device to server would be better.
The log receiver
So okay, we're uploading the logs from client to some kind of server. What does the server do?
This part is both the easiest and the most reliability-critical. The job is this: receive an HTTP POST request, write the POST data to a file, and return HTTP 200 OK. Anybody who has any server-side experience at all can write this in their preferred language in about 10 minutes.
We intentionally want to make this phase as absolutely simplistic as possible. This is the phase that accepts logs from the limited-size kmsg buffer on the client and puts them somewhere persistent. It's nice to have real-time alerts, but if I have to choose between somewhat delayed alerts or randomly losing log messages when things get ugly, I'll have to accept the delayed alerts. Don't lose log messages! You'll regret it.
The best way to not lose messages is to minimize the work done by your log receiver. So we did. It receives the uploaded log file chunk and appends it to a file, and that's it. The "file" is actually in a cloud storage system that's more-or-less like S3. When I explained this to someone, they asked why we didn't put it in a Bigtable-like thing or some other database, because isn't a filesystem kinda cheesy? No, it's not cheesy, it's simple. Simple things don't break. Our friends on the "let's use structured events to make metrics" team streamed those events straight into a database, and it broke all the time, because databases have configuration options and you inevitably set those options wrong, and it'll fall over under heavy load, and you won't find out until you're right in the middle of an emergency and you really want to see those logs. Or events.
Of course, the file storage service we used was encrypted-at-rest, heavily audited, and auto-deleted files after N days. When you're a megacorporation, you have whole teams of people dedicated to making sure you don't screw this up. They will find you. Best not to annoy them.
We had to add one extra feature, which was authentication. It's not okay for random people on the Internet to be able to impersonate your devices and spam your logs - at least without putting some work into it. For device authentication, we used the rarely-used HTTP client-side certificates option and the devcert program (linked above) so that the client and server could mutually authenticate each other. The server didn't check the certificates against a certification authority (CA), like web clients usually do; instead, it had a database with a whitelist of exactly which certs we're allowing today. So in case someone stole a device cert and started screwing around, we could remove their cert from the whitelist and not worry about CRL bugs and latencies and whatnot.
Unfortunately, because our log receiver was an internal app relying on internal infrastructure, it wasn't open sourced. But there really wasn't much there, honest. The first one was written in maybe 150 lines of python, and the replacement was rewritten in slightly more lines of Go. No problem.
Retries and floods
Of course, things don't always go smoothly. If you're an ISP, the least easy thing is dealing with cases where a whole neighbourhood gets disconnected, either because of a power loss or because someone cut the fiber Internet feed to the neighbourhood.
Now, disconnections are not such a big deal for logs processing - you don't have any. But reconnection is a really big deal. Now you have tens or hundreds of thousands of your devices coming back online at once, and a) they have accumulated a lot more log messages than they usually do, since they couldn't upload them, and b) they all want to talk to your server at the same time. Uh oh.
Luckily, our system was designed carefully (uh... eventually it was), so it could handle these situations pretty smoothly:
The log uploader uses a backoff timer so that if it's been trying to upload for a while, it uploads less often. (However, the backoff timer was limited to no more than the usual inter-upload interval. I don't know why more people don't do this. It's rather silly for your system to wait longer between uploads in a failure situation than it would in a success situation. This is especially true with logs, where when things come back online, you want a status update now. And clearly your servers have enough capacity to handle uploads at the usual rate, because they usually don't crash. Sorry if I sound defensive here, but I had to have this argument a few times with a few SREs. I understand why limiting the backoff period isn't always the right move. It's the right move here.)
Less obviously, even under normal conditions, the log uploader uses a randomized interval between uploads. This avoids traffic spikes where, after the Internet comes back online, everybody uploads again exactly 60 seconds later, and so on.
The log upload client understands the idea that the server can't accept its request right now. It has to, anyway, because if the Internet goes down, there's no server. So it treats server errors exactly like it treats lack of connectivity. And luckily, log uploading is not really an "interactive" priority task, so it's okay to sacrifice latency when things get bad. Users won't notice. And apparently our network is down, so the admins already noticed.
The /dev/kmsg buffer was configured for the longest reasonable outage we could expect, so that it wouldn't overflow during "typical" downtime. Of course, there's a judgement call here. But the truth is, if you're having system-wide downtime, what the individual devices were doing during that downtime is not usually what you care about. So you only need to handle, say, the 90th percentile of downtime. Safely ignore the black swans for once.
The log receiver aggressively rejects requests that come faster than its ability to write files to disk. Since the clients know how to retry with a delay, this allows us to smooth out bursty traffic without needing to either over-provision the servers or lose log messages.
(Pro tip, learned the hard way: if you're writing a log receiver in Go, don't do the obvious thing and fire off a goroutine for every incoming request. You'll run out of memory. Define a maximum number of threads you're willing to handle at once, and limit your request handling to that. It's okay to set this value low, just to be safe: remember, the uploader clients will come back later.)
Okay! Now our (unstructured) logs from all our 100,000 devices are sitting safely in a big distributed filesystem. We have a little load-balanced, multi-homed cluster of log receivers accepting the uploads, and they're so simple that they should pretty much never die, and even if they do because we did something dumb (treacherous, treacherous goroutines!), the clients will try again.
What might not be obvious is this: our reliability, persistence, and scaling problems are solved. Or rather, as long as we have enough log receiver instances to handle all our devices, and enough disk quota to store all our logs, we will never again lose a log message.
That means the rest of our pipeline can be best-effort, complicated, and frequently exploding. And that's a good thing, because we're going to start using more off-the-shelf stuff, we're going to let random developers reconfigure the filtering rules, and we're not going to bother to configure it with any redundancy.
Grinding the logs
The next step is to take our unstructured logs and try to understand them. In other words, we want to add some structure. Basically we want to look for lines that are "interesting" and parse out the "interesting" data and produce a stream of events, each with a set of labels describing what categories they apply to.
Note that, other than this phase, there is little difference between how you'd design a structured event reporting pipeline and a log pipeline. You still need to collect the events. You still (if you're like me) need to persist your events across kernel panics. You still need to retry uploading them if your network gets partitioned. You still need the receivers to handle overloading, burstiness, and retries. You still would like to stream them (if your infrastructure can handle it) rather than uploading every 60 seconds. You still want to be able to handle a high volume of them. You're just uploading a structured blob instead of an unstructured blob.
Okay. Fine. If you want to upload structured blobs, go for it. It's just an HTTP POST that appends to a file. Nobody's stopping you. Just please try to follow my advice when designing the parts of the pipeline before and after this phase, because otherwise I guarantee you'll be sad eventually.
Anyway, if you're staying with me, now we have to parse our unstructured logs. What's really cool - what makes this a killer design compared to starting with structured events in the first place - is that we can, at any time, change our minds about how to parse the logs, without redeploying all the software that produces them.
This turns out to be amazingly handy. It's so amazingly handy that nobody believes me. Even I didn't believe me until I experienced it; I was sure, in the beginning, that the unstructured logs were only temporary and we'd initially use them to figure out what structured events we wanted to record, and then modify the software to send those, then phase out the logs over time. This never happened. We never settled down. Every week, or at least every month, there was some new problem which the existing "structured" events weren't configured to catch, but which, upon investigating, we realized we could diagnose and measure from the existing log message stream. And so we did!
Now, I have to put this in perspective. Someone probably told you that log messages are too slow, or too big, or too hard to read, or too hard to use, or you should use them while debugging and then delete them. All those people were living in the past and they didn't have a fancy log pipeline. Computers are really, really fast now. Storage is really, really cheap.
So we let it all out. Our devices produced an average of 50 MB of (uncompressed) logs per day, each. For the baseline 100,000 devices that we discussed above, that's about 5TB of logs per day. Ignoring compression, how much does it cost to store, say, 60 days of logs in S3 at 5TB per day? "Who cares," that's how much. You're amortizing it over 100,000 devices. Heck, a lot of those devices were DVRs, each with 2TB of storage. With 100,000 DVRs, that's 200,000 TB of storage. Another 300 is literally a rounding error (like, smaller than if I can't remember if it's really 2TB or 2TiB or what).
Our systems barfed up logs vigorously and continuously, like a non-drunken non-sailor with seasickness. And it was beautiful.
(By the way, now would be a good time to mention some things we didn't log: personally identifiable information or information about people's Internet usage habits. These were diagnostic logs for running the network and detecting hardware/software failures. We didn't track what you did with the network. That was an intentional decision from day 1.)
(Also, this is why I think all those log processing services are so badly overpriced. I wanna store 50 MB per device, for lots of devices. I need to pay S3 rates for that, not a million dollars a gigabyte. If I have to overpay for storage, I'll have to start writing fewer logs. I love my logs. I need my logs. I know you're just storing it in S3 anyway. You probably get a volume discount! Let's be realistic.)
But the grinding, though
Oh right. So the big box labeled "Grinder" in my diagram was, in fact, just one single virtual machine, for a long time. It lasted like that for much longer than we expected.
Whoa, how is that possible, you ask?
Well, at 5TB per day per 100,000 devices, that's an average of 57 MBytes per second. And remember, burstiness has already been absorbed by our carefully written log receivers and clients, so we'll just grind these logs as fast as they arrive or as fast as we can, and if there are fluctuations, they'll average out. Admittedly, some parts of the day are busier than others. Let's say 80 MBytes per second at peak.
80 MBytes per second? My laptop can do that on its spinning disk. I don't even need an SSD! 80 MBytes per second is a toy.
And of course, it's not just one spinning disk. The data itself is stored on some fancy heavily-engineered distributed filesystem that I didn't have to design. Assuming there are no, er, collossal, failures in provisioning (no comment), there's no reason we shouldn't be able to read files at a rate that saturates the network interface available to our machine. Surely that's at least 10 Gbps (~1 GByte/sec) nowadays, which is 12.5 of those. 1.25 million devices, all processed by a single grinder.
Of course you'll probably need to use a few CPU cores. And the more work you do per log entry, the slower it'll get. But these estimates aren't too far off what we could handle.
And yeah, sometimes that VM gets randomly killed by the cluster's Star Trek-esque hive mind for no reason. It doesn't matter, because the input data was already persisted by the log receivers. Just start a new grinder and pick up where you left off. You'll have to be able to handle process restarts no matter what. And that's a lot easier than trying to make a distributed system you didn't need.
As for what the grinder actually does? Anything you want. But it's basically the "map" phase in a mapreduce. It reads the data in one side, does some stuff to it, and writes out postprocessed stuff on the other side. Use your imagination. And if you want to write more kinds of mappers, you can run them, either alongside the original Grinder or downstream from it.
Our Grinder mostly just ran regexes and put out structures (technically protobufs) that were basically sets of key-value pairs.
(For some reason, when I search the Internet for "streaming mapreduce," I don't get programs that do this real-time processing of lots of files as they get written. Instead, I seem to get batch-oriented mapreduce clones that happen to read from stdin, which is a stream. I guess. But... well, now you've wasted some perfectly good words that could have meant something. So okay, too bad, it's a Grinder. Sue me.)
Reducers and Indexers
Once you have a bunch of structured events... well, I'm not going to explain that in a lot of detail, because it's been written about a lot.
You probably want to aggregate them a bit - eg. to count up reboots across multiple devices, rather than storing each event for each device separately - and dump them into a time-series database. Perhaps you want to save and postprocess the results in a monitoring system named after Queen Elizabeth or her pet butterfly. Whatever. Plug in your favourite.
What you probably think you want to do, but it turns out you rarely need, is full-text indexing. People just don't grep the logs across 100,000 devices all that often. I mean, it's kinda nice to have. But it doesn't have to be instantaneous. You can plug in your favourite full text indexer if you like. But most of the time, just an occasional big parallel grep (perhaps using your favourite mapreduce clone or something more modern... or possibly just using grep) of a subset of the logs is sufficient.
(If you don't have too many devices, even a serial grep can be fine. Remember, a decent cloud computer should be able to read through ~1 GByte/sec, no problem. How much are you paying for someone to run some bloaty full-text indexer on all your logs, to save a few milliseconds per grep?)
I mean, run a full text indexer if you want. The files are right there. Don't let me stop you.
On the other hand, being able to retrieve the exact series of logs - let's call it the "narrative" - from a particular time period across a subset of devices turns out to be super useful. A mini-indexer that just remembers which logs from which devices ended up in which files at which offsets is nice to have. Someone else on our team built one of those eventually (once we grew so much that our parallel grep started taking minutes instead of seconds), and it was very nice.
And then you can build your dashboards
Once you've reduced, aggregated, and indexed your events into your favourite output files and databases, you can read those databases to build very fast-running dashboards. They're fast because the data has been preprocessed in mostly-real time.
As I mentioned above, we had our pipeline reading the input files as fast as they could come in, so the receive+grind+reduce+index phase only took a few tens of milliseconds. If your pipeline isn't that fast, ask somebody why. I bet their program is written in java and/or has a lot of sleep() statements or batch cron jobs with intervals measured in minutes.
Again here, I'm not going to recommend a dashboard tool. There are millions of articles and blog posts about that. Pick one, or many.
In conclusion
Please, please, steal these ideas. Make your log and event processing as stable as our small team made our log processing. Don't fight over structured vs unstructured; if you can't agree, just log them both.
Don't put up with weird lags and limits in your infrastructure. We made 50MB/day/device work for a lot of devices, and real-time mapreduced them all on a single VM. If we can do that, then you can make it work for a few hundreds, or a few thousands, of container instances. Don't let anyone tell you you can't. Do the math: of course you can.
Epilogue
Eventually our team's log processing system evolved to become the primary monitoring and alerting infrastructure for our ISP. Rather than alerting on behaviour of individual core routers, it turned out that the end-to-end behaviour observed by devices in the field were a better way to detect virtually any problem. Alert on symptoms, not causes, as the SREs like to say. Who has the symptoms? End users.
We had our devices ping different internal servers periodically and log the round trip times; in aggregate, we had an amazing view of overloading, packet loss, bufferbloat, and poor backbone routing decisions, across the entire fleet, across every port of every switch. We could tell which was better, IPv4 or IPv6. (It's always IPv4. Almost everyone spends more time optimizing their IPv4 routes and peering. Sorry, but it's true.)
We detected some weird configuration problems with the DNS servers in one city by comparing the 90th percentile latency of DNS lookups across all the devices in every city.
We diagnosed a manufacturing defect in a particular batch of devices, just based on their CPU temperature curves and fan speeds.
We worked with our CPU vendor to find and work around a bug in their cache coherency, because we spotted a kernel panic that would happen randomly every 10,000 CPU-hours, but for every 100,000 devices, that's still 10 times per hour of potential clues.
...and it sure was good for detecting power failures.
Anyway. Log more stuff. Collect those logs. Let it flow. Trust me.
Update 2019-04-26: So, uh, I might have lied in the title when I said you can't have this logs pipeline. Based on a lot of positive feedback from people who read this blog post, I ended up starting a company that might be able to help you with your logs problems. We're building pipelines that are very similar to what's described here. If you're interested in being an early user and helping us shape the product direction, email me!
0 notes
Text
Best Laptops for Lawyers: A Computer Buying Guide
In general, lawyers in our Lawyerist Insider and Lawyerist Lab communities spend way too much time worrying about getting the best laptops for lawyers. You can run a law practice just fine on a $400 Dell desktop (but you shouldn’t).
Best Desktop Computer for Your Law Office
You don’t need to waste time and brainpower obsessively comparing specs or agonizing over whether to get a Mac or PC. You can just get something from Microsoft or Apple and it will do the job. (Lenovo and Dell are also good choices.)
Not satisfied?
Okay, here are a few things you could think about if you want to put more work than strictly necessary into buying a computer.
Mac or Windows?
It doesn’t matter.
If you need to validate your decision to use one over the other, you’ll find plenty of proponents of both systems. But the bottom line is that you can practice law just fine on either. Use what you like.
However, it’s worth debunking a couple of common misconceptions.
Law Firm Computer Specs
First misconception: price. If you want a cheap computer, there are plenty of Windows hardware manufacturers that will be happy to sell you one. While Apple does not sell cheap computers, you should not buy a cheap Windows computer. Good-quality Windows PCs are usually priced in the same range as an equivalent Mac.
Second misconception: performance. People often switch to Mac because they are unhappy with their cheap Windows PCs. But if you buy good-quality Windows PCs, they won’t feel any slower than an equivalent Mac.
In short, you shouldn’t buy cheap computers. I’ll give you a ballpark budget below, but the point is that good computers aren’t cheap, and you should buy good computers.
Third misconception: compatibility. The days of worrying about incompatible software and hardware are mostly over, as well. Microsoft Office works perfectly well on both, and since a lot of the software you use is almost certainly in the cloud, you can use it on anything with a web browser.
However, sophisticated users of Microsoft Office will be quick to point out features that are not available in the Mac versions. And users of legacy practice management software may also find that a Mac is not an option. If those exceptions apply to you, then Windows will obviously be a better option.1 If not, then use what you want.
For the record, I don’t think it matters at all whether you buy a Mac or a Windows PC. Both will allow you to practice law just fine. And despite what some say, neither will make you a better lawyer.
That said, I usually recommend Macs because they generally result in fewer headaches for lawyers who do their own tech support. And if your Mac breaks down, the nearest Apple Store is a pretty friendly place to get help.
However, many complaints about Windows are overblown. Windows “just works” just fine if you set it up properly.
So let’s call it a wash. If you are a long-time Windows user and you are perfectly happy with Windows, stick with it. If you are in love with Apple’s smooth aluminum slabs, get one. There is no objectively compelling reason to use one or the other. Conversely, there is no compelling reason not to use one or the other. Use what you like. But whichever you choose, get decent hardware.
What About a Chromebook?
Chromebooks run Google’s Chrome OS instead of Windows or MacOS. Chrome OS is similar to using the Chrome Browser. Not exactly, but close.
For lawyers, there are basically two use cases for Chrome OS:
You use the web for everything. All your files are in the cloud (probably Google Drive, OneDrive, Dropbox, or Box), and you use G Suite or the Office web apps for all your documents, email, calendar, etc.
You just need secure remote access to your computer, whether it is sitting in your office or in the cloud.
If either of those use cases describes your need, Chrome OS has some real advantages. The operating system is extremely lightweight, so Chromebooks don’t need to have high-end specs. As a result, Chromebooks tend to be thin and light with all-day battery life, but inexpensive.
Chrome OS is also very secure. Your data stored on a Chromebook is encrypted, and there are various safeguards against malware and other malicious hacking.
On the other hand, most lawyers need access to local software—Microsoft Office if nothing else—making a Chromebook an inexpensive option for a second computer at best.
Laptop, Desktop, or Tablet?
If you only want to have one computer, you should get a laptop or tablet (with keyboard). If you buy a desktop you will also need something portable that you can take home, to court, to board meetings, etc. You need to be able to get work done and access your client files no matter where you are.
Many lawyers use a laptop or full-featured Windows tablet like the Surface Pro as their primary computer. Others have a desktop at the office and an ultralight laptop, Surface, or iPad Pro for everywhere else. There are also a multitude of laptop variations such as the Lenovo Yoga line.
When deciding on your setup, consider where and how you need to be able to get work done. Here are a few common setups to consider:
MacBook Pro or ThinkPad T-series laptop, with a docking station at the office for connecting to a monitor, full keyboard, and trackpad or mouse.
iMac or Dell Inspiron desktop at the office, and an iPad or Chromebook for mobile computing.
Microsoft Surface Pro with Type Cover, for everything.
Whatever you do, avoid the temptation to get a big, heavy laptop. If you need desktop power, get a desktop computer. If you need portability, get a lightweight laptop. Don’t mix the two. You’ll regret it every time you hoist your briefcase or bag with your 7-pound laptop in it.
How Much Do I Need to Spend?
Instead of poring over spec sheets, you can use price as a rough proxy. Price is not perfect, but most computers have similar hardware at similar price points, so you should get what you need. And while specs change quickly, prices tend to stay fairly constant for a given tier (i.e., entry-level vs. graphics workstation).
Here—with a fair amount of arbitrariness, I admit—is what I think you should spend on a computer you intend to keep for 3–4 years before you upgrade. If you are buying a laptop, spend a minimum of $1,000. If you are buying a desktop, spend a minimum of $750, not counting the monitor.
Those really are minimums. I usually spend closer to $1,500 on laptops, and around $1,200 on desktops.
If price alone is not enough detail for you, consider using Apple’s base Mac configurations as a minimum-standards guide. Apple doesn’t sell a computer it doesn’t consider capable of giving a first-rate computing experience. That means the specs of its cheapest computers in each category are a good guide to the minimum you ought to get (although keep in mind that Windows, as a rule, will use a bit more disk space and memory than OS X).
So if you are shopping for a laptop, use the 13″ MacBook Pro specs as your baseline. If you are shopping for a desktop, use the base Mac mini as your reference point. Don’t get a Windows PC with a slower processor, less memory (RAM), or a smaller hard drive. And if your Apple reference point has a solid-state drive (SSD), don’t get a traditional hard drive on your Windows PC.
I think it’s a good idea to upgrade the processor and memory from the base configuration no matter what you get, but even if you don’t you will be in pretty good shape by following either my price guidelines or the Apple spec sheets.
Should You Get a Warranty?
For laptops and tablets, yes. For desktops, maybe.
I always buy a three- or four-year warranty on my laptops that includes accidental damage. Laptops are meant to be portable, and I take mine everywhere. They have the scratches and dents to prove it, and sometimes a hard-enough whack will put even a ThinkPad out of commission. I think a three- or four-year warranty that includes accidental damage is a must for any laptop you intend to carry around.
Desktops are a different story. Since all they do is sit in one place, the parts aren’t as likely to break, and the parts aren’t all that expensive to replace (on Windows PCs, anyway; Mac desktops can still be pricey to repair). I figure that by the time a hard drive fails or a graphics card burns out on a desktop, I’ll be just as happy to upgrade that part, anyway. Skip the parts warranty.
However, depending on how often you find yourself calling tech support now (whether that means Geek Squad or your niece), you might want a warranty that includes general support. For example, if you sometimes get hung up getting a printer or scanner to work properly, or you get lost when you accidentally hit a key combination that closes a panel in Outlook, you might want to get something like Dell’s Enhanced Support or Apple’s AppleCare. With these, you can just pick up the phone and call someone who can help you solve your problem.
I’m perfectly happy using Google to answer most of those kinds of questions. If you aren’t, it may be worth spending a couple hundred bucks to add a basic warranty.
Where Should You Buy Your Computer?
It depends. If you want a Mac, go to the Apple Store or shop Apple’s website online. The prices are the same, and the shipping is free. If you want a Windows PC, avoid Best Buy and shop on the manufacturer’s website, where you can customize your computer and get the best deal. If you want a fairly standard configuration, you may be able to find a better deal on Amazon or NewEgg. It doesn’t hurt to look, anyway.
The point is, make sure you get what you need, not just what happens to be on the big-box store’s shelves. Retailers generally carry only one or two configurations: the cheapest one and the most expensive one. If you want to max out the memory but you don’t care to pay for the top-of-the-line processor and a bunch of hard drive space you won’t use, you will probably need to order online, from the manufacturer.
If you feel like you need to try out the keyboard first, by all means visit a store that carries the brand you want. Before you do, though, use the manufacturers’ website to configure your computer the way you want it and to check the price. That way, if you find what you want at the store at a reasonable price, you can just get it there and take it home the same day.
Best Laptop Brands for Lawyers
The Microsoft Surface Pro is the best Windows tablet, hands-down, and it may be the best Windows hardware, period. In fact, if you are considering a Windows laptop, you should probably try the Surface Pro with a Type Cover, first.
If you want a Windows laptop and the Surface Pro isn’t for you, Lenovo makes the best Windows laptops: the ThinkPad T- and X-series. ThinkPads are fast, rock-solid, and have the best keyboards you can get on a laptop. The ThinkPad X1 may be the best ultrathin Windows laptop you can buy. Lenovo also has some of the best customer support you will find outside of an Apple Store.
If ThinkPads aren’t your thing, check out the Dell XPS laptops. The XPS 13 may be the best traditional laptop you can buy. It is thin, light, and well constructed (but not as thin and light as the ThinkPad X1). The hardware itself rivals the MacBook Pro for design and build quality.
For Windows desktops, Dell is usually the best value. There is nothing wrong with Lenovo desktops. They just tend to be more expensive. Dell makes solid, reliable desktops at good prices. Dell’s UltraSharp displays are also some of the best monitors you can find anywhere. Add one to your order and your eyes will thank you.
There are lots of other Windows computer manufacturers out there, but Microsoft, Lenovo, and Dell are the ones that have produced consistently high-quality machines for many years.
If you want a Mac, you should obviously get it from Apple.
Takeaways
It doesn’t matter if you want a Mac or a Windows PC. Get what you like.
Get a 13- or 14-inch laptop, or at least a 22-inch monitor for a desktop.
Get a warranty with accidental damage protection for a laptop or ultrabook; skip the warranty for a desktop.
Order online, or decide what you want before you go to a store.
Spend at least $1,000 on a laptop and at least $750 on a desktop.
Buy from Microsoft, Lenovo, Dell, or Apple.
Originally published 2012-11-12. Revised 2016-02-16. Republished 2019-11-06.
Mac diehards can certainly use Parallels or Fusion to run Windows apps on a Mac, but that is an imperfect solution, at best. ↩
The post Best Laptops for Lawyers: A Computer Buying Guide appeared first on Lawyerist.
from Law and Politics https://lawyerist.com/blog/faq-what-computer-should-i-buy/ via http://www.rssmix.com/
0 notes
Text
Best Laptops for Lawyers: A Computer Buying Guide
In general, lawyers in our Lawyerist Insider and Lawyerist Lab communities spend way too much time worrying about getting the best laptops for lawyers. You can run a law practice just fine on a $400 Dell desktop (but you shouldn’t).
Best Desktop Computer for Your Law Office
You don’t need to waste time and brainpower obsessively comparing specs or agonizing over whether to get a Mac or PC. You can just get something from Microsoft or Apple and it will do the job. (Lenovo and Dell are also good choices.)
Not satisfied?
Okay, here are a few things you could think about if you want to put more work than strictly necessary into buying a computer.
Mac or Windows?
It doesn’t matter.
If you need to validate your decision to use one over the other, you’ll find plenty of proponents of both systems. But the bottom line is that you can practice law just fine on either. Use what you like.
However, it’s worth debunking a couple of common misconceptions.
Law Firm Computer Specs
First misconception: price. If you want a cheap computer, there are plenty of Windows hardware manufacturers that will be happy to sell you one. While Apple does not sell cheap computers, you should not buy a cheap Windows computer. Good-quality Windows PCs are usually priced in the same range as an equivalent Mac.
Second misconception: performance. People often switch to Mac because they are unhappy with their cheap Windows PCs. But if you buy good-quality Windows PCs, they won’t feel any slower than an equivalent Mac.
In short, you shouldn’t buy cheap computers. I’ll give you a ballpark budget below, but the point is that good computers aren’t cheap, and you should buy good computers.
Third misconception: compatibility. The days of worrying about incompatible software and hardware are mostly over, as well. Microsoft Office works perfectly well on both, and since a lot of the software you use is almost certainly in the cloud, you can use it on anything with a web browser.
However, sophisticated users of Microsoft Office will be quick to point out features that are not available in the Mac versions. And users of legacy practice management software may also find that a Mac is not an option. If those exceptions apply to you, then Windows will obviously be a better option.1 If not, then use what you want.
For the record, I don’t think it matters at all whether you buy a Mac or a Windows PC. Both will allow you to practice law just fine. And despite what some say, neither will make you a better lawyer.
That said, I usually recommend Macs because they generally result in fewer headaches for lawyers who do their own tech support. And if your Mac breaks down, the nearest Apple Store is a pretty friendly place to get help.
However, many complaints about Windows are overblown. Windows “just works” just fine if you set it up properly.
So let’s call it a wash. If you are a long-time Windows user and you are perfectly happy with Windows, stick with it. If you are in love with Apple’s smooth aluminum slabs, get one. There is no objectively compelling reason to use one or the other. Conversely, there is no compelling reason not to use one or the other. Use what you like. But whichever you choose, get decent hardware.
What About a Chromebook?
Chromebooks run Google’s Chrome OS instead of Windows or MacOS. Chrome OS is similar to using the Chrome Browser. Not exactly, but close.
For lawyers, there are basically two use cases for Chrome OS:
You use the web for everything. All your files are in the cloud (probably Google Drive, OneDrive, Dropbox, or Box), and you use G Suite or the Office web apps for all your documents, email, calendar, etc.
You just need secure remote access to your computer, whether it is sitting in your office or in the cloud.
If either of those use cases describes your need, Chrome OS has some real advantages. The operating system is extremely lightweight, so Chromebooks don’t need to have high-end specs. As a result, Chromebooks tend to be thin and light with all-day battery life, but inexpensive.
Chrome OS is also very secure. Your data stored on a Chromebook is encrypted, and there are various safeguards against malware and other malicious hacking.
On the other hand, most lawyers need access to local software—Microsoft Office if nothing else—making a Chromebook an inexpensive option for a second computer at best.
Laptop, Desktop, or Tablet?
If you only want to have one computer, you should get a laptop or tablet (with keyboard). If you buy a desktop you will also need something portable that you can take home, to court, to board meetings, etc. You need to be able to get work done and access your client files no matter where you are.
Many lawyers use a laptop or full-featured Windows tablet like the Surface Pro as their primary computer. Others have a desktop at the office and an ultralight laptop, Surface, or iPad Pro for everywhere else. There are also a multitude of laptop variations such as the Lenovo Yoga line.
When deciding on your setup, consider where and how you need to be able to get work done. Here are a few common setups to consider:
MacBook Pro or ThinkPad T-series laptop, with a docking station at the office for connecting to a monitor, full keyboard, and trackpad or mouse.
iMac or Dell Inspiron desktop at the office, and an iPad or Chromebook for mobile computing.
Microsoft Surface Pro with Type Cover, for everything.
Whatever you do, avoid the temptation to get a big, heavy laptop. If you need desktop power, get a desktop computer. If you need portability, get a lightweight laptop. Don’t mix the two. You’ll regret it every time you hoist your briefcase or bag with your 7-pound laptop in it.
How Much Do I Need to Spend?
Instead of poring over spec sheets, you can use price as a rough proxy. Price is not perfect, but most computers have similar hardware at similar price points, so you should get what you need. And while specs change quickly, prices tend to stay fairly constant for a given tier (i.e., entry-level vs. graphics workstation).
Here—with a fair amount of arbitrariness, I admit—is what I think you should spend on a computer you intend to keep for 3–4 years before you upgrade. If you are buying a laptop, spend a minimum of $1,000. If you are buying a desktop, spend a minimum of $750, not counting the monitor.
Those really are minimums. I usually spend closer to $1,500 on laptops, and around $1,200 on desktops.
If price alone is not enough detail for you, consider using Apple’s base Mac configurations as a minimum-standards guide. Apple doesn’t sell a computer it doesn’t consider capable of giving a first-rate computing experience. That means the specs of its cheapest computers in each category are a good guide to the minimum you ought to get (although keep in mind that Windows, as a rule, will use a bit more disk space and memory than OS X).
So if you are shopping for a laptop, use the 13″ MacBook Pro specs as your baseline. If you are shopping for a desktop, use the base Mac mini as your reference point. Don’t get a Windows PC with a slower processor, less memory (RAM), or a smaller hard drive. And if your Apple reference point has a solid-state drive (SSD), don’t get a traditional hard drive on your Windows PC.
I think it’s a good idea to upgrade the processor and memory from the base configuration no matter what you get, but even if you don’t you will be in pretty good shape by following either my price guidelines or the Apple spec sheets.
Should You Get a Warranty?
For laptops and tablets, yes. For desktops, maybe.
I always buy a three- or four-year warranty on my laptops that includes accidental damage. Laptops are meant to be portable, and I take mine everywhere. They have the scratches and dents to prove it, and sometimes a hard-enough whack will put even a ThinkPad out of commission. I think a three- or four-year warranty that includes accidental damage is a must for any laptop you intend to carry around.
Desktops are a different story. Since all they do is sit in one place, the parts aren’t as likely to break, and the parts aren’t all that expensive to replace (on Windows PCs, anyway; Mac desktops can still be pricey to repair). I figure that by the time a hard drive fails or a graphics card burns out on a desktop, I’ll be just as happy to upgrade that part, anyway. Skip the parts warranty.
However, depending on how often you find yourself calling tech support now (whether that means Geek Squad or your niece), you might want a warranty that includes general support. For example, if you sometimes get hung up getting a printer or scanner to work properly, or you get lost when you accidentally hit a key combination that closes a panel in Outlook, you might want to get something like Dell’s Enhanced Support or Apple’s AppleCare. With these, you can just pick up the phone and call someone who can help you solve your problem.
I’m perfectly happy using Google to answer most of those kinds of questions. If you aren’t, it may be worth spending a couple hundred bucks to add a basic warranty.
Where Should You Buy Your Computer?
It depends. If you want a Mac, go to the Apple Store or shop Apple’s website online. The prices are the same, and the shipping is free. If you want a Windows PC, avoid Best Buy and shop on the manufacturer’s website, where you can customize your computer and get the best deal. If you want a fairly standard configuration, you may be able to find a better deal on Amazon or NewEgg. It doesn’t hurt to look, anyway.
The point is, make sure you get what you need, not just what happens to be on the big-box store’s shelves. Retailers generally carry only one or two configurations: the cheapest one and the most expensive one. If you want to max out the memory but you don’t care to pay for the top-of-the-line processor and a bunch of hard drive space you won’t use, you will probably need to order online, from the manufacturer.
If you feel like you need to try out the keyboard first, by all means visit a store that carries the brand you want. Before you do, though, use the manufacturers’ website to configure your computer the way you want it and to check the price. That way, if you find what you want at the store at a reasonable price, you can just get it there and take it home the same day.
Best Laptop Brands for Lawyers
The Microsoft Surface Pro is the best Windows tablet, hands-down, and it may be the best Windows hardware, period. In fact, if you are considering a Windows laptop, you should probably try the Surface Pro with a Type Cover, first.
If you want a Windows laptop and the Surface Pro isn’t for you, Lenovo makes the best Windows laptops: the ThinkPad T- and X-series. ThinkPads are fast, rock-solid, and have the best keyboards you can get on a laptop. The ThinkPad X1 may be the best ultrathin Windows laptop you can buy. Lenovo also has some of the best customer support you will find outside of an Apple Store.
If ThinkPads aren’t your thing, check out the Dell XPS laptops. The XPS 13 may be the best traditional laptop you can buy. It is thin, light, and well constructed (but not as thin and light as the ThinkPad X1). The hardware itself rivals the MacBook Pro for design and build quality.
For Windows desktops, Dell is usually the best value. There is nothing wrong with Lenovo desktops. They just tend to be more expensive. Dell makes solid, reliable desktops at good prices. Dell’s UltraSharp displays are also some of the best monitors you can find anywhere. Add one to your order and your eyes will thank you.
There are lots of other Windows computer manufacturers out there, but Microsoft, Lenovo, and Dell are the ones that have produced consistently high-quality machines for many years.
If you want a Mac, you should obviously get it from Apple.
Takeaways
It doesn’t matter if you want a Mac or a Windows PC. Get what you like.
Get a 13- or 14-inch laptop, or at least a 22-inch monitor for a desktop.
Get a warranty with accidental damage protection for a laptop or ultrabook; skip the warranty for a desktop.
Order online, or decide what you want before you go to a store.
Spend at least $1,000 on a laptop and at least $750 on a desktop.
Buy from Microsoft, Lenovo, Dell, or Apple.
Originally published 2012-11-12. Revised 2016-02-16. Republished 2019-11-06.
Mac diehards can certainly use Parallels or Fusion to run Windows apps on a Mac, but that is an imperfect solution, at best. ↩
The post Best Laptops for Lawyers: A Computer Buying Guide appeared first on Lawyerist.
from Law http://feedproxy.google.com/~r/solosmalltech/~3/RE2lwNYOe4g/ via http://www.rssmix.com/
0 notes
Text
Weekend reading: I shopped til I dropped
What caught my eye this week.
I would have had this post to you much earlier on Friday, but for consumerism. You see I got totally distracted trying to get the best out of my new Sage Barista Express:
Real life: Messy.
Having done a barista training course a few years ago, I improbably fancied myself as pretty hot stuff with a coffee grinder.
I’ve enjoyed flat whites knocked out by a friend on this well-reviewed model many times, too.
But it turns out I didn’t know my friend as well as I thought I did!
I’ve discovered he’s great at making coffee – but perhaps more shockingly that he’s modest about it. (What other talents does he boast, I now wonder? Or rather does he not boast?)
Seriously, I know it takes a while to get the hang of DIY espressos on new kit, so I’m not too perturbed. It’s only eaten a couple of hours so far, and that includes washing the bits and bobs, figuring out how it fitted together, and collecting beans I spilled on the floor.
No, the other reason why I fell behind was because as soon this new toy finally arrived from Amazon, I went out for a three-hour hike around West London.
Did you sign for it, sir?
You see I’ve been in all week waiting for deliveries – and it drives me crazy.
I’m on edge all-day, until the deliveries do (or don’t) arrive.
A laid-back friend who doesn’t understand my hair-trigger control freak personality asked me what the big deal was.
“Imagine waiting all day to be slapped in the face,” I said. “You don’t know when it’s coming, but you will be slapped in the face. That’s me waiting for the door buzzer.”
It’s not even that I can’t do the social interaction bit. It’s worse: I usually talk the delivery person’s ear off. (A common failing among those of us who work from home.)
Rather it’s the waiting and uncertainty that kills me – and the unexpected and unscheduled state change.
Years before the Millennials I kept my mobile on silent always, for the same reason.
A totally unexpected phone call to my mobile feels like being tapped on the shoulder by a suddenly apparating supernatural nosy neighbour. I hate it.
Now at this point you’re either nodding along (a very few of you) or you’re aghast with incomprehension. Which is fine.
(I’ve said before when explaining why I invest actively and nearly everyone reading shouldn’t that I’m wired differently. I didn’t say it was easy!)
Economy class
Anyway, the reason I’m sharing these asides – and the rare from real-life picture above – is to give a quick update on my embrace of consumerism.
The story so far: You’ll remember I bought a flat, I still haven’t written up why, and I set about spending some of my 20-odd years of winnings (well, savings and winnings) to make it fancy.
This got off to a good start. I’ve always loved nice furnishings and so on – from afar. But by the middle of the hot summer I was bored of spending money.
I’d lost enthusiasm, I’d lost my girlfriend (she said she didn’t like my sudden interiors obsession, but perhaps she just didn’t like the sofa I finally selected?), and I’d lost (/spent) more money traded for matter than I’d spent on things in the previous two decades combined.
I didn’t even go crazy! It’s just that living like a graduate student even as your earnings multiply is pretty low-rent.
For most of that long era I used to opine to my more normally spendy friends that buying stuff only produced problems. Which in my experience was almost always true.
Stuff didn’t work, or you had to upgrade something else, or it broke, or you felt guilty, or you had to wait in for days to get it delivered, or you were worried it’d get nicked when finally you did get hold of it – or any one of a dozen other woes that people who buy stuff all the time think is just the way the world is.
Only two things hit the spot for me without fail when I splashed the cash. Black cabs – which I almost never took, and felt so luxurious in those pre-Uber days – and the first beer with two poppadoms and all the sauces and other gubbins.
Obviously I did a gazillion other things over the decades. I didn’t just taxi around London from curry house to curry house! And often it was money well spent.
But never reliably so.
Well, this whole flat buying and furnishing thing has proven my younger self right.
Through the keyhole
Don’t get me wrong. It’s coming along. It looks beautiful, to me if not my ex. I feel lucky to live among all these things I chose in my still-new flat, even knowing luck is only part of it.
But, oh! I guess I secretly thought the universe would notice The Investor Is Finally Throwing Money At The Problem and the rules would change. But they haven’t.
Stuff comes broken. Trades people don’t show up. Some of them are great, but some are – well – yet to find their true calling. Deliveries don’t arrive. I made a final push to finish my flat before Christmas, and caned the Black Friday offers. But only three of the seven resultant purchases that were scheduled for delivery have actually made it here so far. A new record of rubbishness.
Coffee machines are harder to use than you expected. Analine leather sofas stain if you sneeze near them. Complete automatic watering systems require add-ons to water completely. Your boiler is already up for a service – and that’ll be £100+ with VAT please.
I feel sometimes like Robinson Crusoe, finally back on the mainland after a long sabbatical away catching fresh fish with his hands and brushing his teeth with a fragrant root. I can confirm 2018 has a lot of gorgeous stuff on offer – but as we all know it comes at a price and doesn’t really solve anything.
Still happy I did it, but pleased I’m mostly buying things that will last.
Once I’m done the hedonic treadmill is going back into storage!
Note: Yes, it’s an expensive coffee machine (though one of the cheaper good ones). I’ve always liked a few quality things in life, I’ve just tended to get them cheaply. I saved about half my income for 20 years, so while the Frugal Police are welcome to give me a caution, keep in mind that I wrote the (racier) pages of the book you’re throwing at me. And beware Buffett’s Folly…
From Monevator
From the archive-ator: Death, infirmity, and investing – Monevator
News
Note: Some links are Google search results – in PC/desktop view you can click to read the piece without being a paid subscriber. Try privacy/incognito mode to avoid cookies. Consider subscribing if you read them a lot!1
Here’s how much fund managers are paid [to lose to the market] – Institutional Investor
Houses prices down on fundamentals not Brexit, research suggests – ThisIsMoney
Property slump could cut number of affordable homes built by 25% – Guardian
UK migration: Fewer EU arrivals, but overall figure stays the same – BBC
Do you live in one of the happiest places in the UK? – ThisIsMoney
The inheritance tax mess, where richest pay a lower percentage rate – Simon Lambert
Products and services
UK rail fares to rise 3.1% in January – Guardian
Shawbrook tops table with a 1.65% one-year cash ISA rate – ThisIsMoney
Ratesetter will pay you £100 [and me a bonus] if you invest £1,000 for a year – Ratesetter
New breed of elite dating apps for wealthy singletons [Search result] – FT
Comment and opinion
How to own all tomorrow’s winning stocks – The Evidence-based Investor
John Bogle needn’t worry about index fund dominance – Pragmatic Capitalism
The proliferation of indices isn’t all it appears – Abnormal Returns
In praise of old jobs – Young (Mrs) FIGuy
Spend more: The most ignored piece of financial advice [Search result] – FT
How to retire forever on a big stash [US taxes/insurance] – Mr Money Mustache
FIRE Day! – Retirement Investing Today
You would not have invested with Warren Buffett – Behavioural Value Investor
Anti-FIRE: The YOLO train wreck edition – Simple Living in Somerset
Juggling six-figure margin debt [Don’t try this at home!] – Fire V London
The top 20 personal finance questions answered – Guardian
Morningstar gets into the finance-meets-food-pyramid game – Morningstar
Five things parenting and (active) investing share – The Value Perspective
What can we do about over-confidence? – Behavioural Investor
An attempt at estimating the true ‘global market portfolio’, including all the unlisted assets in the world [Research] – Alpha Architect
Brexit
Government finally admits UK will be worse off under all Brexits – New York Times
Leave voters statistically much likelier to believe conspiracy theories – Guardian
A Daily Mail EU scare story debunked [Again, people believe this crap] – Tom Pride
The French village that fears for its British community – BBC
Romania has lost 16% of its population to rest of EU in a decade – MSW via Twitter
Brexit TV Debate: A former Remainer will argue for her Brexit deal, a closet Leaver for a better deal or Remain. What a time to be alive! – BBC
I’d like to Exit from these homegrown cretins. Where do I vote? – BBC
Kindle book bargains
Why You? 101 Interview Questions You’ll Never Fear Again by James Reed – £1.99 on Kindle
Thank You for Being Late: An Optimist’s Guide to Thriving in the Age of Accelerations by Thomas L. Friedman – £1.99 on Kindle
The Spider Network: The Wild Story of a Maths Genius and One of the Greatest Scams in Financial History by David Enrich – £1.99 on Kindle
Tiny Budget Cooking: Saving Money Never Tasted So Good by Limahl Asmall – £1.09 on Kindle
Off our beat
Internet: The end of the beginning [Video/Presentation] – Benedict Evans
Watch how just a few self-driving cars prevent traffic jams [Graphics] – Science
Nike and Boeing are paying sci-fi writers to predict their futures – Medium
Woman who names daughter ‘Abcde’ is upset when someone finds it funny – ABC News
A man actually ticked the US Visa form ‘Are You A Terrorist?’ box – via Twitter
Maps showing how we’re divided by more than Brexit [Funny, old-ish] – Ink Tank
And finally…
“Why should we look to the past in order to prepare for the future? Because there is nowhere else to look.” – James Burke, Connections
Like these links? Subscribe to get them every Friday!
Note some articles can only be accessed through the search results if you’re using PC/desktop view (from mobile/tablet view they bring up the firewall/subscription page). To circumvent, switch your mobile browser to use the desktop view. On Chrome for Android: press the menu button followed by “Request Desktop Site”.
Weekend reading: I shopped til I dropped published first on https://justinbetreviews.weebly.com/
0 notes
Photo
Acer Chromebook Tab 10 review: The start of something beautiful Chromebooks are immensely popular in schools all around the world, but they don’t offer the portability or convenience of, say, an iPad or Surface device. That’s why Google is now partnering with manufacturers to launch Chrome OS tablets. The first of which is the $329 Chromebook Tab 10 from Acer, which was announced back in March of this year. An inexpensive Chrome OS tablet sounds too good to be true, but it’s not meant for the everyday user. It’s geared towards the education market. Pick one up if you’d like, but first read on to find out why you shouldn’t — unless you work for a school. Here is our Acer Chromebook Tab 10 review. Acer Chromebook Tab 10 review notes: I’ve been using the Acer Chromebook Tab 10 for 19 days. Our review unit is running Chrome OS version 10575.58.0 on the stable channel with a build date of Sunday, June 24, 2018. The Chromebook used in this review was provided to Android Authority by Acer. Show More Design Something to keep in mind throughout this review: the Acer Chromebook Tab 10 isn’t trying to compete with consumer-grade iPads or Surface tablets. It was made with kids in mind, and isn’t even attempting to be the sleek tablet that’s perfect for your every needs. This is especially true with the Tab 10’s design. It’s made of chunky plastic, with a textured back that makes it easy to hold. It’s also a bit heavy, at 1.2 pounds. It feels and looks exactly like something you’d see in a school — not so much sitting on a coffee table in someone’s house. The bezels around the display are big, making it easy to hold in both landscape and portrait modes. Up top, you’ll find a headphone jack (yay!), a microphone, and three speaker cutouts. The left side houses the power button, volume keys, microSD card slot, and stylus (more on that later). The bottom features three more speaker cutouts and a USB Type-C port. You can use this Type-C port for charging or hooking up any external hardware like displays, keyboards, and mice. I haven’t been able to test the tablet while it’s hooked up to an external monitor, unfortunately. Overall, I quite like the design of this tablet. It’s a simple, no-frills device perfect for the classroom. The Acer Chromebook Tab 10 sports a 9.7-inch IPS LCD display — the same size as Apple’s new education-focused iPad. It’s doesn’t compete with the iPad’s screen quality, but it’s good enough. It has a 4:3 aspect ratio and a resolution of 2,048 x 1,536, resulting in a pixel density of 264ppi. Viewing angles are good, and it can get extremely bright and dim. The screen is on the warm side though, and there’s no option to tweak it in the settings menu. Performance and hardware Also read Samsung Chromebook Pro review https://www.youtube.com/watch?v=fFvrDUZwLCI Samsung took the wraps off two new additions to its Chromebook line at CES 2017 that were built in collaboration with Google: the Chromebook Pro and the Chromebook Plus. There are a few special features that make … The most notable “extra” hardware feature with the Tab 10 is its Wacom stylus. Tucked away in the edge of the tablet, the stylus gives users an easy way to screenshot, take notes, draw, and zoom into things. It’s using the same electro-magnetic resonance (EMR) tech you’d find in Samsung Chromebook styluses. This just allows the stylus to work without a built-in battery or Bluetooth connection. The stylus itself is decent. It’s small and light. It can be hard to hold for extended periods of time because it’s so short, but I think kids will have no problem sketching out doodles and taking notes with it. There’s no extra hardware button on the side like on Samsung’s S Pens, but it’s still super functional. Popping out the stylus enables a small menu with screenshot and note-taking shortcuts. It’s quite handy. Plus, since the Acer Chromebook 10 can run Android apps, you can download any number of note-taking apps from the Play Store if you want something more powerful than Google Keep. This tablet has six speaker cutouts, but don’t let that fool you — this thing’s pretty quiet. I’m not sure the speakers will be loud enough for kids to hear videos inside a classroom full of other kids, though I didn’t test for this. Don't miss The best Chromebooks for students Despite Apple's well-publicized attempts to be the top dog in school computers, Google has made quick headway in overtaking the tech giant, becoming the face of school computers in the last few years. Chromebooks now dominate … The Acer Chromebook Tab 10 is a solid performer if you’re using one app at a time. The dual-core Rockchip RK3399 and 4GB of RAM is enough to launch apps quickly, but it struggles with multitasking. There’s a fair amount of lag when switching between even two apps at a time. It certainly won’t be a good device for media consumption or casting things to your TV, which is forgivable given the tablet’s target demographic. Students probably won’t use this device as hard as me. One other reason this tablet is clearly not meant for consumers: the cameras. The Tab 10 has a 5MP rear and 2MP front camera, both of which are less than passable. It feels like they’re straight out of the 2010 flip phone era. They might be fine for classroom use, but that’s about it. Acer says the Chromebook Tab 10 can last up to nine hours on a single charge, and I’d say that’s about right. Teachers will be able to get by plugging these in every few days. Keyboard The software keyboard on the Tab 10 is the same keyboard as other touchscreen Chrome OS devices. It certainly doesn’t compare to Gboard, and typing can be extremely frustrating. Text prediction and correction isn’t nearly as accurate as Gboard either. Also, for some reason, the keyboard is set to capitalize the first letter in every word on some Android apps, and you can’t turn it off. That alone ruins the typing experience if you’re using a common Android app like Google Keep or Docs. For what it’s worth, that’s not the case on Chrome web apps. Also read The best touchscreen Chromebooks you can buy There are huge advantages to using a Chromebook over a laptop or a tablet. In short, the Chromebook fills a niche somewhere between the two, with a bit more power and compatibility with heavier duty … Luckily, the Tab 10 pairs with any Bluetooth keyboard out there, so that’s an option if teachers want their students to write longer-form essays or the like. Acer doesn’t offer a Bluetooth keyboard made for this tablet though, which is a bummer. Acer needs to make a folio cover with a built-in keyboard, like what Surface tablets have. Obviously this would defeat the purpose of having a tablet form factor, but the option to include one in every order would be nice — especially because it would make up for the garbage software keyboard. Belkin makes a wired keyboard for Chrome OS tablets schools to could pair with this tablet, if they so choose. On the bright side, Gboard is apparently coming to Chrome OS this fall. This will significantly improve the typing experience. Software Aside from the keyboard woes, this is the same Chrome OS experience you’d find on any other Chromebook. I won’t go into the basics on Chrome OS in this review — I’ll save that for Gary — but I will talk about my experiences using it as a main computer with the addition of Android apps. This is still very much a desktop-tier OS, which means some things are just a little harder to do on a tablet. Just about every web and Android app automatically hides the “status bar” at the top of the screen, so you need to swipe down from the top every time if you want to close an app. On Chromebooks with a physical keyboard (and thus a trackpad), that “X” button appears automatically. The workflow is just easier on full-fledged computers. Android apps still need some work on Chromebooks, too. Not all of them are compatible with Chrome OS, and some compatible ones won’t open anyway. Gboard is available in the Play Store, but can’t be set as an input method. Some Android apps work perfectly fine, and when they do it’s great. Multitasking with Android apps and the Chrome browser makes for a wonderful experience. Related: How to get Photoshop on your Chromebook Now, a lot of these things are more problems with Chrome OS than with the tablet itself. Some of these bugs might be fixed by updates in the coming weeks or months. Education features The Acer Chromebook Tab 10 supports Google Expeditions, which lets you take virtual field trips from the comfort of your desk. The tablet will also support Expedition AR in the future too, eventually allowing students to view objects in augmented reality right in their classroom. IT departments will be able to manage these tablets with the Chrome Management Console. Each student can have their own profiles with their own login information, so all the data that’s loaded on an individual’s account will stay on that account. Specs Acer Chromebook Tab 10 (D651N-K9WT) Display 9.7-inch IPS LCD 2,048 x 1,536 resolution ~264ppi 4:3 aspect ratio SoC Rockchip RK3399 Dual-core Cortex-A72 and quad-core Cortex-A53 processors 2GHz GPU Mali T860 RAM 4GB LPDDR3 Storage 32GB MicroSD expansion Cameras Rear: 5MP sensor, 720p HD audio and video recording Front: 2MP sensor, 720p HD audio and video recording Battery 34Wh 8,860mAh Lithium-polymer Up to 9 hours Stylus Wacom EMR Connectivity 802.11ac 2x2 MIMO dual-band Wi-Fi Bluetooth 4.1 USB 3.1 Type-C Software Chrome OS Dimensions and weight 172.2 x 238.2 x 9.9mm 544.3g Color Indigo blue Gallery The verdict I think it’s pretty clear Chrome OS isn’t ready for the mainstream tablet market. Too many things just aren’t optimized for a tablet form factor right now. However, Google issues frequent updates to the operating system, so things will no doubt change in the coming weeks and months. Next year, there will be plenty more Chrome OS tablets, and they’ll all probably be a lot easier to use. The Acer Chromebook Tab 10 isn’t meant for “regular” consumer use, and I think you’d be disappointed if you bought one for that. If you work for a school district, that’s a different story. The fact that this device will be primarily used by kids in the classroom saves the Tab 10 from falling flat on its face. All its shortcomings — weak speakers, weaker cameras, and a low-powered SoC — are somewhat excusable in a school setting. A kid just won’t push this tablet as hard as I did. The Tab 10 isn’t without competition in the education market. The 9.7-inch iPad has the same $329 price tag as the Acer, and is actually discounted down to $299 for educators. The iPad also offers a better screen, a much better camera, and quicker performance. However, it only supports Bluetooth keyboards, and the Apple Pencil costs extra — something school districts will bear in mind when they hear the Acer comes with an included Wacom stylus. I also don’t want the ruggedness of the Chromebook Tab 10 to be understated. If I taught a fourth grade class, I’d be so nervous giving them an iPad for the day. Chromebooks have a history of providing schools with easy setup and reliable performance. The Chromebook Tab 10 absolutely delivers in these areas, and also has the benefits of a slim, lightweight form factor. The software has its quirks, but schools already used to Chromebooks will probably feel right at home with the Tab 10. Next: Buyer’s guide: What is a Chromebook, and what can’t it do? , via Android Authority http://bit.ly/2uxIrxu
0 notes
Text
Twitter bot stuff 4
Step one: I created a new Twitter account using my uni email and the username Mood_Ring_Bot
Step two: Registered as a new app here https://apps.twitter.com/app/new using the http://helenseviltwin.com/juliette/ web address and create access token.
Step three: Install node.js and make sure it’s added to path.
Step four: Open command prompt via win + x. Install grunt using the npm install -g grunt-init command.
Now I’m looking at various sites, and none of the instructions make any sense. For example, “Setup an empty directory and initialise it with:$ npm init to configure this web application with package.json file. Then create two new files: bot.js & config.js in that directory.”
What does set up an empty directory mean? What does initialise it mean? How do you create files in a directory? Looking online doesn’t answer this. Are these Mac terms maybe? Bear in mind I’ve done all this many, many times when trying to create a bot using Ruby and Python. Not having a Mac is a HUGE disadvantage but I can’t afford one
Step 5: Open one of the git files in Editplus and try playing around with it. Add the basic stuff like the name of the bot, the access token and keys, etc.
Step 5: Go to http://gruntjs.com/getting-started Install the grunt-inti-jquery template via command prompt.
Now I’m stuck and AGAIN I can’t find any instructions that work for Windows. They’re all for Mac or Linux. This is very frustrating.
Step 6: Sign up for a twitter feed thing.
It asks for permission, but when I grant it, all it does is ask for permission again.
So I can’t move any further forward here.
Having asked around, that feed would probably do too much of the work for me anyway, so shouldn’t be used for this project.
Step 7: Added a photo to my twitter profile
Step 8: http://techknights.org/workshops/nodejs-twitterbot/
This one actually explains the “create empty directory” bit:
Open up a terminal or command prompt.
mentally think of where you want your project folder to go (for example, on the Desktop)
In the terminal, type: cd and then navigate to the directory of your choice. (i.e. cd Desktop)
make a folder in that directory by doing mkdir twitterbot
now go in to that folder by doing: cd twitterbot/
But it’s gone wrong:
I’ve carried on with the instructions, but there seems to be a problem again:
https://www.npmjs.com/package/twitter - documentation for Twitter
Now I’m getting an error message saying 'var' is not recognized as an internal or external command, operable program or batch file.
This should help, from here: https://github.com/nodejs/node/issues/7521: Make sure to run npm install request (outside of the node REPL) before trying to run require('request')
But it doesn’t. I still get the same error message. This is probably because the package didn’t fully install. I’ll try somewhere else.
It looks like the problem might be that I HAVE to use C again. But I’ve run out of space on C. Adobe won’t uninstall and is taking up almost all of the available space.
I’ve gone back to the beginning (after removing Word to make space on C), getting rid of the node I currently have installed, and doing everything again. This is roughly the 18th time I’ve gone back to the beginning again and it’s very frustrating.
The instructions on that page say to install node v 5.5.5 stable, and that’s not really available any more. Hope that doesn’t mess it up too much.
I’m still getting error messages saying npm WARN saveError ENOENT: no such file or directory, open 'C:\Users\Sam\package.json'
So I tried a different version via the command npm install npm@latest -g
Then reinstalled twitter for node for about the millionth time.
STILL the same error - json is not installing.
After a lot of messing around and basically doing the same thing I think it might have installed. I’ve entered my user keys and secrets etc into the node command prompt.
Now it’s just gone back to error messages again and I give up.
0 notes
Text
Ionic Framework Is Fast (But Your Code Might Not Be)
I don’t want this article to come across as a self-righteous rant, or that I’m attacking people who have made statements like the ones I will use as examples in this article. The last thing I want to do is sound elitist or fan the flames of framework wars. So, I will precede this article with a little disclaimer:
I’m not making any claims that Ionic is the best framework, or that Ionic is better than native apps, or that you should use Ionic for everything. I’m also not attempting to shame anybody for the code they write, and I’m certainly not insinuating that people shouldn’t build and release Ionic applications if they can’t do it well (quite the opposite, actually).
The point that I am trying to make in this article is that when it comes to performance problems, more often than not it is a problem with the way the application is coded, not because of Ionic. There is a point where the performance of Ionic itself (and more specifically, running code through a browser) comes into play, but a lot of the time people aren’t anywhere near those limitations when discussing the performance of Ionic.
The key points that I will be discussing in this article are:
Creating high performing Ionic applications requires expertise both in Ionic and general web performance concepts. This takes time and experience to learn.
Creating decently performing Ionic applications is generally achievable with just a basic level of knowledge
Assuming issues are your own fault (even if it turns out it’s not) and attempting to fix them is a good way to grow as a developer
Applications that do not perform well can still provide value
Performance problems are usually the fault of the application, not the framework
I’ll be beginning by explaining my thoughts on these points, and I’ll finish by giving you some practical examples of solutions to common performance problems in Ionic applications. These examples range from simple changes that can easily be overlooked, to more complex examples that require a much deeper understanding of how web browsers work. All the solutions will have one thing in common: they are all performance improvements that fall under the responsibility of the developer.
It Doesn’t Matter How Performant the Framework Is, If Your Code Isn’t
One thing specifically that prompted me to write this article was the discussion around Ionic 4 coming out. I keep seeing questions from people who are dissatisfied with the performance of their Ionic applications currently and are asking if Ionic 4 will bring performance improvements.
The answer is: yes. Ionic 4 will be faster than Ionic 3 (quite significant improvements have been made). But, Ionic 3 already is fast (as was Ionic 2, and even the original Ionic). If you are holding out for Ionic 4 because your application currently has a 10 second launch time, taps are slow to respond, and pages stutter and take a long time to load… then you are going to be disappointed. Ionic 3 is already perfectly capable of building applications that do not have these problems. These issues would likely be problems with your code, and it doesn’t matter how much faster Ionic 4 is – no amount of performance increase will fix that.
I think an interesting analogy is the case of the “super suits” that were being used in competitive swimming. For a period of time, athletes were wearing these high-tech swimming suits made from specialised materials that would allow them to swim faster in the water. This caused a lot of controversy and they were eventually banned.
These suits did lead to increased performance, but we’re talking about seconds or even fractions of seconds of improvement here. If I were to use one of these suits it would be practically pointless, because a competitive swimmer without one of these suits would still probably lap me three times in a 200m race. There are much more critical and impactful issues I need to focus on before worrying about the gear I wear in the pool.
It’s the same with Ionic. Ionic 4 will bring significant performance improvements, but if your code is not already designed well and operating efficiently then any improvements that Ionic 4 brings are probably going to be insignificant in comparison. Focus on improving your swimming, before you worry about super suits.
Assume Responsibility
I don’t want to get too preachy here, but a mindset that has served me well in life is assuming responsibility for things (even if they may not be my responsibility). It gives you the power to make changes and improve. This is a mindset I always have (or at least, try to have) when coding. It’s so easy to get frustrated and blame the tools, the framework, or other developers, but it is much more productive to blame yourself.
If you run into something that you think is a bug, assume that it’s a mistake you made. Investigate the cause and debug to the best of your ability. If you solve the problem you can now quickly move on with your work, and you probably would have learned a thing or two you wouldn’t have otherwise. If it does indeed turn to be a bug in the framework or tools you are using, you now have something valuable to contribute back (a more detailed issue report, or maybe even a fix) and you still would probably have learned some interesting things.
If your application is performing slowly, assume that it is an issue with your code. Unless we are in the realm of very small optimisations, then chances are it is your code that is the issue anyway. If you assume responsibility for it and start looking for ways to improve performance, then you are going to start learning some interesting performance concepts that will make you a better developer.
It’s easy and good for our egos to shift blame onto someone or something else, and it’s certainly easier to say to your boss:
It’s a limitation of the framework. The framework we are using just doesn’t perform very well.
rather than:
My code isn’t designed as well as it could be, and I’m not sure how to fix it right now.
Sometimes, you won’t know that you haven’t designed something the best way possible, especially if you are a beginner. But I think it is a much better mentality to assume that it is always your fault, as it gives you the power to search for a solution and improve as a developer.
Ionic Does Not Make Creating High-Performance Applications Easy
The Ionic Framework makes creating applications much more accessible to a lot of people. Mobile applications can realistically be created by developers who may only have reasonably basic knowledge of web tech. The applications may not look that great, or perform that well, but they can work well enough to achieve valuable goals.
I have always seen this as a bit of a double-edged sword for Ionic. This accessibility has opened up the door for thousands of people to create applications where they otherwise may not have. However, many of these applications are not designed as well as they could be, and inevitably you have a lot of clunky, slow, poor performing applications built with Ionic floating around. This is a good thing. Just because an application is slow, or ugly, or frustrating to use, it doesn’t mean that it provides zero value. It does, however, create a bit of a reputation problem for Ionic… if there are a lot of poorly performing Ionic applications around due to that low barrier to entry, people may get the impression that this is a problem with Ionic.
Creating a complex Ionic application that performs well requires specialised knowledge and expertise.
It’s probably going to take a comparable amount of time and expertise to develop the application any other way (natively, or with any other framework). To me, the main benefit of Ionic is not that it makes developing applications easier (although, I do very much like using web tech and developing in the browser). The benefit is mostly in Ionic’s portability – running on web tech means the same codebase can work anywhere the web does. With Ionic, we can get an iOS application, an Android application, a standard website or Progressive Web Applications, and even a native desktop application all for the same price. Who knows where we might want our applications to run in the future, but I’d say there is a strong chance web tech isn’t going to be disappearing any time soon.
Although I see that as the main benefit of Ionic to developers looking to master what Ionic can do, the fact that Ionic makes it easier to create “decently” performing applications is the main benefit for a lot of people.
If your application does not require top-notch performance, then you can get away with just basic knowledge. If you need a high-performance application, then you are going to need to invest the time into learning how advanced browser concepts play into application performance.
Common Sources of Performance Issues in Ionic Applications
I said I didn’t want to sound too preachy, so let’s switch gears into some practical information that you might be able to implement in your applications. I’m going to walk through some common things that can be the source of performance problems in Ionic applications. We’re going to start with the relatively simple stuff that has a huge impact on performance, through to more obscure stuff that requires a lot more intimate knowledge of how the web works.
We are only going to touch on these concepts briefly, otherwise, this article would be far too long. If you are interested in tackling more advanced performance concepts in Ionic, this is something my Elite Ionic course covers extensively.
Lazy Loading
Lazy loading is a simple but powerful concept, and it is something I would advise all developers use. The basic idea is that rather than loading your entire application on boot, it will only load what is required at the time (i.e. it only loads what is necessary for your first page). Additional resources can be preloaded in the background after the application has booted, or loaded on demand (only if they are accessed).
Imagine going to a website that loaded every single page on the website into memory when you visited the home page. You just wouldn’t do that. But if you have an Ionic application that has 10 pages, and you don’t use lazy loading, then that is exactly what you are doing with those 10 pages. If your application takes more than a couple of seconds to boot then this is often the issue.
If you are using lazy loading then it doesn’t really matter how big your application is, you should still be able to launch it quite fast. A good example is this video of the launch time of an Ionic 4 application:
youtube
The example conference application used in the example is quite complex, but it is still able to boot very quickly. Ionic 4 and Capacitor are of course new tech, so here’s another example of an application I built with Ionic 3 and Cordova:
youtube
As you will see, the boot time is near instantaneous. For more information on how lazy loading works in Ionic 4, I would recommend reading: Using Angular Routing with Ionic 4.
Make a Production Build
Throughout development, we generally use a debug build. The code is intentionally left unoptimised to make it easier to debug. Although it is easier to debug, it will not perform as well as an optimised build.
All you need to do is add the --prod flag to the end of your run or build command, and you will likely see a big performance increase. This is something that everybody should be doing, but it’s something that people could easily miss.
Splash Screen
If you are using Capacitor, the splash screen for your application has a default timeout of 5 seconds I believe. This means that no matter what, your application is going to take 5 seconds to finish “booting” (even though it will have already loaded in the background). Instead of letting the Splash Screen time out, you should manually hide it whenever your application is “ready”. When that is will depend on your application – it might be as soon as the first bit of code runs in your application, or you might want to do something else first.
All you need to do is use the Splash Screen API to hide the splash screen as soon as your application is ready. Just call SplashScreen.hide() and the splash screen will dismiss as soon as it hits this code.
Blocking
“Blocking” is a performance killer. This is what happens when your code stops executing as it is waiting for something else to happen first. Let’s say that you are loading some data from a server, and that request takes three seconds to complete.
You could make Ionic a million times faster, but that request is always going to take three seconds to complete.
A good way to handle this is to allow the request to run in the background whilst your application goes on doing its thing (e.g. using a promise or observable to handle the request asynchronously, and deal with the returned data whenever it is available). A bad way to handle this is to make your application wait for the response to return until doing anything else.
If your application absolutely needs this data loaded before anything else can happen, make sure that you are still performing the request asynchronously and display something friendly to the user (so that they know what is happening), rather than just having the application freeze up for three seconds. Even if the request takes 0.2 seconds to complete, if you are blocking the execution of your application it is going to make it feel slow and clunky.
Browser Rendering Process
One of the key aspects of building high-performance applications is understanding the browser rendering process. This is something I talk about extensively in Elite Ionic. It is an in-depth process, but I’ll try to give a quick rundown here.
Basically, the browser rendering process is the steps the browser needs to take in order to display something on the user’s screen. It goes like this:
Image from developers.google.com licensed under the Creative Commons Attribution 3.0 License
First, something happens (typically triggered by JavaScript code) to make a visual change to the application. The browser now needs to calculate what the style for each element on the page should be (taking into account all of your CSS classes, and perhaps CSS classes that overwrite other CSS classes). Next, the layout step calculates the positions of every element on the screen. Then the pixels are painted onto the screen, and finally, the “layers” are composited in the correct order and position (i.e. you might have things with a different z-index overlapping each other).
Each step in this process has a cost, the more steps you trigger, the higher the cost. If your code only needs to perform the paint/composite steps, then this is relatively “cheap” in terms of performance. If your code triggers a “layout” then this is going to be a lot more expensive. The goal is to trigger this process as few times as possible, and to perform as few steps of the process as possible each time. If the browser needs to do too much work, then it won’t be able to paint to the screen quickly enough to make your application look fast and smooth (i.e. 60fps or 60 “paints to the screen” per second).
There are simple mistakes you can make that will mess up this process and kill performance, one particularly good example being layout thrashing. Basically, layout thrashing occurs where we are rapidly triggering the layout step in the browser rendering process (this is a common occurence when making modifications to the page in response to scroll events, since they are fired off so rapidly).
Bloating the DOM with too many elements at a time can cause issues, as the browser has to do a lot more work to calculate the styles and positions of everything on the page. Animations are another common cause of issues. Ionic applications are perfectly capable of implementing performant animations (with some limitations), but if they are done incorrectly, they can drastically slow down your application.
For example, in this video I walk through an example of an animation that performs well, and an animation that performs poorly.
This code:
@keyframes moveWithMargin { 0% { margin-left: 0; } 50% { margin-left: 20px; } 100% { margin-left: 0; } }
is terrible for performance, because it will trigger layouts.
This code:
@keyframes moveWithTransform { 0% { transform: translate3d(0, 0, 0); } 50% { transform: translate3d(20px, 0, 0); } 100% { transform: translate3d(0, 0, 0); } }
is great for performance, because it won’t trigger the layout step. They both achieve the exact same visual affect. Again, this isn’t something that is going to be obvious to a beginner. You could have lots of things like this strung throughout your codebase, slowing your application down, but you might have no idea that its a problem.
These are just a couple of examples, there is far more to know about the browser rendering process, and it is by understanding this process in more depth that you will start to get to the high ends of performance in your Ionic applications.
Summary
The issue with a lot of the stuff I have talked about is that you don’t know what you don’t know. You could read up on the basics, follow a few tutorials, and it may seem like you are doing everything correctly. However, there still may be many factors affecting the performance of your application that you don’t even realise. This is why it is easy, and why it is understandable, to assume that the problem lies with the framework you are using. The key takeaway from this article is that Ionic is a solid framework, and a lot of people have built a lot of high performing applications with it. It does have its limitations, but for most applications, most performance issues are likely due to the way the application is coded.
If high performance is your goal, you can achieve that with Ionic. You just need to invest the effort into learning advanced performance concepts.
What to watch next...
VIDEO
via joshmorony – Build Mobile Apps with HTML5 https://ift.tt/2FQJVpd
0 notes
Text
The smart Trick of 8 ball pool hack cash That Nobody is Discussing
Appamatix is here now with 10 of the greatest secrets, tips and “hacks” that will help you to wind up your 8 Ball Pool experience. If you’re a enthusiast of high stakes gaming, competition, and top-notch multiplayer experiences, you’re in the right place, and looking at the right game. Continue reading! Mobile video gaming has been enjoying a proliferation of “old college” game titles that take benefit of basic game mechanics that may be picked up and played quickly, but still, leave room for mastery. Honestly, it’s a alleviation! When we download mobile video games, we’re definitely not looking for the deep experience that you might find on a gaming console, with a steep learning curve and hours of personality development and…you know exactly what I’m talking about. Most of the time, it’s nice to have a game that you can grab and play for a couple rounds without being beholden to an hour of looking at your smartphone screen. 8 Ball Pool is a informal game that’s easy to approach but has plenty of room for individuals to improve their skills and compete for in-game rewards and leaderboard reputation. On top of that. This isn’t necessarily a negative thing; it’s good to see simple app-store games with staying power, and it’s not like old-school video games of a similar vein didn’t succeed predicated on their addicting qualities. It’s pool, in the end! If it didn’t keep you hooked for “just one single more game,” it might be doing something wrong. For players’ benefit, this does mean that you’re always heading to have a lot of people to play against! The basic rules for a casino game of 8 Ball Pool aren’t recognized to everyone that’s just getting started with the overall game, so we’ll blend in some of our starters tips with those tips meant for more advanced players. Follow these to a T, and you’ll be pocketing pictures left and right! Watch the Timer Among the pitfalls that new 8 Ball Pool players run into the most frequently is a foul; they allow timer tick down because of their convert until, before they realize it, they’re out of time! This not only leads to forfeiting your change, it puts the cue ball in your opponent’s hand. Being that both these are exceptionally harmful to you, it’s important never to rely too much on taking your time with each shot. Sure, it might feel like ’youre being extra precise, or lining up some fantastic move, nevertheless, you, none of that’s heading to amount to anything if the timer runs out. A much more sound strategy is to really get your eye used to the time-crunch, forcing these to find your shot as quickly as possible. Speed is key in 8 Ball Pool, and if you can’t keep up, that foul is going to see you punished. Avoid the Obvious Fouls We’re getting into some basic guidelines of pool, here, but that’s definitely not a poor thing. There are very a few moves in 8 Ball Pool that will lead to a foul and, as above, business lead to your opposition getting the ball in their hand. Since this should be avoided at all costs, keep the pursuing things in mind each time that you’re using. Accuracy is Key Even though you shouldn’t take too much time planning your shots, it’s still important to be accurate. http://clashofclanscheat.us/ If you pot the opposite color any moment aside from when you’re breaking, it can put the cue ball in your opponent’s hands. If the cue ball strikes your competitors color before your own, you’ll get the same impact. Rail Contact The overall game will enroll a foul if neither the cue ball nor a ball of any color makes contact with the rails up for grabs, too. That is one rule that always sneaks up on me (and being honest, my buddies and I forget about it all the time.) However, when you have a gaming monitoring the rules as well as your every move, nothing is going to slip by it. Pay Attention to your Colors! Which brings us to something that’s oh, so obvious, but bears talking about anyway. Because so many players do actually ignore whether they’re spots or stripes, I’ll say it once here with extra emphasis: don’t ignore which color you’re performing! Several fouls credited to forgetfulness is all that your challenger needs to earn the whole game. Advantage on the Break When it’s your use break, you’re heading to be at the best point of benefit; greater than you’ll be at any other point in the overall game. Primarily, this is because you can fall into line the shot that determines how the rest of the game is likely to be played, and also because you’ll be able to choose which ball color is yours for the rest of the match. Pay close attention to what you pocket (if anything) during the break, too. Whichever color it is, you’re heading to get another convert, where you’ll decide if you’re playing places or stripes. 8 ball pool hack tool Take into account that nothing that you pocket during the break will count towards your score, and also don’t forget that if you pocket the cue ball alone, it matters as a foul! Respect the 8 Ball Surprising nobody at all, you’ll need to have a degree of respect for the 8 ball through the remainder of any match, and not only because it’s the namesake of this game. Following the break, mishandling the 8 ball is usually the source of all fouls that players both new and old earn for themselves. In the event that you pot the 8 ball before all of the balls of your color? That’s a foul. In the event that you pot the cue ball and the 8 ball collectively? Foul. If you pot any color before the 8 ball in one shot? Foul. You can see where I’m going, here. Don’t be afraid of the 8 ball, but work around it as you intend your photos throughout the overall game. Calling Pockets Once you start playing 8 Ball Pool at higher problems, you’ll run into tiers where you have to start calling your pouches before each shot, to be able to increase your score from them. Because of this, it's rather a useful habit to find yourself in when you have the basic rules of the game under your belt. Starting out, you’ll probably only be asked to call the pocket before you pot the 8 ball. At higher difficulties, you’re going to need to call every shot. Several Shots Ahead While you shouldn't go out the timer (I know, I repeat myself), you should also try to begin seeing each body several shots ahead of what your location is. Don’t just react to where the balls are on the table during a given change, and don’t just capture wildly in the hopes of disrupting the existing condition of the table (unless you have to.) Instead, believe that the cue ball is the only thing that’s going to go over another several pictures. Where do you will need the cue ball to be, in order to pot the the majority of your own color? In this manner, the overall game of pool is like chess. A skilled player will need their time learning the lay down of each shot, but a get good at will know the lay down several shots prior to the current turn. Spin, Spin, Spin That little cue ball in the corner of the display screen? It’s there for a reason. If you want to disrupt your opponent, make a complicated shot, or elsewhere screen (or practice) some finesse, faucet that cue ball, rotate it based on the little red indicator that presents up, and then take. It’ll apply a trajectory spin to the cue ball and keep it from relocating a predictable, right line. If you make your shot (that ought to always be the goal) then you can use spin to set yourself for shots that wouldn’t otherwise have been possible. Play Offline! While 8 Ball Pool is mainly enjoyed as an online, multiplayer game, you can still practice when you don’t have an active web connection! Take benefit of this time around to brush through to the basics, or try out a few of the most advanced techniques or practices we’ve already talked about. If you’re like me, an offline practice program can almost be a form of rest since it’s taken off the pressured, competitive realm of online multiplayer. Try Playing on Miniclip.com Obviously, it’s plentifully helpful to have the ability to play 8 Ball Pool when you’re on the run, but it originated on the Flash game website, Miniclip. You are able to play the full game there, still, and it’s just as free as it is on Android and iOS. On top of that, 8 Ball Pool was designed to be used a keyboard and mouse before it ever touched a smartphone display screen, so if those touch handles and small displays are throwing you off, give it a whirl from the comfort of your laptop or desktop.
0 notes
Text
HERE'S WHAT I JUST REALIZED ABOUT COMPANY
Some people who've read this think it's an interesting attempt to write about something that hasn't been written about before. Now I feel as if someone snuck a television onto my desk. How do you decide what valuation to offer? Writing application programs used to mean writing desktop software. We're all trying to figure out what direction to grow in. Suits, who don't know one language from another, but know that they keep hearing about Java in the press; programmers at big companies, who are amazed to find that there is a huge variation in ability between competent programmers and exceptional ones, and while you can train people to be competent, you can't train them to be exceptional. But using the Internet on my work computer. Brevity is underestimated and even scorned. Stuff used to be rare and valuable.
In fact, the poorer people are, the more the rest will want to come here. Who's right? Anti-immigration people have to invent some explanation to account for all the effort technology companies have expended trying to make immigration easier because they say they can't find enough programmers in the US. So if you want to invest seriously, the way to get lots of referrals. It's pseudo-hip. The best way to do it is to get lots of referrals is to invest in any good startups. For most people, rich or poor, stuff has become a burden. And this is one of the hot startups that always win recruiting battles. Newton's biographer Westfall seems to feel he was overreacting: Recall that at the time he wrote, Newton's slavery consisted of five replies to Liege, totalling fourteen printed pages, over the course of a year. The most successful angel investors I know are all basically good people. Companies rarely have to fail though. Similarly, founders also should not get hung up on deal terms, especially when you first start angel investing.
You should shut down the company if you're certain it will fail no matter what you do. That's a known danger sign, like drinking alone. One reason, obviously, is that you shouldn't build object-oriented programming is because it yields a lot of graduate programs. A and still has it today. I think if you looked around you'd find that a lot of the most exciting new applications that get written in the next twenty years will be Web-based applications, meaning programs that sit on the server. In those days people's stuff fit in a chest of drawers. So the solution may be to shrink and then figure out what direction to grow in. When you negotiate terms with a startup, there are two types of thoughts especially worth avoiding—thoughts like the Nile Perch in the way they push out more interesting ideas. Nothing owns you like fragile stuff. Television, for example; the last thing I want is for startups, Pick the right startups. And if you're in the fatal pinch.
Another way to make money in a different way. Just make sure that you and the startup agree in advance about roughly how much you'll do for them. Distracting is, similarly, desirable at the wrong time. Most if not all the things we describe as addictive are. It would be nice to be able to assume about them is that they have to. The ideal thing might be if you built a precisely defined derivative version of your product for the customer, and it was otherwise a straight product sale. C was written by people who needed it for systems programming.
And only good people can ride the thermals if they hit them anyway. Y Combinator, I remembered. There's a second less obvious component of an angel investment and yet are already better angel investors than they realize. 76% will be reduced to 4. Another way to resist acquiring stuff is to think of the overall cost of owning it. Distraction is not a business where you make money by screwing people over. But I didn't use the term slippery slope by accident; customers' insatiable demand for custom work that unless you're really incompetent there has to be good. The closest is the colloquial sense of addictive. It's not as simple as picking startups that are already making something wildly popular.
So in theory, each further round of investment leaves you with a smaller share of an even more valuable company, till after several more rounds you end up with. Good founders make things happen the way they push out more interesting ideas. And that means other questions aren't. You should shut down the company, that leaves increasing revenues and decreasing expenses. The company is now starting to read as a failure. Another way to make money but to try to make you feel bad if you even ask—as if there were a little man in your head always cooking up the most plausible arguments for doing whatever you're trying to stop doing. Friends would leave something behind when they moved, or I'd see something as I was walking down the street on trash night beware of anything you find yourself describing as perfectly good, or I'd see something as I was walking down the street on trash night beware of anything you find yourself describing as perfectly good, or I'd see something as I was walking down the street on trash night beware of anything you find yourself describing as perfectly good, or I'd see something as I was walking down the street on trash night beware of anything you find yourself describing as perfectly good, or I'd see something as I was walking down the street on trash night beware of anything you find yourself describing as perfectly good, or I'd find something in almost new condition for a tenth its retail price at a garage sale. Before you buy anything, ask yourself: will this be on the test? So they claim it's because they want to be able to assume about them is that they have to resort to compulsion are not the ones that set the trends, both for other startups and for VCs.
In fact these free or nearly free things weren't bargains, because they were worth even less than they cost. Run into an obstacle in what you're working on? Deciding to fire people is usually hard, but there's one case in which it shouldn't be: when there are people working hard to figure something out, failing, and then I'd gradually find myself using the Internet, and distractions always evolve toward the procrastinators. If they really want you, either because they desperately need money, or you're someone who can help them a lot, quickly. I'm increasingly convinced this type of thinking is not merely helpful in solving hard problems, but necessary. Well, server-based apps get released. I think there will need to be rewritten.
It has ulterior motives. I'm simply eccentric. If you have to make it so that you can't merely slip into doing the thing you're trying to save your company from death here, so make customers pay a lot for? In those days, you couldn't tell a book by its cover. Technology gives the best programmers, but no amount of training can flip a ratio as overwhelming as 95 to 5. Exceptional programmers have an aptitude for and interest in programming that is not merely the product of training. But one thing that might work is to ask yourself, before buying something, is this going to make my life noticeably better? The computer would be just as happy speaking any language that was unambiguous. I've never heard anyone say that they loved Java. In fact, the poorer people are, the more the rest will want to come.
#automatically generated text#Markov chains#Paul Graham#Python#Patrick Mooney#explanation#sale#price#accident#night#beware#Nile#poorer#way#Y#people#rounds#C#direction#slippery#version#drawers#slavery#startup#sense#server#someone
0 notes