5,833 karma · joined October 29, 2009
I do custom electronics, robotics, and embedded software development - I specialize in quickly turning ideas into prototypes. I've built custom automation equipment for chemistry labs, sensors that are in use in household/utility applications, control circuitry for construction equipment, 3d printing electronics, data acquisition equipment. No project too small. Few projects too large. Deep discounts for open source hardware work.
I would also be happy to come over (anywhere in Europe) and teach any of the above skills to a small group of interested people. I've taught courses in electronic assembly (SMD), 3d printing (building/using printers, iterative 3d model design using programming) and robot design and construction. I've taught courses at several universities, hackspaces, and conferences.
Since the transport cases are reusable, and don't need to be completely populated, what will likely happen in rural areas is that they'll have a case for shipment, refill it with dry ice on site, and use a second case to transport a small number of doses to the point of use. Repeat until used up, refilling with dry ice every few days at a central location (less than a week's travel from administration sites). I don't think it's going to be a major problem in practice.
Invidious needs your help!
invidious[1] is an open alternative frontend to youtube with low bullshit, that works without js. It's written in Crystal. The core developer decided it was too much for them and has taken a (likely permanent) break from the project[2], and the community is struggling to maintain it[3] because there's very few people who have ever seen or heard of Crystal and like youtube-dl it's subject to breakage whenever google tweaks something on the youtube page. If you are a Crystal person and this is of interest to you, please help. For a bit more information on the way the code is structured and the current work that's happening, see [4]
[1] https://github.com/iv-org/invidious
[2] https://github.com/iv-org/invidious/issues/1320
It's not a difficult language, at all. It is actually surprisingly simple. The problem is the obscurity - there is very little interest in Finnish as a second language, and the teaching community for it is small and hasn't developed the kind of resources that imperial languages that were taught to countless millions of people during the age of empires (English, Spanish, French) have available. There's just not been a long enough history of teaching Finnish to adults and the resources are poor. My recommendations if you want to learn it:
a) constant low-level exposure to local media - local television has foreign-language films in original language with subtitles - this is super useful as a way to pick up new vocabulary you don't encounter in your everyday life, such as "get to the chopper" :P
b) this is controversial but I think the standard language model used by linguists is too strongly inspired by Latin and a very poor fit for Finnish. I find trying to learn grammar formally is counterproductive and will set you back. Instead, think of the noun suffixes as a preposition equivalent. Trying to think of them as cases will mess with your progress
c) hang around people having conversations and listen. Don't try to understand, just get comfortable with the sound of it. One of the more difficult things with agglutinative languages (languages that stick things together, very roughly speaking) is parsing out bits of words. Early on I'd sit on buses a lot and eavesdrop on random conversations just to get comfortable with the language.
d) Language courses are a poor path to fluency. I know people who spent a decade and a half on language courses and were unable to effectively communicate. If you are in a language course, try to counter its effects by at least equivalent-time exposure to random conversation
e) Music is a great in - it's way easier to remember complete phrases as song lyrics than standalone, and you can listen to an album a few times and then try dissecting a particular song's lyrics to figure out what it's all about.
f) Your primary bottleneck as a beginner is vocabulary - ignore grammar at first, just collect as much vocab as possible. The grammar is so simple and structurally regular that you'll pick up most of it from context, but that only works if you know what the hell people are talking about. Collect words everywhere you can. Read comics, read newspapers. Read medication warning labels. Read user manuals. The latter two are especially useful because they're parallel text so you have the translations right there. Don't try to keep score of how many words you know, keep score on how many word roots you recognize on an average day.
g) Try transcribing things you hear. youtube-dl a news broadcast, play it at 0.75x speed and write it all down, pausing the video if necessary. Don't bother trying to comprehend everything, just write it all down.
h) Use Finnish in boring everyday stuff - supermarket checkout, for example. This is easy low-level stuff and you'll get functional at that level very quickly. Do this way before you feel comfortable. This will give you daily active low-level practice. Use Finnish for all interactions where it doesn't have severe consequences if you're misunderstood.
i) Use media targeted at children. Story books are a great way to get lots of simple vocab in, and also a bit of culture. Go to the library, pick up a bunch of books targeted at 6-12 year olds, read them all. Repeat.
j) It may appear superficially that all the vocabulary is weird and foreign but a whole lot of it is borrowed, just borrowed a long way back. Not so useful early on but you pick up some patterns eventually. A number of phrases are word for word translations from other languages - for example "elintarvike" (food products, groceries) is a word for word translation of German "Lebensmittel". Learning German after Finnish I found a lot of familiar phrases. Going further back, you see a ton of germanic roots in everyday words like "tuoli" (chair). It's not obvious at first until you look at the Estonian version "tool", which is an earlier form of the same word. That is of course an abbreviated version of "stool"/"Stuhl" which is clearly germanic. Again, this won't help you learn new vocabulary but it may help with the feeling of "what the fuck how do they come up with this shit" that you get on first exposure to a new language group.
Expect 18-20 months before you can make sense of most things your colleagues say. Going from there to fluent communication depends entirely on how much you actively use it. It's not hard, it's just that nobody has had a century or two of experience teaching it to adults, so you have to figure out ways of making it work for you. Have faith in yourself. Once you break through the initial "this is so weird" barrier, progress is quick and very rewarding.
edit: Here is the actual USB core that's in there: https://github.com/im-tomu/valentyusb/
There's also two other excellent floss electronics CAD tools - LibrePCB and Horizon, which are also worth trying. They are built by people who felt they could do a different workflow to KiCAD, and have succeeded at that. I personally still feel more comfortable with KiCAD, but it's always nice to see alternatives.
One thing I've been seeing with the FLOSS tools that just doesn't exist at all in the commercial world is cross-pollination of both code and features. KiCAD now has footprint DRC built in, which is something that originated in LibrePCB. And Horizon uses the KiCAD routing engine internally, while having a completely different everything else. Developers of all three hang out with each other and exchange ideas. This is something where the commercial closed stuff simply cannot compete.
Openscad is the best for working with existing STLs. Say you have a centered 30x10x10 mm part and you want to remove the central 10mm. My strategy could be:
1. import the part, translate it by 5mm in positive x direction, and subtract from it a centered cube larger than the part that is moved in positive x direction so that it ends at x=0:
difference(){
translate([5,0,0])import("file.stl");
translate([16,0,0])cube([32,12,12],center=true);
}
2. import the part again, translate it by 5mm in negative x direction, and subtract from it a centered cube larger than the part that is moved in negative x direction so that it ends at x=0. Because this is so similar, you can reuse the code: for(dir=[-1,1])difference(){
translate([dir*5,0,0])import("file.stl");
translate([dir*16,0,0])cube([32,12,12],center=true);
}
3. Make a watertight join between the two - you want to make sure the two shapes overlap a tiny bit. So we change the cut cube to be out of the origin line by 0.05mm: for(dir=[-1,1])difference(){
translate([dir*5,0,0])import("file.stl");
translate([dir*(16-0.05),0,0])cube([32,12,12],center=true);
}
protip: prefix a negative shape with # to see it in the preview - like in the above replace cube with #cube