Hello, my name is Satish, Satish Chetty. I'm actually, hold this in pocket. We got a few more minutes to start, but I think I'll start anyway. Gives me a few minutes to answer your questions if you have any. My name is Satish Chetty. I'm actually pretty surprised and happy that you guys are all here. There's another interesting talk going on and I thought I wouldn't have so much coverage. Anyway, so this is a strange topic and I wanted to give some background before we go further into it.  Give a little background of me and my introduction and what this all means, how Linux and Arctic Buies and how that affects and that kind of stuff. My primary job actually, I'm a VP of Software Engineering at a startup in San Jose. We do Earth Imaging Satellites and I do the OBCS, the computer onboard computer as well as the software software systems on it. My background's pretty much been on embedded systems for the last couple of decades or more. Most of it has been on the firmware level but more on the systems integration stuff. I do work a little bit of hardware but it's more on a high level stuff. I don't design circuits or circuit boards kind of thing but I do work closely enough so that I can affect the software on it. But the last 15 years or so I've been volunteering both at Stanford University as well as with some climate change groups and this talk is actually some of the work that I did with them. And so I've been to the Arctic and the Antarctic and developed some sensor-based systems and this is one of them. And my background's been on special instrumentation. I've also done work on smart meters that are outside on the cold and the heat, the instruments that fail and the software that affects it and so on. I've worked on some commercial and industrial products as well, both the hardware side and the software side so I kind of, the system engineer, product manager kind of things on those areas. By the way, feel free to slap or ask any questions if you want and keep it as informal as possible. I wanted to give a little bit of the background on this. Why, where with Linux, embedded Linux is going with this stuff? So the goal of this project is to build a sensor platform that measures various parameters like incoming sunlight and outgoing sunlight and sonar and ice thickness and so on. And the location for the initial deployment is actually Barrow Alaska, Barrow location-wise. It's about 1,300 miles or about 2,000 kilometers from the North Pole. It's 72 degrees north. It's the northernmost US town and it's got nice facilities and all that stuff. It's still a little lower but it has a little bit of brutal weather on it. You can only fly there. You can't drive there on no roads to this town. You can only fly but there are daily flights. Alaska Airlines actually serves them. And it's cold and dry and there are no wind barriers. The Arctic Ocean's actually on all three sides. During the summer, I mean, during the winter months, it's 65 days of darkness. So what do we build has to manage and survive that. And it's on the Arctic coast. Lots of wildlife, so polar bears, Arctic foxes. And actually all the stuff affects our software too. So I'll talk about this too. And there's good infrastructure there. So the local community there provides a lot of research work. So there's a lot of research work that happens all over the world. And scientists from all over the world come there. China, India, it's the US. There's a lot of infrastructure, good communication infrastructure as well. When I say good, good for that kind of location. Okay, sorry, sorry about that. Is it better? Okay. So this is a quick video. This is in July. We were landing at Barrow and I took this out of the window just to give you an idea as to what kind of terrain this is. That's still the Arctic Ocean. It's still frozen and all that stuff. But you can see it's starting to melt. And this is when I took this video before we landed before we had to do some servicing on the equipment. And this is, I wanted to show, actually I filmed this for my daughter but it's a nice interesting video. I wanted to show what happens at minus 40 when you throw a cup of boiling water inside. You would have seen this. There's a lot of videos on YouTube about it but I wanted to try this. By the way, I'm at that research facility. Outside is minus 40, inside is nice and toasty. And the dangerous part was actually carrying the hot water out. It instantly turns into snow. So the challenge with this stuff is, I mean it goes on for a while. When I showed this video to my bear guard, by the way, when we go out into the ice and actually have to set up this equipment, we need to hire a polar bear that can attack us so he comes with a gun and all. So when I showed it to him, he said, please don't waste water. Anyway, so the big challenges are, just to give a little bit of the background. So we've been testing some of these sensors and sensor instruments in Tahoe, in parts of Canada, in Minnesota, wherever we could do. I mean some of the weather is similar but not the same especially with the salt water and ocean conditions. So some of the challenges are the size. Whatever we build has to be nice and small. The smaller it is, the easier it is for us to pack, ship, and get customs clearance. It has to be lightweight. Accessing this location, even though we fly to Barrow but once we land there, we wanna make sure that it's easily transportable. Sometimes we have to carry it, sometimes we have to sled it so we have to make sure it's nice and lightweight. That includes not just the electronics part and the sensors, it's also the structure, the buoy and things like that. Power, most of the time, power is the biggest challenge for us so some of the kernel compilations and power management stuff that we had to do was actually based on power. So the big power hogs, I'll talk about them a little later, and the performance. So you have to compromise the swap thingy, right? So you have size, weight, power, performance, and of course the cost. And performance wise, yes, you can throw in a big computer with a lot of GPU and computing power and all that stuff but it doesn't serve much purpose in that kind of sensor management stuff. Of course, the next question is, why can't you use something like an Arduino or a microcontroller to do that? And that's where the performance part comes in. Several of these sensors that we use are actually low cost sensors. And these sensors also have USB drivers or software that actually works with them. So instead of us trying to get the hardware, build our own custom PCB, solder it, do firmware level testing, it's easier if we use a Linux system and just plug it in. So we need something that is usable but we still have control over how we configure it, how we compile it. And I'll talk a little bit about those experiences as well. And the cost. Cost is important because yes, we can spend some of the other, the scientific government sponsored buoys cost anywhere between $30,000 to $50,000. So of course this group is a nonprofit, it's a privately funded group and the cost was a significant aspect of it. So yes, the sensors are good when you pay a lot of money but you also lose them and I'll show some pictures about them. And you have to always plan as if you're never gonna retrieve these buoys, including your data. So you wanna make sure the cost is low so if you lose it or if you damage it, you know, it's not a big loss. Secondly, keeping the cost down allows us to build multiple buoys and we're not putting everything into one system. Communication and this is the challenge also. It's so remote. And in fact, geostationary satellites have to be pointed down like this instead of up because the equator is somewhere around there. So all these antennas are always pointing down which means the bandwidth is always restricted. You don't have a lot of usage. In many parts of the world, you can use unlimited 2G, 3G data kind of thing. It's all metered so you have to pay for it. So communication is a challenge and you can use satellite systems like Iridium which is fantastic because worldwide globally it works but it also costs an armor like it costs about $1.50 per minute of dial-up and it's not so much the cost that's the problem. It drains the batteries like crazy. So you wanna make sure that that's something and there's local data storage that you have to manage in case you can't communicate, you can't transmit the data, you wanna have it locally so even if your buoys found several miles away you can actually pick it up and retrieve the data. Transport to size, this is actually part of those first two items, size and weight so you wanna make sure it's easily transportable. Give you an example, when we shipped everything we had to do, it came in big containers or suitcases sometimes and would land at the airport and we would drive it to this research site and from that research site we have to use snowmobiles or ATVs to go to that site. So you have to make sure that it handles all the vibration, the bouncy stuff and so you don't wanna have something that is too small that is hard to handle. In assembly, some assembly on the ice happens and operation it's autonomous, semi-autonomous and manual. You wanna keep it autonomous as possible but sometimes things do go crazy and you have to reboot or unplug some sensors and put them back and do some field level testing and it's usually not engineers who built them. It's usually the support staff or someone who's not familiar with this equipment at all they have to do this and sometimes you have to do it manually meaning you tell them plug in this cable run this on the phone kind of thing to help them out. The other part is just as assembly is important disassembly is also important. So most of this research and study actually happens when the ice melts. The goal is to find out how the ice melts during that melt season but we still wanna collect how the ice behaves during the freeze cycle. So we put it usually around this time, November timeframe and then study it throughout the winter and then when the actual melt happens it happens so fast meaning it happens within six days, eight days kind of thing and pretty much all the ice is now liquid water. So you wanna make sure you can disassemble it properly or you're gonna lose your equipment or you might topple over or you might drift off or you will have other challenges. We've had that one time. The buoy was not anchored properly so it flipped into the water and the nice thing the box was waterproof so it was taking pictures of all the fish inside. So removal from the site. You know, it's sometimes easier to take it to the site and it's harder to bring it back because it's got other stuff on it and so that's another challenge and transport back to the lab or disposal. Sometimes parts of the buoy have to be disposed because they are broken or can't be used anymore weather and environment and other challenges, animals as such. Okay, so I still haven't come to the Linux part of it. I promise to do it. So here's the deployment. There's the buoy, you know, we have a sonar which actually is measuring the depth here. There's a Albedo sensor that's measuring how much radiation is being bounced off the ice. So you have four different quadrants so they're measuring four different areas. That's the battery pack. There's a camera system here. This is kind of where we'll be talking more and you can see the other one, the sensors pointing up so it knows how much. So the essence of it is how much sunlight is coming in and how much sunlight is going off, how much is actually getting converted into ice and so on and so forth. So I'm not so much on the science part, more on the instrumentation and the work part. So the computer, this is the challenges. I mean, we needed a computer that does this. It has to be fanless. Of course, if you have fan, you're wasting power. And first of all, wasting power because you're heating up parts that you don't have to heat up and then you're running the fan itself. So anything with the fan is a bad idea. So the slower the clock speed is, the more power efficient it is. And this is one of the good ones. So nowadays you get arms for arm processors, one gigahertz, you know, low-powered ones. But the other part is interesting for me at least. So it's configurable to operate at a lower speed so you can slow down the clock and actually use less power. But of course it's much slower. And there's another good thing about this computer board, I'll show a picture about that, is it's a peripheral on and off you can do through the software, which means you can turn on and turn off a particular bit and the USB goes off, right? So you can manage power like that. It can run at half a watt when it's fully running and when it's sleeping, it uses very little power. Can operate at very different operating voltages. So you can run it at eight volts, nine volts, 14 volts, 24 volts and it'll still run. And this is good because the battery doesn't maintain charge all the time and depending on the time of day and other aspects, it goes, the voltages vary.  So we're not burning power. Even half a watt of power is quite a bit of power. And that causes clock drifts at minus 40, I'll talk about that. And so what I did is we did, I mean, I worked with another engineer as well on this. We used Debian kernel mainly because we used Logitech webcams. And these are, you'd see them a lot of places. This is a particular model number that works at minus 40 and plus 85, it's about $75. It's actually a little bit more expensive than our computer itself, but it works great. Meaning, you know, and it's easy enough, you can just order it off Amazon or something. And the drivers work on your desktop, but not for these embedded ones. And that's where we, that's one of the work I did, meaning I had to connect them and actually compile the right UBC driver to make sure that you can turn it on and off, you can do all the video controls, you can take still imagery, but I still wanted to do video, I'll explain that in a bit. The video is actually, maybe I'll explain it now, but video is important because it helps the camera focus. So the camera's inside a box, a plastic box, actually a fishing bait box, and it survives very well. That's the reason we tried different boxes, you know, several hundred dollars worth of boxes, and finally that one worked out very well. And it doesn't let the ice and rimes stick to it. So when you have these cameras, and you say turn it on, take away, you can use let's say FS webcam or, you know, your standard Linux tools and grab an image, it'll grab most likely the image right in front of it, which will be the reflection of the box itself rather than the image outside it. So having the video controls was important because about what we eventually found out that running this video for let's say three to five seconds lets the camera focus on something outside and eventually it gets a good enough image of it. Once that is done, we discard all the image that was captured and then grab one image out of that stream. So compiling that at the kernel level was actually important. And again, the question is, yeah, there are cameras that will work at minus 40 security cameras outside buildings and all, why can't you use that? Challenges, power, weight, cost, performance, and so on. And if any of these things, I mean, the camera doesn't work, we can always replace it very easily. We actually had local Wi-Fi. We learned it a bad way that we needed with local Wi-Fi. The reason is a lot of times the, we put in a small SD card to store data in and sometimes the modems will fail or they won't communicate and we want to take the SD card out. And like I said, you have to do it before the melt happens which is slushy, dangerous water when you're walking around it.  So having Wi-Fi helps us saying, I can configure this as an access point when the computer boots up, it actually comes up and says, here's my access point. So if I'm close by, I can use my cell phone or an iPad or something like that and download the data much faster. So compiling that was a challenge again because we found out that certain drivers require certain other network drivers, some bit to be said before you can compile them. So every time you add another piece of software that needs to run, you're adding up more complexity, the boot time increases, which means it's burning more electrical power. So another one was removing non-essential packages, making sure only the right ones come up and reduce the boot time and shut down time as well.  And testing, testing, a lot of testing, we did that with about freezers and actually tested this. And the interesting part is, we usually do this work in mid-summer and we are running freezers and we're wearing jackets in 30 degree heat. So the basic operation is start up, check the disks for any issues. There's onboard EMC as well as an SD card stored for local data. Make sure there's any issues. If there are issues on the disk, just move on, don't try to fix it because if you try to fix it, you're spending power on it. Start the weather data logger. It's actually using a software-defined radio modem card that we had to compile as well. So many of these accurate and weather stations that you can get off the market, they actually work fantastic even in that cold. But they transmit at 433 megahertz, the unlicensed band, and so you can pick it up in your home. So what we did is actually built a, I mean, we got a software-defined radio USB dongle, plugged it into it, compiled the driver, ran it, and so we can read off the weather station remotely. So that's another work we did. There's a one-wire temperature logger. The one that you didn't see on the picture was there's actually a long cable, about four meters long, that goes deep into the ice with sensors at every level. So you get a profile of what the water and ice thickness is. Interesting fact is the place where we were testing, the melt actually happens from bottom up and not top down. That's because all the melt water that flows into the area actually starts to heat up and melt the ice from bottom up, not from top down so much. So log system parameters, so this is important for me. I want to make sure what battery it is, how much disk space, what the CPU temperature is, what the IP address is, if I'm getting an IP address. And try to send this sensor and data log through local 3G network. I said 3G because it's not good and at that location, we actually had to sell repeaters to get that working. If none of that is possible, we capture images, we capture all this data, I'm trying to transmit it, none of that is happening. Just one try. No three tries, no four tries. Move it to an archive, meaning move it to a directory and then initiate a shutdown. Because the more we try, the more power we waste. So we try that and do that. And initiate a shutdown and then do a disk flush and sleep for X seconds. X seconds, usually the researcher says, I want data every four hours or two hours every day, then they define those seconds. That's the computer. It's about year size. And there's a small battery that keeps the clock alive. Nothing else on it. Very similar to the Raspberry Pis and the Beagle Bones. They actually work very well too, but this one actually has a real-time clock and all the software-based peripheries and everything built into it. It's not terribly expensive too. So compared to the time you spend on this system, it's made by a company called Technologic Systems. It's about $150 or so. But you do get different models. It can support external hardware and all. And this is, after a long time, the hardware you're seeing, you might be surprised, these actually work very well at minus 40. And this is actually a Belkin thing. Of all the USB hubs we've seen, Belkin works great. It actually has an external power supply, so which means I can, using this computer, trigger it on, meaning after the boot sequence is done, then I trigger it on, which means once this one's powered on, the rest of the devices start to show up on the slash dev directory and then I can start managing them. This is a Huawei modem. Expensive for the rest of the stuff. It's about $50 or so, but it actually works up to minus 40, minus 20. Anything lower than that, it connects, but it drops packets or doesn't do handshakes. Of course, this is such a low volume that the manufacturers wouldn't spend time on trying to discuss why that happens. But anyway, this is kind of the lab kind of a scenario. Again, challenges, right? So that sensor that I showed you, we had a pipe and a fox chewed this up, right? And why this is important is when we're trying to read the sensor and we're getting some weird values, we wanna make sure that we're not trying to read again and waste power, so I wanna move on. So knowing this was actually helpful, there was an Arctic fox and apparently they chew a lot of cables, so next thing we had to actually put a cap on it and make sure that they don't get to the wires for some reason they actually come in and chew. This, as you can see, there are three arms, the fourth one's actually standing here, we believe Polar Bear stepped on it and broke the sensors. And so when we started getting data, missing data coming up, or when your numbers start to show as minus two, minus three and all of a sudden your temperature data is 3,000, 32,600 and something, something, you know something weird is happening. So we had to make sure that we catch all that data as well, you can see there's a small Wi-Fi antenna here. And this is another scenario where we saw, earlier I showed you a sonar, it actually tells you how much ice depth is. Well, after one blizzard, there was so much ice inside which we were getting all incorrect readings. So even though the data was showing up on our server side and we were doing parsing and storing it into our databases trying to plot graphs when it's like this, because suddenly you have all this data.  It's meant for industrial automation, so it's not meant to, so even though it's temperature rated, it's not meant to handle this kind of situation. Minus 40 other things happen, cables that are normally flexible become like sticks so you can actually tap them and break them. So those kind of challenges happen and any time you have a sensor failure, a minus 40, it's hard for you to open the box up and try to fix these things. Even trying to get it out of the box is a challenge. We tried and we kind of ruined the entire experiment one time because we pulled this, tried to pull the cable, the cable snapped, part of the cable was still sticking inside, but it yanked the boards that the board pins broke and all that stuff. So, and it's also not possible for us to dismantle the whole thing, take it to the lab, fix it and bring it back because now the sensors are all embedded into the ice and it's fairly ruggedized. There are physical design changes that are happening so the next version was don't run the cables inside but put some good connectors outside so you can dismantle the connectors and leave the box as it is. But you still have sensors running into the ice so you still have to drill another hole and start to do other parts of it. You know, that's another one. You know, all this rhyme is not really good and inside the temperature though, inside the box though, it's very interesting because when I get the system log and see it, when it starts up, it'll show up like minus 20 because by the time the CPU has heated up and it'll show minus 20, by the time it's shut off, it's plus 40 degrees C inside the box but it's minus 40 outside. It's not always minus 40, it happens fairly regularly. And deployment constraints, I think I told you about this, we have to ship by air, there's no ground transportation, there's a local SD card. We even started using Bluetooth but there are some operational challenges if multiple researchers want to see this. Wi-Fi is better, vibration I think we spoke, cabling, cellular and satellite modem use Iridium, so we start using Iridium only for text data, you don't dial up, once you start dial up, it drains your battery like crazy. And we've started putting in solar panels as well and also started to use a cellular network. We tried to set up Wi-Fi repeaters into the ocean but managing each of those repeaters themselves becomes a project. I think I spoke enough about this, stop me if I'm rushing too fast. The buoy structure is one, so we use ring buoys, these commercial grade buoys. The batteries are lithium batteries and this is another challenge. The bigger the battery is, the harder it is for you to get clearance to take it up on an airplane. So it has to meet certain specifications. The cameras are the larger tech ones, we started using small five watt solar panels, question is why can't you use bigger ones? Because what happens is that that angle, the sun doesn't just, if that's east and this is west, the sun doesn't just come up like this, kinda goes around you because you're on kinda that part. So it kinda rises up and goes around you, so which means you have to put the panels almost 90 degrees. So the bigger the panel is, the more wind resistance it has. So you wanna have something that is small enough that doesn't act as a sail, but something on all four sides because you're not just pointing on one angle, you're now catching the sun on all four sides. So we started putting smaller five watt, 10 watt solar panels. We tried, we thought we were clever enough by putting flexible panels, but flexible panels tend to flap a lot and that actually causes more problems. So tightening things is much easier. And so the lithium battery part I spoke about, there are charge controllers that we can use small 12-volt, five-volt charge controllers that control this. And the nice thing is several of them are serial devices. So they actually show up as slash dev, TTY, SO, S1, and so on. So you can actually read off and say how much battery voltage do I have and what's the state of my system and so on. Drivers, they provide, but this was mostly a hack because that particular charge controller was designed for a Windows system and they gave their own drivers.  Lot of open source tools. And sleep timers. I said I'll talk about this stuff. At minus 40, the clocks tend to go slow. And at higher temperatures, they move faster. So when you ask the clock, say, wake me up in two hours, it actually wakes up much later because now the clock frequency has gone down and it actually, there's a drift happening. And over time, this accumulates. So instead of reporting in and saying every two hours here is your data, it'll report in after two hours, five minutes, two hours, 10 minutes, and so on. And because you don't have, and there's nothing you could do about it because even the battery thinks that's what the time is. I mean, there's nothing you can do unless you can do a connect to an NTP server and time sync it. And those are expensive operations, which means you have to keep a participative connection long enough to do all this time synchronization. We do that occasionally. Once you start to see that occasionally, once every three days or four days, especially during the polar winter, it actually comes up and does a time synchronization. The board also has a particular quirkiness because once the time server thing fails, it resets its date back to 1970s. So sometimes you start to see things like, okay, it's all 2017, all of a sudden, and now you're getting data from 1970 and the clock goes crazy. So we have to work around those challenges as well. The most power intensive system are the transmitters. And the Wi-Fi, the satellite modem, the Bluetooth. So keeping them as minimally used as possible is the best operational method for us. The second biggest power hog is actually the other cameras. So the less cameras, the better it is. Sorry, but I think I've rushed through most of the things. I'll be more than happy to answer any questions. We don't, actually. The problem is, there are advantages too. I mean, we deployed in November and pick it up in July. So we can always do software updates. In the past, we have done updates, but it's not been software updates, it's been configuration updates. So usually you have a CSV file or an XML file and say instead of doing sleep every two hours, I would say sleep every six hours and it's a configuration change, right? Similarly, if I want to start monitoring some parameters, I can do that too. Occasionally, and one of the reasons I put an IP address as one of my standard parameters is, occasionally when from the research site onto the Buoy site, we do have Wi-Fi connectivity. It lasted for a while, meaning then the blizzard came up and took out the Wi-Fi transmitter. But when we had that connection, we could actually SSH from California into the box and actually do our changes and monitor things. That was very useful because we could even play around with it, set timers, run diagnostic on it, do the NTP server, time updates and so on. Very risky to do, not advisable at all. Because if something goes wrong, you have to ask your bear guard who's more interested in handling your gun to go to the site to say, okay, I'm gonna reboot something rather than actually doing that. So yeah, short answer is no, we don't do updates on the field, but when we bring it back, we release the next version and so on. So the question is how do you test it? And we have a big ice cream freezer. It goes up to minus 29, not minus 40, but we believe that anything that we cannot find out at minus 29, we won't find out at minus 40. So usually things like, we find leaks inside that allows cold air. And then when the system warms up because the CPU is running, that condensation shots the circuitry and all. And so we gotta do a lot of these testing. Some of these equipment don't work the way their spec sheet says. So in fact, not some, almost all of them. Sometimes to the betterment. I mean, we've tested modems that are rated for minus 40, but they work at minus 55, not that we needed to test them at minus 55. Minus 40, by the way, is the industrial temperature range for most products. And that's what we went with. In one of my other projects, we tried to, if you go to try to do anything lower than minus 40, there are a lot of export control restrictions on them because they become dual use technology. So minus 40, so freezer is one of the tests. And we don't do anything like liquid nitrogen and things like that is just too much work for a software engineer to handle. But it is testing interesting. And most of the development, once it's done, I would say 80 to 85% of the time is actually testing, testing, making sure why something works, something does not work. And like the camera focus issue was another problem. The reason I said that, the first season everything went fine. The second season when we tried it, there were small icicles sticking on the box and the camera's always focusing on that instead of this imagery outside. So having to have the video option compiled and capable on the camera was actually important for us. So a lot of testing has to be done. When I say testing, not just physical testing, but actually running the full software suite test, start cycle, stop cycle, do it many times to actually get the data out. Both actually. On site is because every site is unique. Some of the sites, some of the tests we've done in Chicago and Minnesota actually face more brutal conditions than there. The temperature is much horrible. But there is also a big engineering community that actually works on the technology part of it, not the science part of it. If you could look up PolarTechnologyConference.org, that's like a conference that happens every year where all the engineers get together and say this works and what doesn't work and what's the cost of it and they share their knowledge kind of thing. So they do share a lot. In fact, the camera aspect was something that I found out from them. They were the ones who said, oh, don't use C910, use C920, that works at minus 40. And of course, we test 10 cameras and find out that nine of them work, one doesn't work. It'll work in your desktop environment, it just doesn't work. Meaning the images would all be pink at minus, anytime it goes to lower temperatures. Actually, that's a, yeah. Yes, that's a very good question and I'll tell you why I was happy that you asked that is because if you just keep the memory alive and keep the process of alive, then your boot up time can be fast, right? Which means you save a lot of time. That's good like in an automobile kind of an environment where you have to shut down and start fast. But keeping that memory alive also consumes power and even though I will like that feature, that computer board does not support it. In fact, the power off sequence is actually by another microcontroller that you can talk through the Linux driver and say, when you say sleep 40 seconds, it'll just cut power immediately, right? So which means disk corruption, disk flush, you better be done with all that stuff. So in fact, what I did was we actually put all the sequence of disk setup, process scale, everything and the last one in the slash initd slash k11 reboot file was just to cut the power off a day. And that worked very well rather than trying to do our own shutdown sequence because the shutdown sequence is handled by Linux and the last statement is cut power to. Well, nothing I would love to, mainly time is the constraint. There is, I do share my findings in fact with the board guys. I mean, the board guys were interested to find out how I did certain pieces of work and I published that data. The Polo Technology Conference is another one that I talk about and publish work as well. Not a lot of Linux guys there but there are a few of them who do some hardcore work as well. They've done some even more serious Antarctic buoys and robots that operate outside volcanoes, inside Antarctica, that kind of thing. So they do some real good work. And so some of their work they use on their real jobs too. So yeah, there is contact me if you're interested. I'll be more than happy to just do part list or even software. Most of it is hack. Just get it working quickly enough so that we can roll it out. Sometimes it's a well thought out processing. Yes, we got to do this. Oh, that's a, okay, let me give you, I've been working with this particular group since 2009. The first time we did it, we had four massive buoys. Each one can handle 60 kilos and the whole thing had to be assembled on ice with metal brackets and all.   So you want to make sure that you retrieve the data. The very least, you want to retrieve the equipment as such. So we went through multiple iterations and we went through multiple boards like the board that I used was a 72, 40 or some version number that worked well. There were other boards which did an equally good performance. So every time we changed boards, we had to redo, recompile, make sure the ports were assigned properly and all. So to get something like this working tested properly took me about three full-time months. Eight hours a day, three months kind of a thing, right? So of course, this was my volunteer time so I had to do it nights and weekends with a lot of help and all. So on the average, that's kind of the time. But once you get it afterwards, modifying it becomes easy, then you know which library has what and you don't have to find a particular library. So one of the electrical engineers actually built a small probe which you can plug into the board and find out what your power level is. And it has an A2D converter on board so we just read the A2D converter periodically and found out when we start the battery, this is what happens and we plot graphs and actually visually take a look at it. We actually, that was good when we were doing the freezer test. We could, on my desktop, 25 degrees centigrade, everything would be fine, works fine, you can heat it up, cool. Once you start putting it in the freezer, you can start to see the battery go down and then it starts to pick up and so on. So we actually had to build a special probe for it. The newer charge controllers handle it much better because they're meant to do industrial stuff but some of them are heavier and some of them are also more expensive. So one of the charge controllers was a $300 piece of equipment, so more expensive than the computer itself. Speaking of the batteries, batteries, you use light bulbs? Yes. And these are normally not very working very well in their lower temperatures. How did you deal with that? Okay, so the question is that they're, okay, I know we're running out of time but I'll try to answer that. I won't give you a short answer. So when we initially started, one of the reasons why we used that big 60 kilogram buoys was we had a lot of lead acid batteries. The reason for these lead acid batteries are they're cheap and you get the sealed ones, the ones you use in wheelchair, which means you can transport them on a plane. And of course there are some restrictions, you can handle them, fill out the paperwork, you can do that. And so if your battery dies in the middle of the Arctic, it's easier for you to get a snowmobile battery as a replacement and plug it in. So we started with that but then we realized that these batteries, even though they're cheap, they're very heavy, heavy means you have a lot of other logistical problems. So we needed a battery that actually works at minus 40 properly. And the radios, the transmitters, they actually pull quite a bit of power when they do this burst. When I say quite a bit of power, I'm not talking about megawatts, I mean, at five volts it would jump periodically to two amps for like maybe a second or so, right? And then it would drop back. So your other batteries, alkaline batteries and all wouldn't do that. But they wouldn't cut off power either. So what happens is you would see that the motor wouldn't try to transmit and transmission failed is what you would get. Then you would be looking so much into your heart, your code and your software and you would blame your modem for not doing it and then you realize it's actually the battery that's not good enough. And after a while, actually in one of these conferences, the lithium batteries are very good in doing this. They can provide a whole bunch of power. But the problem with these lithium batteries is you cannot charge them at a low temperature. Or when you charge them, you need a very specific charge controller. A lot of the lithium fires that you see are because you try to charge them at the wrong thing and then it leads to a tunnel runaway. So for a lot of times we use just generally AA lithium batteries that work great because you can buy these lithium batteries and put it on. But at this location you can't buy them and since we are flying them, they wouldn't fly them, they wouldn't ship them over. So we started to resort to using battery banks that we use for charging our cell phones because now you could ask one of the bear guards to say unplug this battery, go back to your research station, plug it into the wall, plug, charge it back and come back again and just connect this USB connector and it works. But there are different challenges with these battery technologies and how you connect them to your computer because you wanna have something that's reliable, compact. In fact, we can shrink this a lot, a lot smaller. I mean the box is about DA size. But you can shrink this to like your cell phone size. But the biggest challenge there is your battery pack. The battery packs are big and they're the ones that consume a lot of power. So right now we haven't integrated any power management system into these battery packs because these are detached, low cost systems that you just plug in and use. Any other questions? Thank you, thank you very much. And I'll be here if you want another question.


