Planet Linux Australia
After asking for an extra pillow (the one that was already in the room just didn’t work well, it’s as flat as a Macbook Air), I had a good sleep last night.
I have been hiding in the gaming miniconf pretty much the whole day. It was all fun and cool. In particular the Crayon project, which is supposed to turn a simple photo or drawing into some sort of games, sounded very interesting. Unfortunately due to time constrains there wasn’t a demo. It might be shown on the open day however.
Another interesting one would be Rusty’s wiimote project, which will hopefully be ready to for demo on the open day as well.
After seeing lots useful and cool stuff people have been doing using the Google Map API, I was inspired to write something perhaps to plot buildings/models I have been/will be doing for FlightGear. While trying the API out a bit, an idea striked my head. What about a real time map for the FlightGear multiplay server air traffic map?
I also ended up writing my own routines for map overlays displaying plane markers and info, instead of using the GMAPI’s GMarker. A bit more flexible, and it does exactly what I want.
And there you go, the FlightGear server online map. A couple of FlightGearers have been using it as a flying map and as a simple ATC radar. If it’s the right time you’ll see us flying!
I’ve got plans to add more features, like airports/navids lookup. And of course, improving the usability and UI is always on the plate. Comments are also welcomed…
Also thanks to everyone who has helped me with testing and giving suggestions to the page. (ampere, AJ, thorben, vivian, gorilla, Surge, johnh51, MasseR, etc)
This is a test…
Well, not really.
I was looking for an alternative to posting blog entries using the web interface, and was randomly trying a few apps in Debian. There were drivel and gnome-blog but they don’t seem to support tags. BloGTK seems to, but there’s something weird about how it does, and it doesn’t support multiple categories. BloGTK is also being removed from Debian.
Then I came across vimpress – a vim plugin for wordpress. It’s simple, but it does what I needed. You can get a list of your blog entires, post a new blog, or even edit an existing blog. So I’m testing it with this blog entry and see how it goes.
The only small rant, not to vimpress, but to Debian’s vim, is that vimpress needs vim’s python support, but it’s not built into the vim.basic binary, which I prefer over vim.gtk or vim.gnome. One of the reasons is when I ctrl-z to background vim, and then foreground it (fg), it sometimes (not all the time) gets stuck unless I hit ctrl-c. This does not happen with vim.basic, but only vim.gtk and vim.gnome.
I did try to trace it and it is when the function mch_suspend calling pause(), which causes vim to wait for a signal.
Perhaps I should report to vim later…
And so does everyone else. Simply apt-get install ipkungfu.
I’ve finally switched my gateway box from my 12 years old Pentium (I) 166MHz gateway box (still running Debian potato, kernel 2.2. This is Linux for you, when it works, it can work forever…), to my 5-6 years old Netwinder.
I was also very glad that the Netwinder is now (or still) officially supported by Debian. I had Debian potato installed on it for years. Upgrading it was painless.
My old gateway box was running such an old kernel, and the firewall was one of those copied-from-others script using ipchains. This time I decided to use a better way to manage my firewall rules. After a bit of research and trying things out, I’ve chosen ipkungfu. Again, it was painless to setup.
The only not-so-good bit was, I did the machine switching-over only 1 day before I went away. So as it turned out, my net connection went down in about 2 days time. I always have some scripts checking if the net is up or not, and it would reset everything (bringing down/up the interface, renewing IP, relogging on, etc). But looks like that wasn’t helping either. So I thought it might be one of those cable-modem-needed-to-be-reset situation.
I asked my uncle to power cycle the cable modem for me. And just to be safe I asked him to do the same for the gateway box too. As expected my net connection went up again. And I was happy, for a while.
Who would have thought, it went down again. Suspiciously, it also only stayed up for about 2 days. My instinct told me it wasn’t a coincident. A few days later my uncle again power cycled the modem.
I got on and check the logs again and found that my firewall was blocking (and logging) a lot of IGMP packets from some mysterious 10.x.x.x (Telstra internal network instruments) IP. It’s strange though, I haven’t seen these logs when I was testing the net. So apparently just the bpalogin client heartbeat is not enough. Seems that without the IGMP packet response (or how-ever IGMP works), after a certain timeout period (2 days?) the other end terminates the net connection and stops leasing IP, even if the cable modem is on or even there are existing network connections. So of course, I’ve then updated my firewall rules.
Lesson learnt, testing the net for 1 day is not enough, cos it will go down in 2 days ;)
Once again, many thanks to my uncle for the trouble.
The first, sorta official release of FGLive is here. FGLive – FlightGear Live is a bootable live system on CD (or any bootable medium) that boots into Linux, with FlightGear setup, ready to run. FlightGear is an open-source, multi-platform, cooperative flight simulator development project.
See screenshots and videos of FlightGear here.
After the short Linus-on-stage and Tanenbaum’s awesome keynote, I went to Albatross UAV session by John and Hugo, Tridgell’s clustering tdb, followed by Raster’s E and pants, nouveau driver, Stewart’s data eating talk, and the X monitor hotplugging by Keith Packard.
The X talk reminds me of xdmx, which works but the version I tried last time still had the nasty Xrender bug (which is apparently fixed in the development version). Also I couldn’t get any GLX direct rendering to work, even for the local native screen which I thought it would work. Someone could show me some lights? (Is it supposed to work or not?)
In the evening we had the professional networking session at the Scientia. This is actually my first time at LCA as a professional. The atmosphere there was great. There were a lot more people there than I thought it would be. Took some nice photos there too.
Photos of the 3rd day here.
There’s wireless setup at my wife’s home in Taiwan. But whenever I’m upstairs in our room I prefer using the wired connection. While when I’m downstairs I have no choice as there’s no extra ethernet port.
Switching between the two networks is not a big deal. And with the help of ifplugd, the switching is automatic. But after all, they are two different interfaces. It would be good if I could switch between them without losing any existing connections. After a bit of googling around, I’ve found one solution: Ethernet channel bonding.
From the Linux source code Documentation/networking/bonding.txt: “The Linux bonding driver provides a method for aggregating multiple network interfaces into a single logical “bonded” interface”. In my case, I’m bonding the eth0 (wired) and the eth2 (wireless) together.
Under Debian, the bonding driver is built as a module bonding. I’ve also installed the ifenslave. So I put the bonding driver into my /etc/modules so it’s loaded at system startup:bonding mode=1 miimon=500
where mode=1 sets the bonding mode to active-backup. The bonding driver also supports a few different load-balancing modes, which you might want to check out as well. miimon=500 sets the link check interval in milliseconds.
There’s also a primary parameter which you could specify which slave interface will always be used if it is available (e.g. primary=eth0).
The bonding driver gives you a new network interface bond0. Now to setup bond0, eth0 and eth2 in /etc/network/interfaces:# the wired interface iface eth0 inet manual hostname xxxxxxx # the wireless interface iface eth2 inet manual wireless-key s:xxxxxxxxxxxxx restricted wireless-essid xxxxxxxxxxxx wireless-mode managed # the bonding interface, eth0 + eth2 iface bond0 inet dhcp pre-up ifconfig bond0 up pre-up ifenslave bond0 eth0 eth2 pre-down ifenslave -d bond0 eth0 eth2
bond0 is set to use DHCP, while eth0 and eth2 are not, as they will act as slave interfaces. bond0 is the master. The 2nd pre-up command for bond0 attaches both eth0 and eth2 as slaves to the bonding device. Note that it is possible to configure a bonding device via sysfs, which is also documented in Documentation/network/bonding.txt.
While ifplugd takes care of eth0 going up and down, I also want to turn off the wireless completely when the wired network is plugged in. So I added my own script /etc/ifplugd/action.d/bonding:#!/bin/sh set -e if [ ! -f /proc/net/bonding/bond0 ]; then exit fi case "$1" in eth0) case "$2" in up) /sbin/ifdown eth2 /sbin/ifconfig eth2 down /sbin/iwconfig eth2 txpower off ;; down) /sbin/iwconfig eth2 txpower auto /sbin/ifup eth2 /sbin/ifconfig eth2 up ;; esac # I need to do this sometimes, so I've put it in # or could someone comment on this? ifdown bond0 ifup bond0 ;; esac
This script will turn off the wireless radio for me when my eth0 wired network is up.
I’m relying on ifplugd to bring up bond0, which will then bring up eth0 and eth2. Hence in /etc/network/interfaces I did not set any of the interfaces to be auto. I also added -l to the arguments of ifplugd in /etc/default/ifplugd:ARGS="-q -f -u0 -d10 -w -I -l"
so that it will run the “down” script on ifplugd startup if no cable is detected. That way my script will bring up my wireless eth2 if eth0 is not plugged, say at boot time.
With this setup, the bonding driver automatically switches to use eth0 or eth2, whichever is brought up. In my setup, eth0 and eth2 won’t be up at the same time. If you use the primary parameter, the primary slave interface will always be used, even if the other slaves become available.
/proc/net/bonding/bond0 shows the status of the bonding interface. For example I’m now on the wireless network:Ethernet Channel Bonding Driver: v3.0.3 (March 23, 2006) Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: eth2 MII Status: up MII Polling Interval (ms): 500 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth0 MII Status: down Link Failure Count: 0 Permanent HW addr: 00:11:2f:9c:57:25 Slave Interface: eth2 MII Status: up Link Failure Count: 0 Permanent HW addr: 00:11:2f:9c:57:25
It’s pretty obvious that the currently active slave is my eth2 wireless. I can run something like watch -n 1 cat /proc/net/bonding/bond0, and as I plug the ethernet cable back, the active slave will become eth0. You can also find out the currently active slave via /sys/class/net/bond0/bonding/active_slave.
For completeness, here is the output of ifconfig:bond0 Link encap:Ethernet HWaddr 00:11:2F:9C:57:25 inet addr:192.168.11.3 Bcast:192.168.11.255 Mask:255.255.255.0 inet6 addr: fe80::211:2fff:fe9c:5725/64 Scope:Link UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1 RX packets:329306 errors:0 dropped:0 overruns:0 frame:0 TX packets:329010 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:732552585 (698.6 MiB) TX bytes:204431117 (194.9 MiB) eth0 Link encap:Ethernet HWaddr 00:11:2F:9C:57:25 UP BROADCAST SLAVE MULTICAST MTU:1500 Metric:1 RX packets:303936 errors:0 dropped:0 overruns:0 frame:0 TX packets:304693 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:245381818 (234.0 MiB) TX bytes:27905638 (26.6 MiB) Interrupt:5 Base address:0xd800 eth2 Link encap:Ethernet HWaddr 00:11:2F:9C:57:25 inet6 addr: fe80::211:2fff:fe9c:5725/64 Scope:Link UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:25370 errors:0 dropped:0 overruns:0 frame:0 TX packets:24317 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:487170767 (464.6 MiB) TX bytes:176525479 (168.3 MiB) Interrupt:5 Base address:0xe000 Memory:ff9fe000-ff9fefff
which shows bond0 being the master, and eth0 and eth2 being slaves.
It almost makes plugging and unplugging the ethernet cable fun. I can just sit there and keep replugging the cable alllllll day… :)
I’ve been using this setup for at least a week now and has been working very well. Please let me know if there’s anything I’ve missed, or any even better way of setting this up.
Since the last few times when I was in HK/TW, I’ve been thinking of having a Linux live system, installed on a USB stick or Compact Flash (CF) card, so I could simply plug it to any machine (say, those m$ windows box of my parent’s or my wife’s). I had been using the Ubuntu LiveCD, and it was really great. But then of course CD access is slow, and it’s read-only.
So I bought myself a 2GB CF card when I was in HK months ago. And I’ve finally finished setting Linux up on it. Host name “Pikkoro” (yes, yet another machine named after Dragon Ball characters), got Debian Etch (testing) installed, have it booting and running my own Linux system using a USB-CF card reader.
For those who are not familiar with the idea of a “live” system, it is basically an operating system (Linux in this case) installed on any media that can be used to boot on a computer. We all know the common setup of your computer booting the OS installed on your harddisk. So your harddisk is “bootable”. These days most computers can boot not only from a harddisk, but also from a CD/DVD, or a USB storage device (aka USB drive/stick). A live system would mean the OS/system can be run without installation. It won’t touch your harddisk (unless you want to).
So in my case, I have Linux installed and setup on my CF card, which can be plugged to a computer via a USB-CF card reader. The reason why i didn’t use a USB stick/drive is so I can use/read it on my iPAQ too, which has a CF slot.
Getting a Linux live system to work is pretty easy if you’re familiar with how Linux boots and how Debian works. Nevertheless I did some searches and reading on what other people have been doing, and I found this mini guide. What interested me is the localepurge package in Debian, which saved me a some disk spaces.
One of many things during the process was picking a window manager (notice how I said “window manager”, but not “desktop environment” :) I’ve been an AfterStepper (1.8) for a long long time. When I was doing FGLive I played with fluxbox a bit and I liked it. So I’ve decided to give it a go. After fiddling with it for a while, it’s official, fluxbox is now default on my Linux live CF. Its tab feature is probably one of the coolest. My only complaint so far is it not able to switch virtual desktop by mouse, and the fact that it only has concept of linear virtual desktops it seems.
Anyway, I’m now happy that I can carry around my own Linux system anywhere I go…
One line review:
Boys Own Dale Carnegie Post-Apocalyptic Adventures with casual racism and misogyny.
That tells you everything you need to know about this book. I wasn’t expecting much from it, but it was much worse than I anticipated. I’m about half-way through it at the moment, and can’t decide whether to just give up in disgust or keep reading in horrified fascination to see if it gets even worse (which is all that’s kept me going with it so far).
PyCon Australia 2016 is pleased to announce that its Call for Proposals is now open! The conference this year will be held from Friday 12th August to Tuesday 16th August. Miniconfs and special events are held on Friday 12th. The main conference is held on Saturday 13th and Sunday 14th. Monday 15th and Tuesday 16th are developer sprints.
- Proposal submission deadline: Sunday, 8th May
- Proposal acceptance: Sunday, 29th May
PyCon Australia attracts professional developers from all walks of life, including industry, government, and science, as well as enthusiast and student developers. We’re looking for proposals for presentations and tutorials on any aspect of Python programming, at all skill levels from novice to advanced.
Presentation subjects may range from reports on open source, academic or commercial projects; or even tutorials and case studies. If a presentation is interesting and useful to the Python community, it will be considered for inclusion in the program. We're especially interested in short presentations that will teach conference-goers something new and useful. Can you show attendees how to use a module? Explore a Python language feature? Package an application?Special Events
Four special events will be held on Friday 12th August, as a prelude to the main conference. These special events are:
If your talk is targeted to a particular field, or requires a lot of prior knowledge, the special events might be a better fit than the main part of the conference.
We are running a combined call for proposals for all the special events and the main conference. In the submission form you can nominate which event(s) your proposal is targeting.First Time Speakers
We welcome first-time speakers; we are a community conference and we are eager to hear about your experience. If you have friends or colleagues who have something valuable to contribute, twist their arms to tell us about it! Please also forward this Call for Proposals to anyone that you feel may be interested.Speaker Benefits
Speakers are eligible for discounted conference registration (early bird prices) that will be waived on request. If you, or your organisation, can afford to register at full price, such payments will go directly towards our financial assistance pool to help people who could not otherwise afford to attend the conference.
You will not be automatically registered as an attendee for the conference; you will need to register yourself and failure to do so may result in loss of your talk slot(s).Financial Assistance
PyCon Australia offers a generous financial assistance programme, so that some attendees and speakers have some -- or in rare cases, all -- of their expenses such as flight, hotel and admission provided to them from the conference budget.
PyCon Australia strongly encourages people to apply for financial assistance -- even if we can’t cover all of your expenses, we will give you free or discounted admission based on need. The application process is simple, and straightforward. It’s also very liberal -- the only caveat is that accepted speakers are given priority so that we don’t lose a good talk because of financial need. We also don’t ban anyone from applying.
My "hello world" board is the above controller for a 3d printer. This is a follow up to the similar board I made to help use the CNC itself. For a 3d printer I added buttons to set Z=0.1 height and a higher Z height to aid in homing. The breakout headers on the bottom right are for the ESP8266 daughter board. The middle chip is an MCP32017 gpio extender. I've had good experiences using TWI on the ESP8266 and the MCP overcomes the pin limitations quite nicely. It also gives all the buttons a nice central place to go :)
The 3v3 regulator makes the whole show a plug in the AA pack and go type board. The on/off switch is the physical connection to an external battery.
One step closer to the design in the morning, physically create in the afternoon, and use in the evening goal.
Last Friday and Saturday we had a great time at the Kilcoy Show (that’s a few hours North of Brisbane), showing visitors 3D printing in action and answering lots of questions on that topic – we actually printed some HO-scale train gear and miniature sheep for our model railway neighbours at the show!
We also let kids have a good play with the Mirobot drawing turtle robots and enjoying our cute robotic caterpillar.The OpenSTEM booth, next to Andrew Triggs of Mt Kilcoy State School
We saw a fair amount of interest from parents and visiting teachers for our work with schools, from the workshops to our resources and complete classroom programs, of which we had some sample materials that people could browse and ask us about.
On Friday we had the opportunity to meet briefly with Deb Frecklington, QLD state MP for Nanango (Shadow Minister for Agriculture, Fisheries and Forestry), and talked about the meaning and importance of STEM. Naturally STEM is critical for our agriculture as well!Trevor Wessling (Kilcoy Show), Deb Frecklington (Nanango MP), Arjen (OpenSTEM)
Our other neighbours at the show were Mt Kilcoy State School, where teacher Andrew Triggs showed off QUT LEGO robotics. Kids enjoyed watching the Rubik cube solver – I competed with it a few times, and was done well before it was
We had the first MariaDB Berlin Meetup on Tuesday 12.04.2016 at the Wikimedia Berlin offices at 7pm. More or less there were over 54 people that attended the event, a mix of MariaDB Corporation employees and community members. We competed with the entertainment at the AWS Summit Berlin which was apparently about 400m away! Food and drink were enjoyed by all, and most importantly there were many, many lightning talks (minimum 5 minutes, maximum 10 minutes – most were about 6-7 minutes long).
The bonus of all of this? Lots and lots of slides for you to see. Grab them from the Google Drive folder MariaDB Berlin meetup April 2016.
- Monty talked about improving the speed of connections to MariaDB Server, some work he’s just pushed fairly recently to the 10.2 tree.
- Dipti spoke about MariaDB ColumnStore and it is now clear we’ll see some source/binary drop by the end of May 2016.
- Sergei Petrunia and Vicentiu Ciorbaru spoke about the upcoming window functions that MariaDB Server 10.2.0 will see (yes, the alpha should be out real soon now).
- Jan spoke about InnoDB in 10.2.
- Lixun Peng spoke about a fairly interesting feature, the idea to flashback via mysqlbinlog and how you can have a “Time Machine”. I can’t wait for flashback/time machine to appear in 10.2. The demo for this is extremely good.
- Kolbe spoke about data at rest encryption using the MariaDB Amazon AWS KMS plugin.
- Sanja and Georg went up together to speak about 10.2 protocol enhancements as well as what you’ll see in Connector/C 3.0.
- Wlad gave us a good rundown on authenticating with GSSAPI, something you will notice is also available in MariaDB Server 10.1’s later releases.
- Johan Wikman gave us an introduction to MariaDB MaxScale, which started off the talks on MaxScale.
- Markus talked about the readwritesplit plugin.
- Massimiliano went into the Binlog server.
- Martin didn’t use slides but gave us an amazing talk titled “Rival concepts of SQL Proxy”; it was very well given and I’ve encouraged him to write a blog post about it.
- Community member Ben Kochie, an SRE at SoundCloud gave us a quick talk on Monitoring MySQL with Prometheus and how much they depend on the PERFORMANCE_SCHEMA.
- Diego Dupin spoke a little about the MariaDB Java Connector, and the idea was to do a demo but the projector via HDMI seemed to be a bit wonky (this was also true of using my Mac; the VGA output however worked fine). So it was just a quick talk without any deck.
We ended with a quick Q&A session with Monty dominating it. Lots of interesting questions around why the name Maria, licensing thoughts, ensuring all the software we have are in distributions, etc. Some ended up going for pizza while others ended up in a hotel bar at the Crowne Plaza Potsdamer Platz — and the chatter went on till at least 11pm.
Thanks again to Georg Richter who found us the venue and also did a lot of the legwork with Wikimedia Foundation.
Do get started playing with MySQL Shell. If you’re using the yum repository, remember to ensure you have enabled the mysql-tools-preview in /etc/yum.repos.d/mysql-community.repo. And don’t forget to load the X Plugin in the server! I can’t wait for the rest of the blog posts in the series, and today just took a cursory look at all of this — kudos Team MySQL @ Oracle.
However, I’m concerned that the GA is getting what you would think of as more than just a maintenance release. We saw 5.7.11 get at rest data encryption for InnoDB, and now 5.7.12 getting even more changes. This is going to for example, ship in the next Ubuntu LTS, Xenial Xerus. Today it has 5.7.11, but presumably after release it will be upgrade to 5.7.12. I am not a huge fan of surprises in LTS releases (predictability over 5 years is a nice thing; this probably explains why I still have a 5.0.95 server running), but I guess this small band-aid is what we need to ensure this doesn’t happen going forward?
As for the other question I’ve seen via email from several folk so far: will MariaDB Server support this? I don’t see why not in the future, so why not file a Jira?
As promised, we delivered the OpenSTEM Digital Technologies Program for Primary Schools (F-6) to schools and individual teachers who already signed up: initial units for each year level, resource PDFs and activities, free software, a board game, optional incursions and workshops and other useful resources.
“Our goal is to make sure our students are at the cutting edge of innovation through the development of skills to become the technology architects of the digital age,” Queensland Premier Annastacia Palaszczuk said, “This will include an assessment of coding and computer science, as well as early stage robotics, something I firmly believe should be a part of our education system.”
— ‘Advance Queensland’ package announcement (July 2015)
Appreciating the very full schedule that teachers have, we have gone beyond regular integration with the initial materials for Digital Technologies (Australian Curriculum v8.1). Instead, the base fits directly within existing curricula, particularly Maths and English. So, doing the basics doesn’t cost any extra time!
That said, we also have some catching up to do. It’s no good tossing older students (or their teachers!) at more complicated problems when they don’t yet have the base level understanding or skills covered in the earlier years. So we have a catch up plan integral to our initial units.
Today’s students have been immersed in the stream of new technologies since they were born. They have much to learn, but they regard the technology itself as an entirely normal part of life and society.
To be able to guide the students, all educators now also need to go beyond using specific technologies to understanding how things work on a broader scale, and how it all fits together. So uniquely, the journey is very much a joint one and in some parts the teachers are learning along with (slightly ahead of) the students.
The more I see our teachers and students work with the programs, the more convinced I am that we have a great partnership and are doing the right thing by the kids.
— Cheryl Rowe, Principal
OpenSTEM’s related Robotics Program was recently featured on Channel TEN @ Schools coverage in Brisbane.
With schools already signed up and implementing this program in 2016, you can start any time and in a form that suits you (school wide, or individual teachers or year levels). Contact us for more details, and any questions you might have.
Feel free to ask us for a reference (teacher or principal of a school we’ve worked with).
I can't beleive I have to write this in 2016, more that twenty years after the bug in the DEC "Tulip" ethernet controller chip which created this mess.
There are only two ethernet speed and autonegotiation settings you should configure on a switch port or host:1.
Auto negotiation = on2.
Auto negotiation = off
Speed = 10Mbps
Duplex = half
These are the only two settings which work when the partner interface is set to autonegotiation = on.
If you are considering other settings then buy new hardware. It will work out cheaper.
That is all.But...
Oh, so you know what you are doing. You know that explicitly setting a speed or duplex implicitly disables autonegotiation and therefore you need to explicitly set the partner interface's speed and duplex as well.
But if you know all that then you also know the world is not a perfect place. Equipment breaks. Operating systems get reinstalled. And you've left a landmine there, waiting for an opportunity...
A goal of modern network and systems administration is to push down the cost of overhead. That means being ruthless with exceptions which store away trouble for the future.
I have never been to Sofia, Bulgaria till this past February 2016, and boy did I enjoy myself. I visited the Bulgaria Web Summit and spoke there amongst many others. A few notes:
- Almost 800 people (so more than last year); hence the event was sold out
- Missed the RocksDB talk due to the massive Q&A session that went on afterwards.
- Very interesting messaging
- LinvoDB (embeddable MongoDB alternative) — LinvoDB / www.strem.io
- Use case: < 1 million objects (indexes are in memory using a binary search tree; so don’t use it for more). HTML5/Electron/NW.js. Best used with AngularJS/React and maybe Meteor. Can also use NativeScript or React Native. You can use it with node.js but its not recommended for server use cases.
- Works with SQLite or LevelDB (why not RocksDB yet?). Can also use with IndexedDB/LocalStorage
- Implemented almost entirely the MongoDB query language. Gives you automatic indexes.
- FTS in memory (linvodb-fts) – uses trie/metaphone modules for node.js. Can also do p2p replication, persistent indexes, compound indexes
I enjoyed speaking about MariaDB Server as always, and its clear that many people had a lot of questions about it. Slides. Video. It was tweeted that I had to answer questions for about as long as my talk, afterwards, and it was true :)
I got to meet Robert Nyman at the social event (small world, since he works at the office where Jonas of ex-MySQL fame does). Also met someone very interested in contributing to InfiniDB. It was nice having a beer with my current colleague Salle too. And speaking to the track moderator, Alexander Todorov was also a highlight – since we had many common topics, and he does an amazing amount of work around automation and QA. His blog is worth a read.