softpedia: Final beta of the next Ubuntu LTS is now here
Original URL: http://feedproxy.google.com/~r/linuxtoday/linux/~3/VPx8d_D7aro/ubuntu-16.04-lts-xenial-xerus-final-beta-screenshot-tour-160324220315.html
News Teknoids Need
softpedia: Final beta of the next Ubuntu LTS is now here
README.md This project demonstrates how to access and test the Alexa Voice Service using a Java client (running on a Raspberry Pi), and a Node.js server. You will be using the Node.js server to get a Login with Amazon authorization code by visiting a website using your computer’s (Raspberry Pi in this case) web browser. This guide provides step-by-step instructions for obtaining the sample code, the dependencies, and the hardware you need to get the reference implementation running on your Pi. Tick the box next to Raspbian and click on Install. Raspbian will then run through its installation process. Note: this can take a while. NOTE: To load the graphical user interface at any time type startx into the command line. More info: raspberrypi.org NOTE: You will be using the Terminal utility on the Raspberry Pi to install the utilities you need for this Alexa Voice Service walkthrough. Terminal comes preinstalled on the Raspberry Pi, and you can get to it from the Desktop. You can learn more about Terminal here. SSH allows you to remotely gain access to the command line of a Raspberry Pi from another computer (as long as they are both on the same network). This removes the requirement to have an external monitor connected to your Raspberry Pi. SSH is enabled by default on Raspberry Pi. If you run into problems getting SSH to work, make sure it’s enabled. This is done using the raspi-config utility. Type the following in the Terminal: Then navigate to SSH, hit Enter and select Enable SSH server. Now let’s SSH into your Raspberry Pi. To do that, you need to know the IP address of your Raspberry Pi. Type this command into the terminal: If you’re on a Windows PC, follow the instructions here to SSH Using windows Now that you know the IP address of your Raspberry Pi, you are ready to connect to it remotely using SSH. To do this, open the terminal utility on the computer you would like to connect from and type the following: It will prompt you for your password. NOTE: the default password for the user pi is raspberry Voila! You’re now remotely connected to your Raspberry Pi. Now you’ll install all the utilities while connected remotely via SSH. VNC is a graphical desktop sharing system that will allow you to remotely control the desktop interface of your Raspberry Pi from another computer. This will come in very handy as you get rid of the external monitor connected to your Raspberry Pi. Start VNC Server To start the VNC Server, type: Run VNCServer at Startup You want to make sure the VNC Server runs automatically after the Raspberry Pi reboots, so you don’t have to manually start it each time with the command tightvncserver through SSH. To do that, type the following in the terminal: Note the ‘.’ at the start of the folder name. This makes it a hidden folder that will not show up when you type ‘ls’. Create a new configuration by typing the following command: Edit the contents of the file with the following text: Type ctrl-X and then Y to save the changes to the file. That’s it. The next time you reboot the VNC server will restart automatically. Connecting to Raspberry Pi via VNC You may now disconnect the Monitor, keyboard and mouse (if you like). Now with SSH (allows remote access to the terminal) and VNC (allows you to remote control the Raspberry Pi’s desktop interface) installed, the external monitor is optional. Feel free to disconnect it from the Raspberry Pi. Get VLC media player by typing: NOTE: If you are running on Raspberry Pi and already have VLC installed, you will need to remove two conflicting libraries by running the following commands: Unable to fetch errors Source: https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=67399 Make sure VLC is installed correctly This will tell you where VLC is installed. Most programs are stored in Set the environment variables for VLC Type the following into the terminal: Check if the environment variables were set successfully Verify Node isn’t already installed. It should print ‘command not found’. Now type: Set up the apt-get repo source: Install Node itself: You need to have Java Development Kit (JDK) version 8 or higher installed on the Raspberry Pi. Step 1: Download JDK Step 2: Extract the contents Set default java and javac to the new installed jdk8. NOTE: If asked to choose an alternative, type the number corresponding to the jdk version you just installed – for example – jdk1.8.0_73 Now verify the commands with the -version option: Step 1: Download Maven Download the Binary tar.gz file apache-maven-3.3.9-bin.tar.gz from https://maven.apache.org/download.cgi Step 2: Extract the contents Step 3: Tell your shell where to find maven Create a new file /etc/profile.d/maven.sh, and type the following inside it: Save the file. Log out and back into the Raspberry Pi so the profile script takes effect. You can test that it is working with the following command: Get a free Amazon developer account if you do not already have one. Download the sample apps zip file. By downloading this package, you agree to the Alexa Voice Service Agreement. Device Type Info Security Profile Click on the Security Profile dropdown and choose “Create a new profile” General Tab Client ID and Client Secret will be generated for you. Now click on the Web Settings Tab Device Details Amazon Music You are now ready to generate self-signed certificates. Step 1: Install SSL Verify install Change directories to /samples/javaclient. Step 2: Edit the text file ssl.cnf, which is an SSL configuration file. Fill in appropriate values in place of the placeholder text that starts with YOUR_. Note that countryName must be two characters. If it is not two characters, certificate creation will fail. Step 3: Make the certificate generation script executable by typing: Step 4: Run the certificate generation script: Step 5: You will be prompted for some information: Step 6: Edit the configuration file for the Node.js server The configuration file is located at: Make the following changes: IMP: Do not use ~ to denote the home directory. Use the absolute path instead. So, instead of ~/documents/samples, use /home/pi/documents/samples. Step 7: Edit the configuration file for the Java client The configuration file is located at: Make the following changes: Change directories to /samples/companionService Install the dependencies by typing: Open a web browser, and visit https://developer.amazon.com/lwa/sp/overview.html. Near the top of the page, select the security profile you created earlier from the drop down menu and click Confirm. Click Save. Next to the Alexa Voice Service Sample App Security Profile, click Show Client ID and Client Secret. This will display your client ID and client secret. Save these values. You’ll need these. Login to the Raspberry Pi via VNC Step 1: Update config.js Save the file. Step 2: Update config.json Edit the following values in this file: Save the file. Step 3: Preparing the pom.xml file Navigate to the following file and open it in a text editor. Add the following to the pom.xml in the section: Login to the Raspberry Pi via VNC In your terminal window or from the command prompt, type: The server is now running on port 3000 and you are ready to start the client. Open a new terminal window/tab (SHIFT+CTRL+TAB in Raspbian) Upgrade your Java version Make the script executable by typing: Run the installation script: You will get a message from Oracle Java installer that you must accept the Terms of Service for Java SE Platform, press Enter. Press Tab, and then Enter to say “Yes” to the Terms of Service. Build the app Before you build the app, let’s validate to make sure the project is correct and that all necessary information is available. You do that by running: Download dependencies and build the app by typing: When the installation is completed, you will see a “Build Success” message in the terminal. Run the client app: You are now ready to run the client app by typing: When you run the client, a window should pop up with a message that says something similar to: Please register your device by visiting the following website on any system and following the instructions: https://localhost:3000/provision/d340f629bd685deeff28a917 Hit OK once completed. Copy the URL from the popup window and paste it into a web browser. In this example, the URL to copy and paste is https://localhost:3000/provision/d340f629bd685deeff28a917. You will be taken to a Login with Amazon web page. Enter your Amazon credentials. You will be taken to a Dev Authorization page, confirming that you’d like your device to access the Security Profile created earlier. Click Okay. You will now be redirected to a URL beginning with https://localhost:3000/authresponse followed by a query string. The body of the web page will say device tokens ready. Return to the Java application and click the OK button. The client is now ready to accept Alexa requests. Click the Start Listening button and wait for the audio cue before beginning to speak. It may take a second or two for the connection to be made before you hear the audio cue. Press the Stop Listening button when you are done speaking. Ask for Weather: Some other fun questions you can ask Alexa Once you hear the audio cue after clicking “Start Listening” button, here are a few things you can try saying – More on Music Playback To demonstrate the “play/pause” button, you can speak the following command: Play DC101 on iHeartRadio, then press the “play/pause” button. The music will pause in response to the button click. Press the “play/pause” button again to restart the music. Check to see if you are seeing the response coming through on the Terminal and if you see the response cards on your Alexa app. If yes, you probably need to force audio through local 3.5mm jack, instead of the HDMI output (this can happen even if you don’t have an HDMI monitor plugged in). To force audio through local 3.5 mm jack, pen Terminal, and type See Raspberry Pi Audio Configuration If you run into some “Unable to fetch” errors while trying to install VLC, try the following –
About the Project
Getting Started
Hardware you need
Skills you need
0 – Setting up the Raspberry Pi
1 – Booting up the Raspberry Pi
2 – Installing utilities & dependencies
2.1 – Enable SSH on Raspberry Pi
sudo raspi-config
2.2 – SSH into the Raspberry Pi
hostname -I
> 192.168.1.10 //this is an example Raspberry Pi’s hostname, it would be different for you
pi@
2.3 Install VNC Server
sudo apt-get install tightvncserver
tightvncservercd /home/pi
cd .config
mkdir autostart
cd autostart
nano tightvnc.desktop
[Desktop Entry]
Type=Application
Name=TightVNC
Exec=vncserver :1
StartupNotify=false
2.4 – Install VLC
sudo apt-get install vlc-nox vlc-data
sudo apt-get remove --purge vlc-plugin-notify
sudo rm /usr/lib/vlc/plugins/codec/libsdl_image_plugin.so
If you run into some “Unable to fetch” errors while trying to install VLC, try the following: sudo apt-get update
sudo apt-get upgrade
sudo apt-get install vlc-nox vlc-data
whereis vlc
/usr/bin
. On my Raspberry Pi, I see:vlc: /usr/bin/vlc /usr/lib/vlc /usr/share/vlc /usr/share/man/man1/vlc.1.gz
export LD_LIBRARY_PATH=/usr/lib/vlc
export VLC_PLUGIN_PATH=/usr/lib/vlc/plugins
echo $LD_LIBRARY_PATH
> /usr/lib/vlc
echo $VLC_PLUGIN_PATH
> /usr/lib/vlc/plugins
2.5 Download and install Node.js
node —version
> command not found
sudo apt-get update
sudo apt-get upgrade
curl -sL https://deb.nodesource.com/setup | sudo bash -
sudo apt-get install nodejs
2.6 Install Java Development Kit
Assuming this is a fresh Raspberry Pi and you do not already have JDK installed, you’ll need to download JDK 8 from Oracle.
Extract the contents of the tarball to the /opt directory:sudo tar zxvf jdk-8u73-linux-arm32-vfp-hflt.tar.gz -C /opt
sudo update-alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_73/bin/javac 1
sudo update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_73/bin/java 1
sudo update-alternatives --config javac
sudo update-alternatives --config java
java -version
javac -version
2.7 Install Maven
Extract the contents of the tarball to the /opt directorysudo tar zxvf apache-maven-3.3.9-bin.tar.gz -C /opt
You’ll do this in the system profile settings so it is available to all users.export M2_HOME=/opt/apache-maven-3.3.9
export PATH=$PATH:$M2_HOME/bin
mvn -version
3 – Getting started with Alexa Voice Service
3.1 Register for a free Amazon Developer Account
3.2 Download the sample app code and dependencies on the Raspberry Pi
3.3 Copy and expand the .zip file on your Raspberry Pi
3.4 Register your product and create a security profile.
4 – Generate self-signed certificates.
sudo apt-get install openssl
whereis openssl
> openssl: /usr/bin/openssl /usr/share/man/man1/openssl.lssl.gz
cd /samples/javaclient - //your sample apps location
chmod +x generate.sh
./generate.sh
/samples/companionService/config.js.
/samples/javaclient/config.json.
5 – Install the dependencies
cd /samples/companionService
npm install
6 – Enable Security Profile
7 – Updating the config files
Navigate to the following file and open it in a text editor./samples/companionService/config.js
Edit the following values in this file –
products: {"my_device": ["123456"]}
Navigate to the following file, and open it in a text editor./samples/javaclient/config.json
/samples/javaclient/pom.xml
net.java.dev.jna
jna
4.1.0
compile
8 – Run the server
cd /samples/companionService
npm start
9 – Start the client
cd /samples/javaclient
chmod +x generate.sh
./install-java8.sh
mvn validate
mvn install
mvn exec:exec
10 – Obtain Authorization from Login with Amazon
NOTE: Due to the use of a self-signed certificate, you will see a warning about an insecure website. This is expected. It is safe to ignore the warnings during testing.
Let’s talk to Alexa
Click the Start Listening button.
You: What’s the weather in Seattle?
Click the Stop Listening button.
Alexa: Current weather report for Seattle
The “previous”, “play/pause”, and “next” buttons at the bottom of the Java client UI are to demonstrate the music button events. Music button events allow you to initiate changes in the playback stream without having to speak to Alexa. For example, you can press the “play/pause” button to pause and restart a track of music. 11 – FAQs
I got the Raspberry Pi working with AVS, but I can’t hear the audio response from Alexa
sudo raspi-config
How do I find the IP address of my Raspberry Pi?
hostname -I
Unable to fetch errors –
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install vlc-nox vlc-data
tl;dr: The ODROID-C2 is a very solid competitor to the Raspberry Pi model 3 B, and is anywhere from 2-10x faster than the Pi 3, depending on the operation. The software and community support is nowhere near what you get with the Raspberry Pi, but it’s the best I’ve seen of all the Raspberry Pi clones I’ve tried.
The original Raspberry Pi was the first mass-market ‘single board’ computer that kicked off a small computing revolution in terms of hardware interaction via GPIO, experimental monitoring, automation, and robotics projects, etc. Through the past few years, it has evolved from being a very slow and limited computing platform to being as fast as some lower-specced smartphones, and can now run a desktop Linux environment bearably well. The Raspberry Pi 2 and Pi 3 (just announced on Feb 29—see my review of the Pi 3 here) were the first models with quad core processors, and they’re both decent generic Linux computers, especially for the low $35 price tag!
Once the Pi became a popular product, similar single board computers were introduced with different features and functionality, in a similar price range. I recently reviewed one of the main competitors, the Orange Pi Plus, which for $39 offers faster networking, onboard fast eMMC storage, and a bevy of other features—but which also requires a lot more effort to get up and running, and has nowhere near the community and documentation surrounding the Raspberry Pi.
Another primary competitor in the space is the ODROID, from Hardkernel. The original ODROID-C1 was already a decent platform, with a few more features and more RAM than the comparable Pi at the time. The ODROID-C2 was just announced in February, and for $39 (only $5 over the Pi 3 price tag) offers a few great features over the Pi 3 like:
The Pi 3 added built-in Bluetooth and WiFi, which, depending on your use case, might make the price of the Pi 3 even more appealing solely based on a feature comparison.
But features and specs are really just the tip of the iceberg. As I found when reviewing the Orange Pi, there are many factors you have to consider when evaluating what single board computer makes the most sense for your projects or usage; especially if you’re not a hardcore Linux kernel hacker, you might want to consider factors like the user community, forums, and software support you get from the companies/foundations behind the boards.
Unlike the Pi 3 (and pretty much every Pi since the B+), there’s no huge run on ODROID-C2s, so I went to the official USA distributor’s site (AmeriDroid) and bought an ODROID-C2 for $41.95 plus $7 shipping (I also added in an official clear case and the recommended power adapter, for convenience—though you can power the ODROID-C2 through the USB OTG port just like the Pi). Note that there was a recent post in the ODROID forums stating that the first batch of ODROID-C2s had already been sold out as of March 16, but many distributors still have them in stock.
Getting a Pi 3 can be an exercise in frustration; almost a month in, it’s only in stock in some stores, and people are still price gouging by selling at higher prices with cheaply-assembled Pi starter kits and on eBay. I was lucky to find them in stock at my local Micro Center for list price; the situation should improve over time… but considering the Pi Zero is still perpetually out of stock everywhere, the Pi Foundation definitely needs to beef up its manufacturing and distribution partnerships to meet demand!
A view of the ODROID-C2 and Pi 3 from the top.
A view of the ODROID-C2 and Pi 3 from the side.
One of the first major differences between the Pi 2/3 and the C2 is the massive heat sink that’s included with the ODROID-C2. Based on my observations with CPU temperatures on the Pi 3, the heat sink is a necessity to keep the processor cool at its fairly high 2 GHz clock. The board itself feels solid, and it feels like it was designed, assembled, and soldered slightly better than the larger Orange Pi Plus, on par with the Pi 3.
One extremely thoughtful feature is the ODROID-C2 board layout mimics the Pi B+/2/3 almost exactly; the largest components (e.g. LAN, USB, HDMI, OTG, GPIO, and even the screw holes for mounting!) are identically placed—meaning I can swap in an ODROID-C2 in most situations where I already have the proper mounts/cases for a Pi.
The process for setting up an ODROID-C2 is pretty much the same as the Raspberry Pi; you download the official OS image from the appropriate wiki page (in this case, I downloaded Ubuntu 16.04 1.1), expand the image file (since it’s a large .xz
file, I used The Unarchiver for Mac to expand it), then flash it to a microSD card.
On my Mac, I inserted a Samsung EVO 16GB card, ran diskutil unmountDisk /dev/disk2
, then ran sudo dd if=image-expanded.img of=/dev/rdisk2 bs=1m
to copy the image to the microSD card. The official Ubuntu image is over 5 GB, so it takes a little time. (For the Pi, there’s an official CLI-only ‘Raspbian Lite’, which clocks in around 1 GB, so it’s little faster to copy.)
The microSD card slot is in a peculiar location, just clearing the GPIO pins on the underside.
Insert the microSD card into the slot on the underside of the ODROID-C2 (it’s in a bit of a strange location, with the card sticking out over the soldered GPIO pin connections), then plug in your keyboard, mouse, and HDMI monitor, and then plug in power to boot it up.
It boots to a pleasing Ubuntu desktop login page (default admin username is odroid
with the password odroid
), and after first boot, everything is configured and ready to go. One nice thing about the setup experience is you don’t have to manually run sudo raspi-config
and expand the filesystem manually (or do the same via a GUI config panel)—on first boot, the OS expands the filesystem to cover your whole microSD card automatically.
The official Ubuntu MATE environment is nice, but for better efficiency, I used the ODROBIAN Debian Jessie ARM64 image for ODROID-C2 instead. The download is only 89 MB compressed, and the expanded image is ~500 MB, making for an almost-instantaneous
dd
operation. There are some other images available via the community as well, but ODROIBIAN seems to be the most reliable—plus it already has excellent documentation!
Since it defaults to Ubuntu MATE, the desktop environment is pleasant (more so than Raspbian’s default GUI), and it even comes with both Chromium and FireFox installed, so you can choose from one of the two most popular and well-supported browsers. However, after I ran sudo apt-get update && sudo apt-get upgrade
(which took quite a while the first time) to make sure all packages were up to date), neither Chromium nor FireFox would launch; they would launch and then quit after a few seconds. So I re-imaged the card (which took a couple hours) and tried again.
Chromium took about 4 minutes to launch the first time (it seemed like nothing was happening, but one CPU core was spiked at 100% the whole time), and FireFox took about 8 seconds the first time. After that, both took 4-5 seconds to launch, and nothing seemed slow or inconsistent when using them.
Most apps that come preinstalled with MATE worked flawlessly, though every once in a while FireFox or Chromium would crash and need to be restarted (Chromium much more so than FireFox—see this forum topic). Hopefully this is just a growing pain with a relatively new ODROID revision and a new OS distribution, but it’s a little disconcerting, especially after hearing grief on some forums about Hardkernel being stuck on the Linux 3.x kernel for a while.
It’s hard to match the level of software/OS support the Raspberry Pi foundation and community provides, but of all the single board computers, the ODROID-C2 and the Hardkernel community seem to have the most solid footing; reading through forum posts like Ubuntu 16.04 LTS for ODROID-C2 makes me confident that the Hardkernel devs and community are working to smooth out the rough patches, and in just the past month, the progress has been excellent!
For the Pi Dramble, I have a few pain points with the current generation of Raspberry Pis; I could always use more raw CPU speed (that’s the main bottleneck for authenticated web requests), but one of the even more important considerations is network bandwidth—the Pi 3’s limited bus only allows up to ~95 Mbps over wired lan, or up to ~321 Mbps if using a USB 3.0 adapter. The ODROID-C2’s faster CPU clock, default UHS-1-clocked microSD reader, and built-in Gigabit Ethernet port paint a great portrait on paper—but the proof is in the pudding. As with all my other reviews, I’ve run the ODROID-C2 through my benchmarking gauntlet to compare it to the Pi 3 and Orange Pi Plus.
Others have already beaten the CPU benchmarks to death; architecturally, the quad-core Cortex A53 64-bit processor is very close to the Pi 3’s processor; however, the .8 Ghz faster clock rate and larger memory allocation does provide a marked increase in performance over the Pi 2/3 for many tests, including some real-world Drupal web application tests later in this post.
A fast and reliable network link is important if you either need lots of throughput for things like serving lots of web traffic or passing around files on a network (e.g. using the ODROID-C2 as a NAS). I have comprehensive networking benchmarks posted on the Pi Dramble site for the Pi 2 and Pi 3, but let’s see how the ODROID-C2 compares:
The raw stats:
iperf
raw throughput (onboard Gigabit Ethernet): 938 Mbps (321 Mbps on Pi 3)iperf
gave absolutely an absolutely rock solid 938 Mbps, which is awesome—the Orange Pi was a little shaky in its results, varying in test runs from 300-750 Mbps, but never getting near a full 1 Gbps throughput. The Raspberry Pi 3 can get 95 Mbps on the built in 10/100 Ethernet port, or up to 321 Mbps on a Gigabit USB 3.0 adapter. The ODROID-C2 delivers on the networking throughput in spades; pair it up with a nice SSD in a USB enclosure and a fast eMMC card, and this could be an excellent option for NAS or any kind of streaming!
For some projects (and in general, in my opinion), the amount of power that’s drawn is an important consideration. Typically, the less current draw the better, especially if you don’t have as good a quality power supply, or might need to run the board off a battery for certain applications (e.g. mobile robotics, mobile sensors, mesh networks). I have a good overview of power consumption for the various Raspberry Pis, and here are a few stats for the ODROID-C2:
The raw stats:
The most surprising thing to me is how the ab
stress test (basically hitting Drupal hard for a long time, pegging the CPU cores, the memory, and the microSD card at the same time with uncached requests) used a lot more power on the ODROID-C2 vs the Pi 3. The Pi 3 must have a little better power optimization overall, while the ODROID-C2 has a little better power optimization for the CPU itself.
Unfortunately, I am not able to test the eMMC performance at this time as I don’t have the required module, but I did run a set of benchmarks against the built-in microSD card reader (using a Samsung EVO 16 GB card), comparing the results to a Raspberry Pi 3 running Raspbian (with the microSD card reader overclocked):
The raw stats:
hdparm
buffered: 35.29 MB/s (40.88 MB/s on RPi)dd
write: 30.2 MB/s (39.1 MB/s on RPi)iozone
4K random read: 9.64 MB/s (11.77 MB/s on RPi)iozone
4K random write: 2.04 MB/s (2.36 MB/s on RPi)I posted more comprehensive benchmarks for microSD cards on the Raspberry Pi, but what I think may be even more interesting is running the OS off the eMMC; it promises to be 5-10x faster than even the fastest microSD cards I’ve tested, and it’s not too expensive an addition to the ODROID-C2 (the 8GB eMMC module with Ubuntu is currently $21).
Without microSD card overclocking turned on for the Pi, the numbers for the Pi are all basically halved—be wary of any benchmarks that claim the Pi 2/3 are 2x slower than the ODROID-C2 or other boards… the only real difference in that case is the Pi defaults to a more stable slower clock for the microSD reader, but if you have good microSD cards (UHS-1 or better), there’s not much risk to overclocking the reader.
For my purposes, one of the most comprehensive benchmarks is one that tests the full LEMP stack, pegging all four CPU cores, hitting disk I/O heavily, and consuming most of the onboard RAM. I used the Drupal Pi project to quickly install the LEMP stack on the ODROID-C2, with Nginx 1.6.x, PHP 7.0.x, and MySQL 5.6.x. It installs a copy of Drupal 8.0.5, which can be a pretty heavyweight application if you bypass all of Drupal’s caching. Here are the results:
The raw stats:
The ODROID-C2 is almost 40% faster than the Pi 3 across the board… meaning I’m a little bit tempted to switch a couple of the Pis in my existing Pi Dramble out with ODROID-C2s, just for the nice speed boost! Here are the full Drupal benchmarks on a Pi 2 and Pi 3 for comparison.
Note that, when measuring fully cached results—where the network bandwidth is the limiting factor—the ODROID-C2 blows the Pi out of the water, even if the Pi uses a Gigabit USB 3.0 adapter, due to the incredible speed advantage the onboard 1 Gbps Ethernet provides.
A few years into the small single-board ARM computer revolution, the playing field is starting to level out; the Raspberry Pi is perpetually the leader in terms of breadth of community and mindshare, while various clone manufacturers try to differentiate based on slightly differing feature sets and spec bumps. Some clones’ documentation and community are painfully inadequate, leading to a bad initial experience and frustration with any small issues.
The ODROID-C2 is a very solid competitor to the Raspberry Pi model 3 B, and is anywhere from 2-10x faster than the Pi 3, depending on the operation. It’s network performance, CPU performance, and 2 GB of RAM are extremely strong selling points if you thirst for better throughput and smoother UIs when using it for desktop computing. The Mali GPU cores are fast enough to do almost anything you can do on the Raspberry Pi, and the (smaller, but dedicated) community surrounding the ODROID-C2 is quick to help if you run into issues.
The ability to easily install Android or Ubuntu MATE (or one of the community distros, like ODROBIAN) is a benefit, and instructions are readily available (more so than other clones).
One of the best advantages of the C2? You can likely grab one within a few days, shipped via one of Hardkernel’s distributors. Good luck getting a Pi 3 at list price in the next few weeks!
The fact that I’m considering adding an ODROID-C2 to my Raspberry Pi Dramble cluster should indicate how highly I regard it as an alternative to the Raspberry Pi 3 for use as a headless server. For single-board beginners, and for general stability and ongoing support, you’ll have more success and happiness starting with a Pi 2 or Pi 3. But for those used to the ecosystem and the limitations of ARM-based Linux, the ODROID-C2 is a very nice product!
You can buy the ODROID-C2 from ameriDroid for $41.95.
It is based on the software “Toonz”, which was developed by Digital Video S.p.A. in Italy, customized by Studio Ghibli, and has been used for creating its works for many years. Dwango launches this OpenToonz project, in cooperation with Digital Video and Studio Ghibli.
Since the software “Toonz”, which is the original version of OpenToonz, was first used for some cuts of Princess Mononoke, it has been used in the ink and paint, color design and digital composition process(*) of almost all of works of Studio Ghibli. After “Arrietty/The Secret World of Arrietty”, it was customized inside the company, and evolved to become more usable according to its production style.
(*) The ink and paint, color design and digital composition: Processes from the scanning of hand-drawn pictures to the production of final footages
The source code of OpenToonz can be modified freely, based on the license(*). It can be used by anyone free of charge, no matter whether the purpose of use is commercial or not. It can be used in all kinds of scenes, such as professional production, amateur production, and school education.
(*) For further information on the license of the software (installer), see the rules of use of OpenToonz. Its source code is available under the terms of the New BSD License.
OpenToonz is equipped with the unique functions that have been improved repeatedly based on the opinions of production staff, including the scanning tool “GTS” specializing in animation, which was developed in Studio Ghibli. For details, see “Introduction of the functions unique to OpenToonz” written below.
Dwango newly developed SDK, a plug-in effect for image processing for OpenToonz. By using SDK, anyone can add effects to OpenToonz. Video expression researchers can receive swift feedback from on-site workers, by developing and releasing their outcomes as plug-in effects.
By using the plug-in effect SDK, the effects developed by Dwango’s machine leaning research and development team are released. They include the effect of automatically changing picture styles by applying the deep learning technology and the effect of producing affected incident light like those in classic works before the digitization of the production environment.
Please download OpenToonz, GTS, or effects via PC browser.
※ GTS is available for Windows only
The requirements for using OpenToonz comfortably are as follows:
The requirements for using GTS comfortably are as follows:
Thank you very much for having interests in OpenToonz. If you want to interview us, please contact the following.
This address is exclusively for inquiries from the media. We will not respond to inquiries from anyone other than media staff. We would appreciate your understanding.
When you’re new to the analytics ecosystem, it’s easy to get overwhelmed by all of your options for getting up and running. This is especially true when it comes to picking the right foundational technology: the database.
When it comes to finding the right database for the job, there are a few good rules of thumb.
Unpredictable queries are almost always the root cause of database performance problems. If no one queried your database, then your performance metrics would be great. To make unpredictable queries predictable you need to take as much on-the-fly computation out of the system as you can.
To do that, you’ve got to anticipate what your users are going to ask for and have it ready (or as close to ready as possible) ahead of time. If you’re consistently able to have those answers ready, then consider a database with semantics to match.
Each database is built for its own unique type of workload. Its authors have made intentional trade-offs to make their database good at some things while sacrificing flexibility or performance in other categories.
For example, Riak was built to get large chunks of data in and out very quickly. It isn’t necessary for Riak to understand the semantics of the data in order to do that, so it isn’t optimized to do so. That’s why Riak isn’t a good choice if you need to do aggregations like SUM, MIN, MAX, and so on at query time.
When you start with the end in mind and have a good notion of how your data is going to be accessed, you should be able to pick a database that best matches that pattern.
Networks are getting faster every day. Even SAN-based disks like EBS are a significantly wider bottleneck than they used to be. That said, the key to building performant services involving disk access is to read from the disk in a predictable way.
Consider, for example, that you’re using Postgres. If your query pattern calls for aggregating a few hundred rows that are neatly organized on pages, you’ll get (mostly) consistent performance. If the number of rows that you need to aggregate is unbounded, or if you’re not predictably accessing pages, you’ll have a lot of problems.
That said, memory is much faster than disk—but it’s also really, really expensive. If your data set is small (or you’re willing to pay a premium to buy enough memory for larger data sets), then serving your data out of memory will give you significant performance improvements.
Data isn’t actually useful unless it’s in a database. Too often, engineers forget about the process of loading data and end up with performance bottlenecks because the database is so busy servicing writes that it can’t service reads.
The good news is that you can predict writes much better than you can reads. In most cases, you’re better off issuing writes in large, infrequent batches than trying to do many small, frequent writes. Another effective strategy is to use a queue to buffer writes as a mechanism for throttling throughput.
In extreme scenarios, it might be worthwhile to have two database clusters: one for writing to, and one for reading from. The clusters’ built-in replication can act as a buffer or throttling mechanism.
Now that you know the key considerations for selecting a database, here are a few categories and vendors to get you started on your way.
Examples: Postgres, MySQL, MongoDB, MSSQL
These are mostly relational databases, with the exception of MongoDB. All of these databases work well serving small- to large-sized data sets in a high-throughput environment with multiple query patterns. They also all support some type of secondary indexing, which makes it easy to add new methods for accessing your data quickly.
It’s worth noting that this type of database can be problematic for very large data sets, or for workloads distributed across multiple machines (again, with the exception of MongoDB, which natively supports clustering—but in a somewhat weird way).
Examples: Cassandra, DynamoDB, HBase, BigTable
These databases are much like their relational cousins, but forego certain features in order to make it possible to scale out across a cluster. Each has its own set of tradeoffs and features, so be sure to investigate them individually.
Examples: Redis, Riak, S3, SimpleDB
These databases are best suited for when you know exactly what data you want to look up. Even though some of them support secondary indexes, you should consider them in the context of being key-value only.
The main considerations in this category will be level of scale and read consistency. Redis is highly consistent, but can’t handle very large data sets. Alternately, Riak can scale out to whatever your ops team can handle—but sometimes it’ll take a bit before you can read what you just wrote.
Examples: Impala, SparkSQL, BigQuery, Redshift, Hive, Presto
Traditionally, MPP databases have been deployed when in-house analyst teams need the ability to slice-and-dice (very, very large) data sets at will. Concurrent reads to these types of databases were very limited.
However, offerings like Impala, Redshift, and Presto are starting to change this. Their features that make it possible to use these technologies in user-facing applications.
Similarly, these tools have traditionally only been made available to enterprises willing to sign long contracts with huge price tags. But new candidates like Redshift and BigQuery are upsetting this model by making technology available to anyone with a credit card.
Once you’re up and running with the right database, it’s time to see the results of your analytics. That’s where Reflect comes in, making it possible to build beautiful and engaging data visualization interfaces in minutes. Want to see it in action? Request access today.
Please enable JavaScript to view the comments powered by Disqus.
As Google Docs evolves, you may discover that the things you know about Google Docs are no longer valid assumptions.
Jenkins 2.0 is currently in beta . We encourage you to download it, try it out, and give us your feedback but for production systems please continue to use the current LTS release. |
Jenkins is an open source automation server with an unparalleled plugin
ecosystem to support practically every tool as part of your delivery
pipelines. Whether your goal is continuous
integration,
continuous delivery or
something else entirely, Jenkins can help automate it.
Jenkins 2.0 brings Pipeline as code, a new setup experience and other UI
improvements all while maintaining total backwards compatibility with
existing Jenkins installations.
As organizations of all types seek to deliver high quality software faster,
their use of Jenkins is extending beyond just continuous integration (CI) to
continuous delivery (CD). In order to implement continuous delivery, teams
need a flexible way to model, orchestrate and visualize their entire delivery
pipeline.
Jenkins 2.0 supports delivery pipelines as a first-class entity. The Pipeline
plugin introduces a domain-specific language (DSL) that helps Jenkins users to
model their software delivery pipelines as code, which can be checked in and
version-controlled along with the rest of their project’s source code.
The expressive domain-specific language makes it easier and faster to create
a simple “build, test and deploy” pipeline or build advanced pipelines. The
end result is improved productivity for teams.
Jenkinsfile
.
The abundant plugin ecosystem means that new Jenkins users must navigate
through long lists of plugins to find the most suitable plugins to match
their needs. Without any “batteries included” to address the most common needs,
getting started with Jenkins can be an intimidating experience.
For new users, Jenkins 2.0 starts up with suggested plugins to get them
started with the right set of tools to use Jenkins effectively from day one.
There are a number of user interface improvements, such as the
improved job configuration page, to make configuring jobs easier.
Jenkins 2.0 is a drop-in replacement of the Jenkins 1.x series of releases
and fully backward compatible. There is practically no reason not to
upgrade once 2.0 is released.
We’re very interested in your feedback on what you think of the Jenkins 2.0 beta release.
To experience Jenkins 2.0 properly, we recommend you set up
a different Jenkins home directory
. This way, you’ll both get to try the new setup, and keep your production instance
safe from possible issues.
When you’re working with connected devices or home automation projects on the Raspberry Pi, it’s important to lock down your Raspberry Pi so it’s secure. Over on Hackster.io, they show you exactly how to that.
One in five Windows-powered devices steered to a host of U.S. government websites in March ran Windows 10, according to preliminary data.
For the first time, Windows 10 accounted for more than one-fifth of the visits to sites tracked by the Digital Analytics Program (DAP), which mines traffic to more than 4,000 websites on over 400 different domains maintained by U.S. government agencies, such as the Internal Revenue Service and the National Weather Service.
The bulk of the visits to DAP websites originate in the U.S.
Through Thursday, Windows 10 recorded 20.2% of visits in March by Windows PCs, smartphones and tablets. That was a one-percentage point increase from February and more than two percentage points above January’s.
To read this article in full or to leave a comment, please click here
Proudly powered by WordPress | Theme: Baskerville 2 by Anders Noren.