Foojay Podcast #2: Embedded Java -- Robots and FX
Foojay community members and beyond discuss embedded Java:
- James Gosling, creator of Java and embedded enthusiast. Distinguished engineer of AWS GreenGrass and former Liquid Robotics, an autonomous ocean vehicle powered by water.
- Frank Delporte, engineer with Toadi, an autonomous lawn-mowing robot (no wires) and Pi4J contributor of Raspberry-pi based robots.
- Johan Vos, founder of Gluon, helping make fully cross-platform applications where a single JavaFX codebase runs natively on embedded, iOS, Android, PCs, and browsers.
- Erik Costlow, developer relations for Contrast Security, locating security flaws in backend systems. Developer of home fuel/gas sensors.
Podcast Apps
You can listen and subscribe to the Foojay Podcast on:
- Spotify
- Apple Podcasts
- And most others…
Topics
- Java in Education: Combining Java with Rasperry Pi and the Pi4J Library
- Discussion topics including:
- How Java was used in the ocean and how it makes complex problems possible.
- The speed of garbage collectors versus the speed of shark attacks (GC wins).
- Quick prototypes with Raspberry Pi, scaling through AWS GreenGrass.
Transcript
Automatically generated from the audio, so it can contain errors in names and technical terms. Suggest a correction.
[0:00] Hello and welcome to the second edition of the Foojay podcast today we’re going to talk about embedded with Java podcast all your news about OpenJDK today we’re going to talk about embedded systems because Java didn’t originally start on servers and web applications it was originally designed to run on embedded devices and help program a remote control that would control TVs and other devices and after a large detour in which Java became one of the most widely used languages for just about everything we’re back to talking about embedded systems so today we have a couple key members of the Foojay and OpenJDK Community with us I’m one of the founders of gloom and we’ve grown we try to put Java on the client back in the picture Javon the client typically means desktop mobile and embedded and we are the maintainers of JavaFX which is a great UI framework in Java and the de facto standard for creating a Java UI applications and we make sure that runs a first cross on mobile embedded desktop systems and that it connects with cloud and Enterprise systems hello I’m Frank toport live in Belgium and I’m a Java
[1:26] Programmer for over 10 years and I knew Java as the backend server thing that everyone is talking about but I wanted to do a personal project where I used Java Java vix on a Raspberry Pi to do some control of my home systems and that’s when I started to experiment with all these things on embedded and I discovered that it’s really powerful and you can do a lot of it and I wrote down everything I was experimenting with and it became a book getting started with Java on the Raspberry Pi and that’s also how I got into contact with Foojay and started doing some blogging there and writing some posts and seven months ago I changed company and I work at todi where we have this autonomous robot so move a robot to work in your garden and the idea is there that we have the first affordable worker robots that can do simultaneous different jobs so we’re working on that and there we also use a lot of Java on back end on the control devices of 3D printers all there is a Java JavaFX hi and I’m I’m James Gosling I’ve been writing embedded device Java code since 1991.
[2:42] Which is somewhat frightening you know I worked at Sun for a long time working on Java and other things that I was kind of Mr everything except Enterprise so I was involved in smart cards and cell phones and the real-time embedded Java standard spent some some time working on autonomous Maritime robots at a company called liquid Robotics and these days I worked for Amazon web services and I’ve been deeply involved in the green grass application framework my name is Eric costlow I do developer relations with contrast security focus on defending applications typically running on the Enterprise but I really enjoy the embedded space and think that mobile devices are really interesting and we’ve had a couple key articles that came up on the Foojay community so far and I want to introduce the or start the podcast by just talking about those the first one we had Frank I think you did an interview with some people about the way that the Raspberry Pi and Java are used in education and Johan I know there’s a lot that’s going on now with JavaFX in the embedded space for mobile application for mobile and embedded
[3:55] Applications with screens so Frank can you talk a little bit about your interview of course so I’m also involved in the pi 4G project which is a library to control the gpios so the physical pins of a Raspberry Pi that you can control let’s send and release and then Motors and everything relates to that and that’s how I got into contact with Barbara Schooner and dieterholz from the FH and W University of Switzerland and they have a very nice approach with the students so they use Java as the language to learn programming but they also use Raspberry Pi to get used to control Electronics so that you have this I Square C and PBM so all these kind of signals which are used in electronics and that they also get familiar with those and they get these nice challenges like calculating the shortest distance between two points which is a theoretical thing you can solve with the program but they have to illustrate it with a game which has like for instance a 64 by 64 let Matrix which is controlled by a Raspberry Pi and they have to find the shortest spot between the green and the
[5:11] Red light stuff like that and they use Java they use Java fix they use FX gel the game engine all on the Raspberry Pi which forces these students also to be very careful with memory usage to focus on performance but they really learn the basics of Java programming and they go a lot further and we had two student projects last semester one was with the crow pie which is a little suitcase with a lot of components they wrote a lot of documentation on that part and a lot of example applications and the other one was building an fxgl example game on the Raspberry Pi and it’s really nice to see that from a university they support this Pi 4G project by delivering documentation they used an early version of the version two so they became a contributor to an open source project we gained a lot by getting documentation from them and these students learned a lot of java and they discovered that this server-side application along the server-side language can do a lot more that you can build games by that that’s that’s the most eye-opening stuff of java you can make games with it everyone
[6:32] Has forgotten that Minecraft was is John of our game for instance so it’s an important language and it’s fun to see that universities or really picked this up and also ask to like for instance the pi 4G project do you have other IDs for our students for projects for the next semesters like we had proposed some some things like building a test framework for the Pi4J Library that’s all IDs that are exchange between the open source community and this University and it’s really a nice approach and really fun to work with these students also and to guide them in their first well first they were really good students I think they got an A plus grade so they were really good I should Hope they’ve got an A plus grade so it sounds like they’re doing a lot of cool things it’s not like they’re building you know back-end Enterprise applications they’re building a lot of cool and embedded systems that just work locally you get to see everything operate you can blink some lights and you probably have some cool robot Motors and things yep they have robot stuff
[7:40] They have physical games board game like things with let’s and buttons a narcada game is also one of the things that they were working on yeah so it’s really really fun and it’s bringing back the fun into Java that’s that’s the on the title that they give to these projects were the games by any chance in JavaFX at Java Vixen fxgl yes yes oh nice so the library of Almas so I created a very simple stupid game for them and then they took it a bit further so that was the ID this is how you program such a thing now make it a lot better and more fun and attach some let’s and a speaker and all that kind of stuff will happen in the next projects it’s actually funny that you say I heard you saying this Cyrus server side language that can be used for more things than server side because well it’s funny and not funny because as as James said in the beginning Java started not on the server so that was a nice detour but it’s it’s it’s often hard to explain to people that Java is not only running on the server and to be honest that is the biggest challenge that we
[8:57] Currently face with glue on when we try to convince companies to use Java on the client mobile or embedded then they say but Java isn’t that something for databases and that is sometimes frustrating and I kept wondering many years how that came because when I went to Java one in the late 90s I was always amazed by by the school demos of Javon and better devices the Toy Show with James Goblin and Jack bolella doing great demos a dangerous demos by the way so that was really really fun but how come I know that there are a number of reasons why it didn’t really take off those days they had some nice work on the phones and I bought the first phone with Java and I was very enthusiastic but in the end developers didn’t really got attracted to it and so I’ve been thinking what are the major reasons why developers didn’t go for it and apart from that of course there’s the business story why is the business not going for it well a database company is not doing something in embedded a mobile phone so I think that’s part of the reason
[10:20] But being a I worked with pjava with PC LDC KDC and all those things and it was a bit confusing as a Java developer had the right transfer anywhere but there were so many profiles and configurations that it was hard so lesson number one that I learned is if you want to do mobile or embedded you need to do the real Java and not something that’s something between Java six and seven not specifically talking about Android and that has its own UI layers and that has it’s it’s its own packages that you have to use no it has to be the real Java I think that’s important the second thing is that we want to have the real Java but we also want to take advantage of those embedded capabilities and if you look at the bare metal most of those embedded in mobile devices or arm CPUs with Linux with some flavor of Linux on it and that is something that with JavaFX when with Google we have an extension to Java X to make it run very fast on the Linux kernel using the DRM and the KMS modules that are in the Linux kernel and that is really that allows Java to compete with the
[11:39] Native toolkits on mobile and embedded because there we combine the cross-platform things of java with the real the hardware acceleration that is needed if you want to make something shine on those mobile and embedded devices so from a technical Point well and actually that combined with the fact that you don’t need to install a GRE now on embedded on mobile devices to run mobile applications because you can compile your application ahead of time and then you have just a native application like any other native application and I think with those things combined there is now much more opportunity for Java to really become huge unembedded and from a technical point I think most of the herders are solved the main problem is the image how can we convince and how can we convince companies that their user interface don’t have to suck how can you explain that a dishwasher has by no means the UI capabilities of a mobile phone and it’s so frustrating if you see embedded UI devices that are so crappy while there’s a language and the UI toolkit that allows to
[12:56] Make them create and most important those those the development of those OpenJDK and opengfx are done in the open so it’s not controlled by an advertisement company or whatever so what are what is the world waiting for that’s my biggest question actually I mean the heart of a lot of this stuff is sort of mired in history you know the way that Java sort of turned into something for the Enterprise was a simple you know follow the money kind of thing from the community I mean the there’s just such a crazy amount of money available in the Enterprise Market and the Enterprise Market at the time was and still is really really hurting you know if you look at the reliability of software and the velocity of software development back in the mid 90s it was really sad and people were really really desperate for something that would let them develop software very quickly and know that what they ended up with was very reliable that would use the potentials of the you know emerging multi-core Hardware that everybody had handle large address spaces
[14:25] Large complex data structures and you know when people started having these these experiences with you know modern programming technology it just swept the industry like wildfire it was it was really quite bizarre to watch but it you know in the embedded world you know one of the things that that’s Java tries to address is how do you build complex software and a lot of time in the embedded world the software is actually really simple and people have have clung to pretty straightforward simple software development methodologies kind of because it’s what they know and it’s also a universe where typically the software developers aren’t actually software Engineers they’re much more often electrical engineers so they think about the world a little bit differently and where Java really starts to shine in embedded devices is as soon as the software starts getting getting complicated so like like in my previous job which was doing all the software from autonomous robot it was you know it needed to build a sort of
[15:59] Situational awareness map of all the things in its environment what they were doing what the craft needed to do in order to respond to the next step you know is it doing some kind of collision avoidance how is a rock different from a boat and to be able to do these these reevaluations quickly in these these evolving situations and not have to worry about things like memory management you know if you try to do you know complex data structures and see you quickly go absolutely insane trying to avoid some kind of you know memory corruption or allocate free mess that’s just ungodly and you know if you ever try doing multi-threaded development and see you would you will shoot yourself and be happy about it because it’s just so bad and the embedded World these days is just starting to get to where a really con a really large fraction of the environments out there and the problems out there are complicated enough that it’s a really compelling thing and there’s a lot of pain you know when I talk to people doing embedded development these days
[17:33] It gets pretty painful and for a lot of folks you know job is starting they’re starting to go oh I know how to make this not hurt you know just change the way I do things yeah so that software sounds like pretty complex in terms of running on a robot that’s in the ocean that has to be able to figure out does it go up or down because it has a full three-dimensional aspect and my understanding is that liquid robotics has in essence kind of built an autonomous ocean vehicle that’s powered by water so what are some of the data structures capabilities or what does it have to watch out for as it’s in the ocean I have to watch out for everything I mean you know this is a robot that has to survive hurricanes and shark attacks it has to be able to operate you know really close to the north magnetic pole which turns out to be quite a trick you know because things like compass and stock stop working it has to work hundreds or thousands of miles from the nearest human so if something goes wrong you’ve just lost a quarter million dollars so being really really brutally reliable right so the so that you can be
[18:50] In a hurricane in the middle of the Atlantic collecting data off off of off a weather station and doing your job because you know if you’re if you’re out there to be a weather station which is one of the jobs these devices do the most interesting times the times when the data is the most valuable is exactly the times when has happened you know if you only you know if you only work correctly on bright sunny days then you’re not very useful got it so Java made it feasible to collect that data from all the different sensors even when things were going haywire because you get that crazy read from a compass when you’re right next to the world’s largest magnet yeah yeah and things like you know like a GPS receiver GPS receivers are kindest straightforward except that they all misbehave in different ways so you know if you actually care about where you are you really need to have multiple GPS receivers you need to have models of how the GPS receivers fail and how you know what can cause them to come back to working you know we you know we built things where we always had at least three GPS receivers no two from
[20:13] The same manufacturer and just the data structures to model the state of the GPS receivers and to try to sort out their inconsistencies you know that alone gets gets gets pretty dicey you know so it’s it’s it’s it’s it’s it’s nice to have the best tools you can get all right so you probably have a lot of different devices on this robot you said you had about three different GPS coordinate systems on there and Johan you were talking a little bit ago about the different architectures that are used in iot and embedded systems and one of the things I know that the Java platform has is that unique memory model which constrains and defines how Java interacts with its objects so how does that play a factor in terms of being able to develop different a single application for different devices well first of all the fact that you don’t have to deal with the memory management is already a big win so that the garbage collector is taking care of that is a that is really something that you can’t overestimate it’s it’s indeed true most of my C development on embedded is it’s about
[21:32] Fixing a memory issues and it’s and the most annoying issues are of course those that are not giving in there immediately so that there are somewhere leaking memory you don’t know where or even worse some memory is corrupt it doesn’t happen during development or in testing it only happens in production so it is a and I think at this point the Java garbage collectors are extremely useful performant and accurate if if you’re not used to this model it’s it’s it’s hard to believe many C programmers are used to okay yeah this is well six fee segmentation violation is the is very common to them and Java developers are totally unaware of this so I think this really helps a lot it comes at the well often it comes at a price of course it’s it’s not directly related but well The Best of Both Worlds may be maybe maybe good and that is something that hopefully will appear in next versions of java if we can have more direct influence on the memory layouts so that for example complex Matrix multiplications can run as fast in Java as as they are on
[23:01] Well with a native C and the reason I’m saying this is because adding to what James said about embedity viruses are typically not used for complex applications I think that’s that’s two but we see that those devices are getting more they get more resources and they’re also used to do more tasks for example data processing and the AI and in that case mathematical operations are extremely important and that is what I think one of the biggest fields of opportunity for Java and that goes from autonomous driving in a car or on a wave glider over face recognition and all kinds of applications that are related to yeah Ai and data processing and for privacy reasons the data that is captured on devices is not always allowed to go to Cloud systems so you need to do some processing on those devices and that is where we did a proof concept of about that many years ago so where we trained a neural network on a cell phone and the data captured by the user was not going to the cloud to retrain the model there but it was kept locally and the model was retrained
[24:35] Locally and that can be done during the night when the phone is not used for other things and then the Delta of the model is sent back to the server so this doesn’t violate the Privacy it leveraged the increasing power of the devices and it is it’s getting more complex to do this in a more simple language than than than Java so I think these tasks are getting increasingly complex and this is now the opportunity I think for Java to become relevant there rather than adding more lines of code to scripting languages it might be good to do it in Java now yeah one of the challenges that many people had historically with job is that memory allocation and the allocation if you look at if you see if if you sort of Benchmark Java against C for memory allocation and deallocation you find that in terms of an amortized cost I’ve averaged over time Java is much cheaper because most the time you never actually pre-memory it just sort of goes away but the cost of Cheaper you know average cost is that the cost became very lumpy you know that there would be periods
[26:01] Where the garbage collector would would kick in and you know the device or whatever would essentially stop running for a second or two but in the more modern day ibms the GC time is now almost vanishingly small for you know if you’re using like I think the most JDK 16 in particular if you use the Coretta release of JDK 16 it’s got a really highly tuned GC in it and you know you can get maximum pause times of well under a second you know tens of milliseconds there is a is a typical upper bound and that starts to make many of these embedded applications really really smooth and the people I talked to who are still working on the GCS you know they’re they’re trying to get down to like sub millisecond Max Max pause times and you know they’re going to get there and you know the progress of people making is just incredible and but one of the areas that’s been a little frustrating has been the math part of it and one of the things I found really annoying about it is that you know in past lives when I like worked at Sun Microsystems
[27:29] It was like it was always like well can’t we allocate some some head count to working on them on doing math fast because we actually knew how to do it was just like a project that was going to take some people to work on it and you know the answer always always came back and it was a correct but Annoying answer which is that there’s no money in numerical computing you know compared to Enterprise Computing numerical Computing just doesn’t get the love because it doesn’t generate the dollars you know so if you’re if you’re having to figure out you know what stuff to allocate you know hard hard cash to Enterprise stuff always one yeah and I know they’ve allocated some of that head count and work to the garbage collectors because in the core hotspot JDK they have zgc in OpenJDK red hat has Shenandoah and these are the pauseless garbage collectors and what you’re talking about earlier with the robots that were in the ocean that had to make a lot of decisions around everything it seems like garbage collection was not an issue for that because of some of the
[28:43] Advancements that have been made in the core platform that fit on those embedded devices yeah yeah yeah so you know if you’re okay with pauses of a few tens of milliseconds there’s no issue and you know GC is one of those things that it helps everybody and you know with numerical computation I mean everybody does numerical computation just to some extent and it’s not actually slow in Java although there was a period where you know in Java there if you look read the Java spec there’s this keyword strict FP which has a very mysterious sort of explanation and it’s really a workaround for an Intel bug that they were officially going to never fix and so as kind of a trying to try to make Intel happy we sort of legalized their some of their bugs but the bugs that we never legalized were the things that involve sine and cosine so if you did a benchmark in Java of like six seven eight years ago that involved sine and cosine Java was just losing miserably mostly because we actually had to work around the hardware bugs and then see nobody cared about the hardware bugs
[30:16] Even though they could have some awful consequences but you know in later versions of the of the Intel chips they actually have correct implementations of sine and cosine but instead of fixing sine and cosine they just invented new instructions you know there’s so they all have the correct sine cosine and the backwards compatible sine and cosine which I find kind of hilarious all right so in terms of Robotics there’s a lot of interesting things that are going on now in the Raspberry Pi Community with the arm-based devices so James you’re just talking about some instructions that were on Intel for sine and cosine but Frank I know you’ve been doing a lot with embedded systems like with Pi4J so that people can build prototypes of just different robots and things and your average person probably isn’t going to deploy a robot into the ocean but what are some of the things and projects that people can do with embedded Java using like a Raspberry Pi you have to take a look at the cost of a Raspberry Pi it’s very low so you have a Raspberry Pi for 35 dollars something like that so for instance where I work
[31:27] Now 2D water startup we’re busy for three four years so we have to go fast and it has to be inexpensive so we have used Raspberry Pi everywhere the first mush so the first robots they were based on the Raspberry Pi and we had so we could use something to which was driving around which was Gathering images which was working or not working but we had something which was driving around meantime we have our own Hardware our robots are all 3D printed so we have a lot of 3D printers again we use Raspberry Pi to control these printers and that’s the first thing where I introduce Java in into 2D for this kind of devices because we wanted to have a little touchscreen on each printer so if if the operator is walking around in the printer room that he can quickly check what’s going on or start a new job so I don’t like the kind of programs where you have on a Raspberry Pi you have a service running and you have your browser and in your browser you have a web application so if something is going wrong where is it so you have to be aware of all these these levels and by moving to Java we have a background service which
[32:41] Is controlling the printer and reading the states we have Java fixed for the user interface on the back end we have a Java application again which is getting the same kind of models which are exchanged between both applications and everything is Java from beginning till the end so if something happens yeah it’s me to blame because I developed it but it’s much more clear where we have to look for the issue and then if you extend it with like for instance the pi for J library and you can control let’s and you can control buttons and you can read the button State and you can control any kind of chip you have like a GPS Global has an example with a card in car Entertainment System where you have the position of the car that kind of gpn then it costs 15 and you have it the next day on your desk and you can attach it to your Raspberry Pi and read the state of the GPS antenna it will not be as reliable as the one that James was using in on the sea on his robots but it’s something you can experiment and you can get knowledge and you know how it works or you can learn how it works
[33:49] And build your experiments experience when I started to program I was 10 years old and I had a Commodore 64. and that’s that generation and when I was 14 years old I had my Lego trains controlled by my Commodore because I had a lab board and at that time I was horrible I had to buy a book in the Netherlands and I had to buy my components somewhere else now it’s online you find all the documentation you need and you can get started very fast and you have all these people in the Java community in the Arduino Community everywhere who are willing to share how you set up such such an experiment my love for Java is that you can run it on a Raspberry Pi and the knowledge you already have as Java developer you know how to build an application you know how to compile it how to run it and you have all your build tools but use the same kind of use the same experience and knowledge also on these devices because it works just as fluently in my book I’ve used spring I have some blog posts with quarkus it all works and starts super fast thanks to the work of gluon you can build for the 32-bit version or
[35:01] The 64-bit version of the operating system you can build native applications so there’s nothing stopping from having reliable applications with not too many layers not a browser and not it’s all within your Java environment yeah so I think one of the other cool things that I’ve seen glue on have in Johann correct me on this if I’m I’m wrong or misleading there’s a cool Hardware abstraction layer where I can communicate with like the Bluetooth device whether it’s on a PC or a phone or I can communicate to a GPS so I don’t have to learn like the specific gpio signals of different pieces of Hardware right so that is an open source project called glue and attach that we have for this and it contains yeah indeed an Hardware abstraction layer over typical mobile and embedded functionality like GPS obviously but also Compass barcode reader has it called the gyroscope and all these this functionality that’s typically available but provided by different vendors and available in a different way with different permission access and so to make it as easy as possible for Java developers to use a Java API we
[36:20] Have we have glue and attached for this it’s extensible so if you want to extend it with your own service you can do that but the goal I mean it fits in the overall concept that Java developers should just be able to use their IDE and to talk to those devices if you need to start hacking into your program if I’m on a Raspberry Pi model 3B then I have to download this drive and call this instruction if not if it’s Android then I don’t care and if it’s iOS then I have to do this that is not what the what a Java developer wants and it’s it’s it’s often fun to do because well in the end what are we doing we’ve attached exactly this cleaning up this mess but one of the things that I really like about Java is that this and I’m I’m probably using it in the wrong context so James correct me when I’m wrong but that it is a blue color language and it is designed to get the job done it’s not designed to get the best price for the most elegant design or whatever but it wants to get the job done in a good in a high quality way so not just with only five planets code you can do this
[37:41] But you focus on your code and Java will make sure that it works that it scales that it’s secure that it’s and all those ground framework and I think that is something that we want to achieve with attach as well just use your IDE and you should be able to create applications for all those devices all right James I know you’re working on AWS Green Grass and some different aspects with embedded are there any interesting devices or capabilities that you see coming forward that your average Java developer can do in the embedded space in the next year or so I don’t know I mean most of the cool stuff is the stuff that’s already in sort of in the air the stuff that I’ve been working on is not so much about you know adding new capabilities but about making it easier for people to go from a proof of concept to a product so what I’ve been working on and it’s what this product called green grass really does is kind of all of the stuff that you need sort of around an iot app to make that iot app really sort of production hardened right so
[39:05] It deals with things like over-the-air updates how you handle command and control how you handle you know logging in various sorts of management how you handle interactions with the cloud and how you handle a bunch of security issues and how you handle like credentials and in particular it’s you know when you yeah you know when most people write an iot app they Cobble it up on their Raspberry Pi and you know they you know plays with some sensors and some servos or whatever it is but once you’re past that and you want to like distribute this to a million devices or 10 million devices and you want to be able to monitor them manage them all of that stuff you know handle handle iot at significant scale that’s really what green grass is about you know when you want to interact with other stuff you know if you need to be able to do things like deploying databases that people would normally install by hand but you want to automate all of that and of course the hard part of installing is not installing but the ongoing upgrading and maintaining and
[40:28] Looking after it and you know going from the sort of high I’ve got this thing that actually works to okay now let’s punch out a million of them that’s what that’s what I’ve been working on for the last several years got it so it probably makes it a lot easier in terms of like Java you can use things like the jdk14 logger you can use Log4j Commons logging or now in jdk9 system.getlogger and it seems like green grass makes it easy for me to get that information from a single device or a fleet of devices rather than having to build like a log aggregation framework yeah so log aggregation Frameworks are something that there are tens of thousands of out in the world so rather than trying to invent get another log aggregation framework we tie into you know we built this fairly modular mechanism to allow people to sort of tie things together so that you can you know I mean the things that work out of the box are doing things like you know logging to Kinesis or logging to any of the AWS system management Frameworks but you can kind of log to anything okay and probably a batch log or an immediate log
[41:47] Because sometimes the device may not have connectivity so it seems like those are the types of problems that have been dealt with that just like a Java developer doesn’t have to worry about memory management they now have to worry significantly less about log collection well and I mean Telemetry and logs they’re all kind of the same thing one of the things that is really different differentiates embedded development from Cloud development is that in the embedded World errors are completely normal and in particular network connectivity errors and network connectivity is also something that’s that’s variable right so if you’ve got like a cell modem connection sometimes it’ll be fast sometimes it’ll be slow if you’re logging stuff and you happen to be at the you know it’s kind of the limit of your cell modem connection it’ll be slow and you may not be able to log everything so we have a way for you to prioritize different data streams and it will hold back some data because it doesn’t have bandwidth to send it but then higher priority stuff it will get
[43:05] Through so you know you can log lots and lots of engine temperatures but no matter what the I’m on fire message has to blast through all of the all of the queued up data interesting so this is another concern that the Java developers don’t have to concern themselves with or they code it once and then the framework kind of takes care of it so that they’re able to deploy their device and not have to deal with that specific every time yeah so you say I want to write this bag of bites out to this logger this data stream and it manages all the bakeries of the communication Channel you know when most people are screwing around with a Raspberry Pi is sitting on their desk they probably got a really good Wi-Fi connection they may even have a hardwired connection but as soon as you take a device out into the real world things get variable right like the liquid robotics you’re talking about dealing with sharks and Frank I don’t know if your lawn mowing robot has to deal with dogs well chickens are really big fans of our robots we’ve seen chickens and rabbits
[44:15] They yeah we have a lot of pictures of those but yes it’s the same problem eh the robot can send states can get this new firmware from iffy but yeah it’s in a garden so that’s not typically the place where you have a lot of good whiffy coverage so that’s indeed the kind of problems we’re facing that’s correct all right so there’s a lot of interesting information about Java on embedded do we have any parting words of wisdom or just points of Education to note about Java in the embedded space I guess the only thing I’d say is that you know embedded programming is a lot more fun than an Enterprise programming I mean I really enjoy it got it so data programming is more fun and Frank it sounds like you can do a lot of that with Pi4J it’s the blinking let the first time you have a let which blinks because you did something in software that’s in how do you call it an aha adelitness it’s something I did this and I didn’t know how to do this before and it all starts from there yeah and connect up a servo and then life gets really fun yeah yeah yeah I agree with that
[45:30] It’s it’s fun and it makes you feel that you’re really contributing to or bringing the world to the next level because nothing wrong with using Java on the server but the happiness that you feel when you invented something or you can create something I have so many things that I want to do with us so I’ll have to talk with Frank about Pi for J and so but it’s it’s it’s often more fun now the annoying thing is has been mentioned a few times is that well there’s more money to be earned with if you go to the back end fresh developers when they got out of school and they want to earn money they typically go to a back-end development and I really hope that is so I’m probably too naive but I hope that is something that we can change and actually really if AWS is now investing in a client-side framework it’s it’s not a charity organization so that means that in the end there is revenue in the cloud and I strongly believe in that because all those Cloud systems with all the data where does the data come from it has to come from clients and
[46:44] Especially phones and iot devices so the better those embedded Frameworks work the more value there is in the back end I think the main problem is that in large companies they often still think in silos the Enterprise Silo and the embedded Silo have different goals and if if the embedded development can lead to more revenues in the cloud that doesn’t benefit the embedded team and I think that is a that is a problem but I do think that if if you want to follow the money well go back to the origin of the money which is often a phone or an embedded device that is capturing data processing data and sending data or doing actions and I think it’s so simple but maybe I’m too naive because otherwise all the big cloud companies would mainly compete on the place where the data comes from which is the client all right thank you very much everybody for attending I think we could wrap up the discussion here and keep an eye on Foojay for future articles about Java development both on the server on the back end and especially on embedded systems well thanks Eric it’s been a pleasant hour thanks for having
[48:04] Us OpenJDK
Found a mistake, or something to add? Edit this page on GitHub