It is Sunday afternoon December 15th 108 p.m. Don't get excited. I'm looking at the iPad. I spent the morning chatting with the art groups for 2020 the 2020 my creative year and the 2020 design team for my product line and I think we got things all set and ready to go. I need to film some video next week but other than that I think we're good. The husband is outside cleaning out one of our gutters where which is where all of the pine needles and stuff get swept down to. So I think it's going to be a monthly thing that we need to clean that gutter out. The kids are out house hunting and Lily is here wandering around wondering why I won't give her any of my lunch but you know that's the thing. Anyway a quiet Sunday but that's okay. I'm good with it. All right I'll be back.  I've been meaning to do that for a few days. I fed Bambi, took some broken latticework down that we had attached to one of the fences. I've been meaning to do that since we moved in September of last year. Anyway it's down and in the trash. People are taking over my art room space for wrapping Christmas presents so I got to do something with myself so anyway I'll be back. Good morning. It is Monday morning December 16th I think and it is 10 o'clock, 6 a.m. according to my car clock. I don't know if that's right or not but that's what it says. I am in the McCann's parking lot so I was dropping off an Etsy order and picking up a flat rate envelope and I need, I thought I was done with the Christmas shopping but we need a couple of gift baskets for the parents, my parents, my husband's mom. So I think I'm going to head over to the little shopping center where Michael's is. There's a new season's market. They may have a few things and there's also a home goods over there. If I don't find anything there then I think we're going to pick one evening this week and head over to Costco which is a warehouse discount store for those of you who don't live in the U.S. or don't know what Costco is. So anyway yeah exciting right? I know. I already did my social media posts for today, some scheduled ones for later in the week and I wrote some other ones that I need to manually post over the next few days since I am scheduling out all my posts. I'm not doing them all at once. I want to work on some paper clips today and I need to this week work on filming some stuff for January and I need to edit the vlog. So that's all stuff that's on my plate this week and then I want to get done before Friday so we will see how far I get with that. All right I'll be back. I took apart the plastic insert from some Christmas lights because I wanted this which I took my husband's power sander to to sand down the plastic ridge here in the center. I think it's going to make an interesting mark making tool and something I can use on the jelly plate. I also got this one out of that same thing and there were two of each of those so on the other one of them. I cut it apart and those I think are going to just be interesting little bits and pieces to use like on paper clips and stuff. So then as I was cleaning up I realized I also have these which I'll add to my basket of found and homemade mark making tools. Pretty cool. I also was getting my journal ready for chronic pain for next year which is what this is. I'll be posting over there in that group about that so if you want to know what that's about and you want to know what I did in that journal and why we're doing it you join the Facebook group and I'll put the link in the description below. Holy cow our journaling through chronic pain. I should know the name of this holy cow our play through chronic pain. It's my friend Cindy Etters group and she and Peg Robinson and I and Karla McCants are all doing a series of projects next year of using chronic pain as a sort of therapy to get through our chronic pain using art journaling as a sort of therapy to get through chronic pain situations physical mental that sort of thing so anyway no substitute for professional medical help FYI but this is just something in addition that we do anyway if you're interested in following along or joining the group I'll put a link in the description below. I think I'm going to go check the mail now take a break I'll be back. Hey everybody it's Tuesday December 17th. I don't know what time it is I know it's after one o'clock that's all I know for sure. I've got four videos filmed edited and uploaded to YouTube this morning. I got some corresponding posts in Facebook taking care of this morning and scheduled I'm working on scheduling more posts so I don't miss things forget to share video you know that sort of thing so anyway I've got like four more videos to do for January commitment videos but the most important ones that are due like new years are done now so I can take a little bit of breather for the other ones so anyway it is cold out here I have a sweater on I'm still cold when I'm cold that's a bad thing it means it's really cold all right I'm going to head back inside and see what else I can do and get done well we have a quiet day in the house before the holidays hit right all right I'll be back. Doubt to get away from the children a little bit no honestly we needed to go get some Christmas shopping done and while we're out we're taking the opportunity to walk around some shops and get some steps in right now I'm in Cabela's and I don't hunt or fish or camp let's be honest but I like Cabela's I've talked about this before I love their organizational bags and things they have for the different sports they're great for art supplies they have the best candied cashews on the planet and it's the place where I buy my deer corn so anyway right now I'm standing at the candle aisle which I shouldn't be in because I really want to cough what was I thinking just wearing short sleeves out here to check the mail it's only 41 degrees out here even for me it's cold holy cow I spent the morning doing some social media stuff and working on a journal page chatting with friends working on laundry because the husband hasn't had an accident going up the stairs with a full cup of coffee now I have a load of towels to wash so yeah that's a thing all right I'm going to check the mail of you for a while here on YouTube then you know every year at Christmas time we send out a lot of Christmas cards over 100 and in years past I get teased by the family because I always end up sending them to dead people people who have passed in the last year and I've forgotten and I forgot to take them off the list in my defense I'm thinking about them anyway so always also the ones that have moved that you forgot about or didn't know about this year no dead people but I have at least one I need to get a new address for I need to make sure I do that today so anyway I'll be back everybody it is Thursday morning I think it's December 18th it's 9 46 a.m according to the car clock anyway I am headed out this morning after way too much coffee to go try to get the first round of holiday food shopping done and check on the PO box before I spend the rest of the afternoon puttering up in the art room hopefully making some paper clips anyway how's your day are you ready for Christmas present wise we're ready I think food wise not so much so anyway I better get to it I'll be back good morning it is Friday morning December 20th it is a rainy Portland winter morning it's Oregon I don't know what to tell you I think I said yesterday it was the 18th it wasn't it was the 19th I mean you know I look it up I still screwed up I don't know what to tell you anyway I would normally not be headed out in the rain this morning just because I don't like driving in the rain fun fact but when I was at the post office box the other day I had a brief two second thought no I should grab some flat rate boxes on my way out because I think I'm out at home for the Etsy store that's right it's Christmas I'm not gonna you know my Etsy store doesn't usually do tons of business at Christmas well I got orders last night I don't have any party mailers they all asked for a party mailing so yeah we're headed out to go get some boxes and bonus my husband said oh can you mail one more Christmas card so I guess it's a good thing I'm going out so Saturday morning everybody it's Saturday morning December 21st 9 18 a.m don't get excited I've looked already um if you're watching this clip you saw a clip I put I took out the audio and put some Christmas music to it because we had the radio playing in the background of my parents at my kitchen counter they came over last night for a pre-holiday dinner before the kids left to go to California to spend time with Polyasus family and I just couldn't help but film the two of them because my dad is um almost completely deaf he wears hearing aids and even with them in he's very hard of hearing and he was trying to talk on the phone to somebody and that's how he needs to hold the phone to hear and meanwhile my mom is just yeah so anyway it was pretty funny anyway we are off now we just dropped off some Etsy orders and we're gonna put gas in the car and we're headed out to a Christmas party thing with um Sarah our realtor who sold us our house last year and she actually called to make sure that we were coming I guess we kind of looked at each other and went I guess we better go no choice no choice yeah so we're gonna go to do that and I don't know what else we're gonna do nothing um we're not doing any chores we're just gonna enjoy the afternoon we'll see where it leads we'll be back guys it's something like that I just got done doing my daily drawings and we went to the Christmas party and we had a lot of fun and it was great to see people and chat and meet new people not something we either of us do well we're both introverts fun fact so but we did it anyway and it was a lot of fun um we didn't do much else to be honest we dropped off some Etsy orders put gas in the car and then just came home and puttered the rest of the afternoon it was kind of quiet to have the house to ourselves for a bit and just chill and relax did some dishes more cleaning up from the family dinner last night and that's it tomorrow we're gonna go do some running around do some shopping you know it's been a fun pre-christmas week next week's gonna be a little crazier but it's all right it's the holidays it's to be expected it's not gonna calm down until probably after new years it is what it is I'll bring you with me when I can anyway I hope you've all had a great week hope you're all ready for the holidays if you celebrate them and no matter which ones you do celebrate I hope you have a great time enjoying your friends and family uh anyway if you have any questions comments or concerns please leave them down below if you want to see what I'm up to on a regular basis and or follow what I do my other content other videos I don't post them all here on YouTube anymore sometimes they're going to be directly to Facebook sometimes they're over in my Patreon there's links for all of that stuff down below along with my Etsy shop my happy mail address all that stuff my email address I think is down there yeah anyway you have a lot of ways to contact me so do it don't forget to like share and subscribe and above all go out and have a great day do something nice for yourself because you deserve it we'll see you later bye


