The number of images depends on several factors like the total number of objects, the variation of images, visually difference between objects, etc.
We have developed some proprietary technology to reduce the amount of images needed. In general each object should have 10-100 images to avoid overfit.
Sure, but version names are hard to order: was Catalina before or after X? who will remember? (maybe if it at least was like Ubuntu with names following alphabetic order)
I'm on a 2012 MBP with similar experiences. Every year I think about finally replacing it, but hold off on it because everything still works fine apart from some increased fan noise and reduced battery capacity (which doesn't concern me too much). If you treat your laptop with care it really does last a long time.
At some point I expect I will stop getting MacOS updates which will force me to upgrade to a newer model.
I’m still running my 2010 MBP (it was worth maxing out the config, and I've replaced the optical drive with an SSD), though recently I bought a 2009 Mac Pro for my main machine. The MBP has fallen several feet into a concrete shop floor with only a squished corner in that milled aluminum case, and is on its third or fourth battery (I should stop cheaping out). I did splurge a few years ago on a replacement keyboard when the original's PCB traces started corroding. That's one of the first parts they integrated to the detriment of its repairability.
With a tweak I was able to get Mojave on it, and another tweak to get Xcode to compile for iOS 13 on it. That should do me for a while, until either the video cable exposed through a hinge breaks, or they can’t get the latest iOS to compile on it. But I’m loathe to get a machine that won’t let me keep it alive the next 10 years.
Intel CPUs haven’t advanced that much since this machine's 2.66x4 i7. The video probably hurts more. It points to a future where we can just expect to put some money into maintaining our computing machinery instead of consuming it like it's a service. But given that John Deere has moved this way, I’m not hopeful that computers will go back that way. Support right-to-repair bills!
> I’m still running my 2010 MBP (it was worth maxing out the config, and I've replaced the optical drive with an SSD), though recently I bought a 2009 Mac Pro for my main machine. The MBP has fallen several feet into a concrete shop floor with only a squished corner in that milled aluminum case, and is on its third or fourth battery (I should stop cheaping out). I did splurge a few years ago on a replacement keyboard when the original's PCB traces started corroding. That's one of the first parts they integrated to the detriment of its repairability.
Exact same story here. I finally bought a Lenovo last fall after giving up hope that Apple would make a machine I could also get 3TB into. I still use the old MBP for photo management.
I have an Early 2011 MBP which I stopped using precisely because it couldn't get Mojave and therefore couldn't run the latest Xcode and therefore couldn't build for iOS 13. When I searched it sounded like any hacked upgrades would leave the graphics in a pretty poor state and it sounded like it just wouldn't be worth it. So I am curious on your results?
Another happy mid 2012 MBP owner here. I am happy that I could upgrade the RAM as soon as I bought it to 16GB, and replaced the HDD with SSD after 5 years, and have replaced batteries twice. Running 10.15 without any problems. The screen hinge has loosened, but nothing a screw driver and ifixit couldn't fix.
I built a guitar stomp box using a Raspberry Pi Zero to trigger samples with a foot switch. Runs on 9 volts and has a very bright OLED display so I can still see what it's doing when I'm playing in a dark venue.
It's basically a Pi, a buck regulator, a tiny COB USB audio interface and an SSD1306-based 128x32 display. Removed all connectors and replaced them with soldered wires so it packs neatly into a tiny box.
The software is all custom and written in C, using Jack for low latency audio and my own driver for the display (Adafruit makes a Python driver but it eats half of your CPU and is not optimized for i2c bandwidth or high framerates).
Not really a trick of Vim itself, but when using Vim from the terminal I find ctrl-z very useful to background Vim, type in a few shell commands for git or whatever and then use "fg" to hop back into Vim.
Ctrl-Z only gets converted to SIGTSTP if the terminal has ISIG set. For example, try `stty -isig; sleep 5` and try to suspend or interrupt the sleep command.
Danger. Then you can tell people Danger is your middle name.
I actually seriously considered changing my middle name to Danger last year. However, I decided it wasn't worth the trouble for a cliche pickup line due to me being a dual citizen, and a resident in another, so I'd have to change my middle name in 3 different countries.
I don't have one and just pick random letters or names when it doesn't matter. Then I know which ones sold the info to the marketers. "Oh the place I have the X name to is now spamming me with junk mail..."
For more Irish cred, one can of course include an apostrophe as well as the other means mentioned elsewhere in this discussion. Verilog is quite useful in this regard, because of the way that one writes hexadecimal constants.
John 003'hdeadface Smith. Known as "six" to his friends.
No, keep the leading 0x. John 0xdeadface Smith has the added social advantage of also enabling the 0pointer-is-superuser security hole in older versions of systemd, if one can convince people that one never goes by "John". (-:
groceriesByDepartment.mapValues { items in items.count }
vs e.g. Ruby (or at least close, it has been a while):
groceriesByDepartment.map { |item| item.count }
The "in" makes it feel like you're calling "items.count" on...? and then getting the "items" from it (since it sorta implies that items are in items.count, which seems like nonsense).
E.g. this reads more naturally to me:
groceriesByDepartment.mapValues { item.count in item }
otherStuff.do { a.value + b.value in a, b }
which would also move the "what it does" further to the left, rather than having to skip over the argument names (which are frequently obvious in context, and/or something trivial like "it" or "item" or "x").
---
That said, if you consider it as "use 'items' in [a block of code]" it basically makes sense, and I could probably learn to stop worrying, and love the syntax.
Dictionary(grouping: groceries by: { item in item.department })
The people who chose this syntax probably said "hey, it's VARIABLE in EXPRESSION, same thing right?". But the semantics are completely different!
In the for loop it's "for PRODUCT in SOURCE": the expression is evaluated first, and the variable is assigned with each of its items in turn. In the lambda or whatever it is, it's "{ SOURCE in PRODUCT }": first the variable is assigned, then the expression is evaluated based on it. The data flow is the opposite!