Welcome to NewsClick, today we have with us for an interview Shehla Rashid Shoura, she's been a student activist and she's also with the JKPM as general secretary, welcome Shehla. Shehla tell us about normalcy in Kashmir, we have videos of Mr. Ajit Doval, the NSA moving around, talking to people, interacting a lot. Today also he's released a video, so what does this mean normalcy, is there normalcy? My request to Mr. Ajit Doval because he's in my home and I can't go back home right now, is to please go to my home, find out if my family is okay because I don't know. My request to Mr. Ajit Doval is to go to my cousin's place, she's expecting a baby, see if she can reach a hospital. Today I have to send 100 letters to my mother, this is something we didn't even do 20 years back, even 20 years back we had the telephone and everything. This is the normalcy that we are talking about, we see curfew in Kargil, we see curfew in all districts of Kashmir and then we are talking about normalcy. So this is like an absolute one-sided propaganda where people are being gagged completely, all of Kashmir is under arrest right now, every house is under lockdown and then people are allowed to selectively celebrate. Some people who are BJP workers, they are meeting Mr. Ajit Doval, some people who are BJP workers in Jammu, they are celebrating. So that's being shown as selective celebration. So it's a one-sided propaganda that's being pushed and the government officials are simply lying when they say that there are no protests, there have been protests, there have been casualties. Three reports, one filed by the Huffington Post, one by the BBC and one by the wire, they clearly show that there are casualties, people are suffering, people are being injured and tear gas, shells and pepper gas are being sprayed in residential areas, which is also like which has been the norm for a while in Kashmir. It is just this time there is an attempt to deny that anything is happening as if Kashmiris are like celebrating this decision. Okay, so one of the things again related to normalcy is that we are constantly told that a lot of the provisions, the safeguards of article 370 have been, you know, whittled down over the years, a lot of parties have also complained about this. But now it's being said that since it had already become so weak and almost meaningless, so then why are people upset? See, this is something to do with the loss of identity first of all, the way that there is an express intention on behalf of the government to settle people there, to change the demography. That is like the final goal of the government, how much time that takes that only time will tell, how much time before, you know, the cultural integrity of people is violated. The bigger anxiety right now is that people will be subjected to all kinds of violence if they try to raise their voice and you can't expect people not to raise their voice because this is an issue that concerns them. In the video that was filed by BBC, we saw people protesting peacefully, they are not holding any, they are not even pelting stones, but they were fired upon. So the government, you know, there is this talk in government circles, there is a talk in WhatsApp groups that the government is ready for 8 to 10,000 casualties, you know, you might have heard that somewhere. So that just shows that the government is going to use a lot of violent tactics to put down any form of dissent. 800 leaders we are being told are under arrest and this doesn't include just political leaders, mainstream or separatist. It includes civil society members, businessmen, lawyers, they have been picked up. This is really violent what's going on in Kashmir. You know, one interesting development again is from Jammu, even within the ruling party, the BJP, we've had some people say that, you know, give us a special dispensation of some kind even now. So can you explain why this might be happening? Look, the Article 370 that was mentioned earlier, the Kashmiri Muslims had never asked for it, because the Kashmiri Muslims were talking about 30-47. At that time, the Kashmiri Muslims had no education, they had no means to take property, because it was a very hand-to-mouth type of situation. The Article 370 demand came from the Kashmiri Pandits, who were in the educated class, who were eligible for job swabs. And our brother, Jammu, came from that side of the demand. The original beneficiaries of the Article 370 were Kashmiri Pandits and Dogra Baradri. Now, if the Article 370 will be removed or even 35 will be removed, the biggest loss of that will be the effect on Jammu. If I don't say the effect, then people of Jammu will have to decide whether it is beneficial or not. But the biggest effect of that will be on Jammu. Because who wants to come to Kashmir? Kashmir, we run away, we go out for education. The people who want to go, who are talking about investment or buying land, will all be in Jammu. So, as you can see in Assam, there are a lot of tensions regarding immigrants. There are such tensions that will increase in Jammu as well. So, actually the BJP in Jammu is feeling the heat now. Now that Jammu people are saying, what did you do? It is going to affect our jobs, it is going to affect our land. There are immigrants who will come. So, now BJP is feeling the heat in Jammu and that is why they are saying, well, we will enact laws after our union territory assembly, which will be the assembly of Delhi type union territory. In that, we will bring laws, we will restrict land rights, we will keep jobs for the locals. So, some safeguards. So, basically, BJP itself is not convinced that this is the best decision for Jammu and Kashmir. But of course, no one can say anything against Modi. Basically, because those protections were already there, it is not sense to bring them back. It can mean that they are actually planning to bring them back. Because in the long term, in the short term, now everyone is celebrating, everyone is cheering on. Yes, hit the Kashmiri people, do this. Now we will marry their daughters. You know this kind of violent cheering on. Right now everyone is cheering on the government in a very violent way. But in a while, they are going to realize, what will be the impact on Jammu and then BJP will have to answer for that. So, maybe they actually have this as a plan B in mind, that when we have criticism in Jammu, that time we will bring laws like this. But that is actually what you see with every decision that the Modi government takes. After demonetization, nothing has changed. After 370, they are trying to bring back provisions like 370-1. They have already declared their intention. In the air strike, you also saw that nothing changed. Every time there is a surgical strike and whatever, after that nothing changes. So, you know this kind of thoughtless policy, which then has to be reversed, which doesn't have any impact. I was asking, why are you angry with this? And secondly, you mentioned identity. So, in the question of identity, we saw the videos yesterday. Yes, it is true that it is wrong. Maybe after some time we will get to know, because there are denials as well. The video is also being questioned. But in those videos, the kind of Islamic slogans are being raised, what impact can it have? In Kashmir, in Jammu and all these, the rest of the country symbolizes something. Look, you cannot defeat Kashmir with a gun. It is true of state actors, it is true of non-state actors. You cannot win it by the gun. If at all you have to win over territory, you have to win over the people. And that, we don't see that happening. In fact, we see that there is every attempt to push Kashmiris away. There is every attempt to create divisions in the state. Look at the bifurcation of the state. What is the basis? I mean, Ladakh in Kashmir, they are connected by the Zujila Pass. You can drive to Ladakh in a day. What is this? I mean, this is a kind of... People are separating people on the basis of identity. So actually, who are the Al-Gaawadi? They are Amit Shah, actually Al-Gaawadi. The real separatists are these people who have bifurcated our state on lines of identity. Religion. Religion, identity. And then we are being told that, okay, some people are celebrating it. Now it's fine. I am not saying that in Kashmir, there are 100% people with us. Although, there is no 100% opinion right now. But believe me, if someone wants to celebrate a Kashmiri, if I want to celebrate it, you also allow me to do that.  You allow the communication. Maybe we made such a good decision. Modi Ji is saying that it is a very good decision. Development will come. Okay, let us also celebrate it. So this one-sided discourse is that we will allow some Ramadav, who is a senior functionary, to share a fake video of a girl who is not a Kashmiri, Muslim definitely is not there, but is giving the impression of being Muslim. If he is sharing such fake videos, then it means propaganda is going on.  This is a question of development. Do you think that Kashmir needs such a development, which can meet the Union Territory? Many scholars have pointed out that the human development indicators in Kashmir, i.e. education, health, are much better than the states. Now you see us. We are not like that. We are below the poverty line. We are studying. We are studying outside universities. Our health and nutritional indicators are good. So this is not the impression that is being given, as someone was telling me yesterday that he was talking to someone, an auto driver in Hyderabad. He said that he is very poor in Kashmir. Everyone is terrorists there. That is why Mr. Modi is taking such steps. People are also given a fake impression of what is happening in Kashmir. People are also given a different impression of the larger Indian population that Kashmir is very backward. People are very poor. If you see there, terrorism, that is true, what is being said, but the insurgents who are taking guns, there is no m-tech, no ph.d. There is no such thing that people are uneducated, poor, so they are taking guns. People are taking guns because the government is very cruel. They are pushed into it. This narrative is being run that there is a backward and poverty, which is not true. If there is a chief minister in Kashmir, Omar Abdullah, the food that is made in his house is also made in my house. There is no big difference. Even if there is a poor family, food is made in his house. Because we have land reforms here, so there is a general equality there. So there is no development issue, the way it is being said, there is no development issue. The government takes 15-20 years to make a flyover. It took my entire life to make a flyover. The roads are not being made. You go from the side to the side. You will see that there is no drainage there. These are all the issues. When the Hindustani government comes there to rule, they say that you leave the Al-Gawad, leave the separatism. We will develop. There is an agreement to make roads and provide drinking water. It has not happened in the whole area yet. So there is a development issue. We are not stopping people from developing. They do not have any priority. Their priority is to push Kashmiris to the corner. If there is an election, Kashmir will create tension. Or Kashmiris will be targeted. If there is an assembly or Kashmir, Kashmir is used as a weapon before the election. What is the use of this weapon? You saw the post-Pulwama attack. You saw the polarization. We do not see any attack in Madhya Pradesh or Chhattisgarh. After that, all the Chhattisgarh people are seen in Madhya Pradesh. But this happens only with Kashmiris because it is an identity of Muslims. It is easy to incite people in the name of religion. It is shown that Muslims are Adiwadi, Algawadi. It is shown in this way. Similarly, you see that Article 370 has many provisions in Nagaland, Himachal Pradesh, many provisions in Goa. In Goa. In many places. There was a sure name because there is a Muslim majority population in Kashmir. So it is easy to incite people to see how special treatment is getting for Muslims. Another mainstream party for them, what do you think is going on? Will it exist? It is very difficult because we participate in assembly elections. We should have our own representation. We will fight for our rights. But when you reduced the assembly to a municipality, that is a question. But there is a bigger existential crisis than the elections. We have told 800 leaders to detain them. We did not know if they were verified or not. But there was a report saying that 800 leaders were arrested. So this is the same policy as Sheikh Mohammed Abdullah was the biggest leader of Kashmir. And the way he was turned upside down, there is no one to negotiate on the behalf of the people. Similarly, in 1987, when the Muslim front was closed and the people took the gun. The policy was to end the Kashmiri leadership. So any population negotiates on the behalf of the people. They say, come out of the house and protest. Our demand is complete. Now you sit at home. You don't need to protest. A leader negotiates on behalf of people. But the attempt always has been to kill Kashmiri leadership. And therefore no one has in control on the situation. Now it's very difficult for someone like me to tell people to protest or not to protest because we have not been consulted. No mainstream leader has been consulted. Former chief ministers have not been consulted. There are sitting members of parliament. In fact, the legislative assembly has been resolved. But the legislative council members, MLCs, they are still there. They have not been consulted. The governor has not been consulted. It is very difficult in those circumstances to lead people to anything because the center is not playing by the rules. So the issue is one of history. It is an issue of politics. It is partially an issue of failed development. And also the legal angle I would say. If we go by constitutional law, if we go by India's own constitution then this presidential order which abrogates Article 370 which sort of paves the way for the abrogation of Article 370 that is illegal. It is unconstitutional. And we are very confident of getting relief from the supreme court. We are moving the supreme court. And we are asking people you know we are asking Indian civil society to actually raise more awareness, to actually reach out to more people and explain to them what this issue is because yes, we are a very small population, sure, but we matter our lives matter. That is what we want to say. Thank you. Thank you. Thank you for watching News Click.


Hello everybody, my name is Michal Cihars and I'm the author of a tool called WebLite, which is there to help you with the localization. I will first start with a simple question. How many of you do know WebLite and how much I should introduce it or I can go to the details. OK, so how many of you know WebLite? OK, good, almost everybody. So I will do just short interaction for those who don't know. It's a web-based localization tool. It was built to have great version control integration so that you can connect it directly to your version control repository, like Git or Mercury or even subversion if somebody still uses that. And it's focused on providing translator good context about what they are doing so that they can do proper translations. And another main focus is to be able to automate most of the workflow so that the developers don't have to care about how to get the localization into the repository. Or the translators don't have to care about that as well so that the process is fully automated. When you want to start using WebLite, you have to get the initial translation assuming you have already something into WebLite. The easiest approach is to start from the version control repository so that you just point WebLite at it and it will look into the source tree and it will try to find localizable files like getexpo files, Android, resource strings or whatever you are using. And we are trying to make best guess what you actually want to do with the files because there are some configuration options and some workflow differences so it still might need some manual tweaking but in most cases it should do the right thing automatically. We support something like 30 formats, it's still not everything that is being used in the world so we are still missing some proper formats like XLIF2 which is not really the same thing as XLIF1. There is Fluent which is used by Mozilla which is also not supported and there are about 20 of JSON variants which are not supported but we support only 5 of them right now. It's common problem that every framework tends to invent its own localization format and it's nice that you have something on your own but it usually ends up that you repeat the same mistakes as everybody else did before so you don't do them proper localization, you cannot add some context into the format then you start adjusting the format to handle it in some not so clean ways and that's where everybody should stop and start using something standard but it's not that usually especially in the web front end scenarios where there are a lot of new formats being used and they all repeat the same mistakes. So when you will start with importing project you will see something like this. This is a demonstration project so it's not really a real call but we can see there are some get-expo files, some Android strings so you just choose whatever you want to use and you end up with it being imported into a Blight. One of the first things which happens during the import and this is why it sometimes takes too long is that we have quite a lot of quality checks that try to detect common mistakes in the translations. They detect things like firmware strings and compile language is frequently used to build up messages or XML markup like placeholders in Android or Excel files and all these things are configurable by flags. So what happens when you have something wrong is you will get some thing to check. This time it's Python format. Maybe you can see that it's not present in the check translation but it was present in the source and the thing how the Blight looks into that is that it parsed the PO file and this particular thing I can think it's called typeflex in PO file. It's a Python format and then it can recognize that this should be actually the format string for Python because otherwise it might be also a format string for the language and its simple level is quite same but it's more complex for masking it can have different syntax so then it can do the proper detection for various extensions used in Python, C, JavaScript or whatever framework you are using. These flags are used to customize the checks and besides the ones which are already present in the translation files for formats that support it you can define them also on the Weblight site so you can do things like defining length of the strings how regular expression to do whatever checks you might want to do or defining other markup which can be like for example BB code or whatever it can be In this case we have added a flag in Weblight that defines maximum length of the string it defines and again it fires the checks here so you can extend it basically on a string level or define how a Weblight will behave on a string level The other thing which is important for translators is to know what actually are they translating in many cases it's not obvious what actual string is being used is it used as a button or is it labeled on some list and in many languages the translation would be different then so one of the things where this can be specified is in the translation file already get text is really good in that it has several ways to define additional context the JSON files are typically very bad in that because JSON doesn't support commands so you cannot edit that if the format doesn't have defined it so it depends on format how you use but you can always define additional context inside Weblight so then it's shown just next to the source string so that it's clear to translator then when this actual string is used and what the person actually stands for that really helps to make the translation proper later on this side but providing text is nice but it sometimes can take long to write all the strings but it's really helpful to provide screenshots for example for mobile applications it's really helpful to see what all is on the screen and how all the strings fit together so that's when Weblight can upload the screenshots it's shown just in the source information again and you can link all the strings to the screenshot you can upload any number of the screenshots and assign them to the strings this can be also automatic using OCR you just have to confirm the matches but mostly it works fine and then you have some screenshot management interface where you can put them and assign them to the strings I have shown already limiting the length of the text but that was counted in the characters and that's what would help you on a terminal but not in a proper UI because in UI you are using typical variable width fonts and the things get rendered differently and also depends whether you are using some Latin fonts where fonts letters are relatively narrow or you are using Chinese where letters are basically square shaped so it isn't that useful to have limiting in length of characters but actually it's usual to have limits in pixels so that the rendered text can be fit into the screen so one of the recent additions into Weblight was that we have fonts management so we can upload the fonts group them in some virtual groups the reason for this is that many applications use different fonts in different languages because you have different fonts for Arabic, for Chinese, for Latin letters and you need to switch them properly so there is additional layer of what we call font groups so you define basic font and you can then overwrite it per language and it then again can be configured through the flag so we are using font family called source that was defined on the previous screen we are defining the size and we say that it should fit into 35 pixels which it doesn't and the check shows here the rendered text and the border where it's supposed to fit in so we see in this case that we should use some shorter name for the font and not the full name to fit into the desired space and other things which is helpful in these situations and was introduced in last release or will be introduced in next release but it's already part in our sources is thing we call shaping if anybody has better name we can still change that it's way to group different lines of the same text the example here is day of months or day of week so you can use just one letter in case you are really tight in space then you have some short name and then you have the full name which you use in big screens or if you have a lot of space and shaping is a way to group these strings so that they can see the grouping is done by regular expressions so it's quite flexible but it's not that easy to configure but it turns out that this is really the only way to do it because there is no standard at all even within the same framework it depends on how the application author writes it and you use these strings so it really has to be as much flexible as possible and what happens then that you will see all these here in the shaping and it's also indicated in the things to check because it's some kind of important thing which you might want to look at but the workflow is not the same for all the projects that's why we introduce concept of addons these allow you to customize how the workflow works it brings additional automation it can help you integrate with third-party services and they also configure how the file formats are handled especially how the translation files are generated because in some cases you might want to infer some additional rules like you don't want to strings to be broken in a certain way but you want to have them unlimited with because your parser for the file is stupid and you cannot deal with that or different kinds of things this is set of addons you can use on JSON file format in this case the list of addons depends on the format and content of the repository because you have integration with get-tags like updating the linguas files and similar things it depends on what actually is in your repository store and depending on that you can install and configure the workflow to fit your needs one of the addons which is quite useful for big projects is component discovery in that case you don't have to manually configure a lot of components but you can define the mask again using the regular expressions it's not the most user friendly thing but it's quite flexible way so you just define that you have some structure with language and component name define parameters for the components and you will end up with component in the blade for every chapter of a book like in this case it's localization for the Debian Handbook and all these components can be created automatically with just single discoverers so that you don't have to manually deal with that but we want to also save the translator some work and we have thing called machinery that's our interface to machine translation and translation memory services in last year we have introduced built-in translation memory which still has some quite some errors to improve but we have something which is small as working but it's also interface to managed party services like Google or Microsoft and Dpal and whatever services you will realize it's quite easy to add integration with another thing so we receive contributions for another interfaces so we have support for some Chinese services which I even don't know how to configure properly and so on and besides doing this manually you have also option to use the machiners and add-on and then it's executed automatically when new strings appear on the repository it's gone through machine translation or translation memory and you can get translation automatically or suggestion for translations because with machine translation you probably want the human to review the strings later not to accept them automatically so that's option as well and this is how it shows up in the interface it shows lists from all the services there are some matches inside the play matches from third party services as well and they are sorted based on some quality which is determined by a to the source so we trust some of the machine services more than the others or by percent of matches in case of translation memory and that's the basic thing I wanted to show out and in the top, in the top description there was one question if somebody wants to get his project hosted on hosted weblight it might be the chance right now if nobody here wants to do that we can pick up one from our queue and do that online so that you can see how it actually works to being added on weblight and how you can start translating that so is there anybody here? no if you have a project that you want to have translated on weblight like Jason or JavaScript ok, then it probably won't work ok, so we want projects that actually want to use weblight not projects you want them to use weblight ok, I will we don't have any support for that there may be API to do that but it's not currently supported unless you have thousands of them it's quite easy to download the tmx files from Transifax and upload them into weblight yeah, that's true ok, so we have random matches from our queue something which is waiting there for one month which is not that nice so we will start with creating a project and the thing is called LK8000 never heard of that before hopefully it's something useful LK8000 so the most important part of important translation is choosing the name and specifying the version control repository let's see if nothing breaks it should now look in... what? ok, nice and it actually did something it did find out that there are some Android translation files so we are choosing that one and it shows now the summary of the project and as it's going to be public the last thing which I need to specify is license for this thing and let's look gpl2 we can keep rest of the settings on the different ones because that's what we want ah, it was fast we are now presenting a kind of localization guide that helps us to configure the web by propeller it tells to include more context like screenshots of flags to indicate something special in the strings there should be some guidelines for the translator so that they can know for example who to ask when the new thing will be released and so on where is some discussion for the project and so on and then there is version control integration so that you can configure the flow automatically but that's not something we need to do right now and why it's only English here let me check the source code ok, they don't have another translation yet so the only thing which is shown here is the source string and the only three strings so that's not probably the best project to choose let's move to another project this is how as we offer to all Libra projects the free hosting service because if you choose to use that with your project you can download start your instance and do it all on your own or you can use our hosting service and if you have open source project you can use it for free and this was a request that came from the creator of his program and he was really he really can't wait to have it done so I asked me how to do it right now and I realized that they completed the email that there is no compatible format yet and they are ready to patch so they asked for something to do before they do their work so I'm sorry for the bad showcase that I chose ok, we should have what? better on this better on this, ok you can the question was how to push changes back from the hosted service basically the R2 option or 3, you can do it manually it exports the repository which is underneath so you can just merge it as remote repository you can give it access to push directly to your upstream repository so it can push to GitHub or whatever you are using so we can do a pull request with the translations it supports it on GitLab and GitHub and Bitbucket I think so on these services we can do a pull request as well so that you can do whatever review you want to do on the language the thing is that the developers most don't know the language so it's just illusion that you are doing some review on that in most cases because when you get Arabic translation you see ok, this looks like Arabic but most people are able to do that not review whether it's done properly but you can do that if you want the translators can do themselves the question is that Arabic speaking people can you can do the review inside the webline but some people want to have a tight control what goes into the repository so they are doing some kind of review there as well so any other questions or should I try another demo yeah, the question was whether it's possible to customize the processing of translations with add-on yes, you can do that basically add-on is piece of Python code you can hook to several locations in the workflow so that you can customize it the thing when new string appears in the webline until the things get committed into the internal repository so you can do pretty much anything sorry? yeah, you can import it the three levels of translation memory you can import it to your personal translation memory so that only you see that you can import it into project translation memory so that everybody who is translating this particular project can use that and there is also global translation memory which is shared among the projects that's on hosted installation it's obtained you have to agree that you will contribute to that and then everybody can use that but you can in turn use translation memory from the others as well who have opted in for that so let's try another demo maybe it will be untis so again some kind of Android application so the setup is pretty much the same as what we did before it's just gpl where in tree this time takes longer so it will be problem of strings there and at least there is one translation as well so we now have English and German strings most of that are translated are some failed checks what has been there one of the things is unchanged translation then it's obviously it's name but we cannot know that so we can do dismissing that for all languages what happens in the background is that this sets a flag on this thing that it should ignore some check so if i reload it oh ok it didn't go again this is another thing which everybody can check that it tells you that the thing is translated as a question but originally it was not it was ending with a full stop and in German it's translated as a question that might not necessarily be a problem but it usually indicates that either the original string is wrongly phrased so that it should be a question as well or somebody should look at the translation whether it shouldn't be the same meaning as the original he is really like that in English it says that this will do something and in German it's asked are you sure that something will happen so it has a really different string and it indicates usually some problem in the source thing this is again similar thing with the strings and yeah this is not good cases so we have imported a project and people can start translating it if there would be some string to translate it's not right we can start new language for most formats it can be done automatically so let's translate this application into Czech you can go one by one but if you are working on the long text you might actually want to see a Zen mode which shows just one string next to each other it doesn't show that much of context but it's good for translating like new projects where you already know the area and you want to just focus on translating the strings but you can just write the translations and you don't have to look at two other things then it's way more effective than using the full interface and it just loads all the strings in the background until you scroll to the end okay that should be pretty much it it will, the question is how will it push the things back it will, yeah okay you can do changes on either side if a blade is properly linked to the git repository so that it gets notified when the repository changes it loads the translation from the git as well and it presents them in the interface in case there is conflict you will get a merge conflict notification and you have to deal with it manually but as long something different is being changed the things just get merged on a git level and you can use them on both sides what you can also do is download the translation file from the weblade you can also download in different format than the project is using do the translation offline and then upload it back and the weblade will merge it automatically even if the upstream has changed meanwhile it will merge the strings properly into the translation so it can work offline on both sides you can work on the repository site as well but you can also download the translation files for offline use and upload it back later if I go back to the check translation I can download it in files it can convert it into a bunch of standard formats which are useful you can also download the original file the nice thing here is that if you download the original file you get just the monolingual file so basically you get just ID and the translation so you don't actually see the surf strings there but all the download options are for bilingual translation file so that you have also the surf string there integrated so it's way better for offline translation than the original format and you can also download all the strings which need to be translated so you don't have to if there is just half of the strings missing you can also download the whole translation file just the one which needs translation and then anything you download here you can then upload back and it will get merged depending on how you can you can configure it depending on how sure you are with the translation so you can upload it and overwrite existing things or just replace the strings which are not translated here so the last time we have first APIs we can get all the information what you cannot do yet is push all the information that it's not possible to write some of the things but you can download everything from the API so you can list that these languages how much are they translated you can download the original files basically the same options as I have shown in the UI it's in the API as well thanks ok, they're back the question is how Webbyte integrates with different branches on Git you can have any number of components each can match to a branch for example if I look at PHP MyAdmin project you can see that they are translating 4.9, 5.0 and development branches so the translations are committed to each of them what happens in Webbyte is that when it sees the same string in all the components it will translate them in all of them you can switch this off but this is what happens by default so that the translator usually work on the one but the translations get automatically propagated to other branches as well what then needs to be handled is merging if you do some maintenance across the branches you need to handle the merging on the Git site then because the original translation files which are being changed are typically different in each branch and you cannot then merge them automatically so you need to use some tags with Git to skip Webbyte changes from the other branch but that's in more detail described in the documentation how to do this if you want all of them to get localized then yes what you can do then there is simplified interface for importing different branch so that you just choose if I think I can show it it looks like network is not working that well but there is interface where you can just choose additional branch to run slide and it will create the component for that automatically so you don't have to go through all the configuration step manually but you just select the branch from the one which is configured it works on component level so whatever you import it's translated this can be used not only for the branches but for example if you are translating Android and iOS application and you have the same strings it can be used to translate them at the same time as well so it's not only used for branches but for translating different flavors of one project for example it's based on the keys as well so so it's not only about the strings it depends on the format if you are using get text then in most cases they just serve string but if you are using key value based formats like with Android or iOS apps then it looks on the keys as well so it compares this as well yeah the message context if you are using that showing the changes per project and per language because currently it's that I can only see the changes in every language and I for example don't speak any Mandarin so I would like to filter that and the other feature have an overview of the translators and reviewers in the project so that when I'm adding a translation I know who is working on that language and can add them in the project ok so there are two questions first of them is when we will super browsing history for languages and projects is that correct yeah it's already there if you go from the project language page you can go to the history and to go as much deep as you want the thing is that you just need to go from that page you go to check translation of weblight it's look like I have problems with internet but never mind it this one should work I will probably show it later the other thing, the other question was about more detailed statistics of contributors in project yeah we don't have that right now you can dig it to some level in history so that's what will I show now if you go to the history and you can go browse all changes or you can also construct your manual but in the URL you can see it shows changes in project and for language so it's already there for getting up the contributors you can use reporting feature but it will just list to all the contributors in a project I think we don't have that from lower levels if you have a specific idea how it should work but you are not able to code it just make an issue on our GitHub because we are so happy the really users are able to tell us what they are looking for some languages have different regions where they are being used but they are exactly the same language for example, Netherlands the Netherlands touch in Belgium touch in Kursau touch in Uba so some people who are starting translations are importing already files they have an analysis for BE and later on to ask them and get split off so people make a translation for Netherlands, translation for Belgium but they actually mean the same translation could your system maybe give a warning for certain combinations of languages in areas that you might want to switch to only using an L whatever relevant for that language because in the end only one translation is desirable the question was just to repeat it the question was about doing translation for some language variants like Dutch and Dutch as spoken in Belgium the question is how to limit it because in some cases it's really intentional that people want to add this and we don't want to for some strict politics on this so the option is there and if you have some contributor who wants to translate into that crazy language I would say okay let him do that it might be useful for somebody in the end okay we are trying to do this for some languages but I think the rule for Dutch is not there so if you think it makes sense then please open up an issue because we have list of language definitions it's in separate repository and it might make sense to add this rule there for us it's in most cases we don't know the languages as well and Webley has definition for something like 500 languages right now whatever the question is about spell checking we were thinking about integrating language tool but we are not yet there so right now we are leaving it up to browser but we might eventually integrate with language tool that's certainly on the list because we want to have that for all users not just for those who might have some extension installed but it's one of the features which might be implemented I think I was in touch with him some time ago because I think the language tool is actually using Webley for localization as well so you can certainly download all the files and do whatever you want with them but I don't think we will add specific support for this because it's quite quite rarious case it's not like it would be costly to implement but I don't think anybody else would use it than you you mean like when the question is in different gender so that you need to ok ok what you can sort of do is use the shaping I've mentioned so you can group the things together but it will still be like you need to have the same amount of them as in the source language but the shaping can help you at least to group them together so that it will be presented as related strings you mean like this kind of variations I would guess that maybe 90% of the strings are identical so there is a wiki that translation is done or like we use these words we avoid these words and so on and that's usually done in different sorts of wikis or documents outside of things like this but if a tool provides a way to do that this is already supported in Getex itself if you make a translation file for example for tradition if you will translate only those different strings so that you can join both files together to create the correct translation ok so which one will it use have English as spoken in the US, in Australia and in the UK is it the one in English what is it is it part of the language the language name for example if you have say p no s underbarm and x and x then it first checks for specific strings if they are empty then it checks for Spanish strings we have feature request to do this kind of thing in Weblight as well but it's not yet implemented and I even don't see it nice approach to that because it relates to duplication of those things in both translations and then it's quite unsure to change the strings in the leaf translation whether they should be propagated to the parent one or not so you would have to ask the translator is this change just for your variant or should it be done on the parent level as well I think we are running out of time so thank you everybody for your attention if you want to discuss something more you can join us for a beer tonight if you want to do it in a more civilized way you can join us in a booth yesterday and you can find more information on our website thanks for your attention