We open-sourced the bytemine manager!

Posted by Felix Kronlage Tue, 02 Mar 2010 12:36:00 GMT

Now that CeBIT 2010 has started, we finally can announce the things we have planned for quite a while. The first big news (and there is more to come!) is:

bytemine-manager is now open-source!

bytemine-manager is the only cross-platform OpenVPN-administration software and we’ve completly released it under the BSD license.

You can get the source from here on github! Along with the bytemine-manager we also open-sourced a piece of software for multiplexing uni-/bidirectional streams onto stdin/stdout (called ut). Typically used via the secure shell protocol, it provides a means to, e.g., simultaneously control multiple OpenVPN servers via their management interface using one secure channel. You can find the source code to ut here on github as well.

Binary packages for the bytemine manager are linked from our download page. Packages for ut are going to be released within the next days.

You can find us at the CeBIT 2010 in Hall 6, Stand A36. We are looking forward to meet you there!

Yes, we can! English website available

Posted by Daniel Rauer Mon, 22 Feb 2010 06:51:00 GMT

Well, we finally realized what has been long overdue: Our website is available in english!

With english being the primary language in your browser, you should automatically be redirected to the english version, if not there is a language switcher.

There is not really much to say except: Sorry it took us so long. After providing our software in english along with english manuals, blog posts, and a growing number of international customers and partners it was necessary to set this important step towards lowering the barrier for English-speaking people to get in touch with bytemine.

If you enjoy our english website, you likely are looking forward to our shop being available in english soon as well. We’re working on this and as soon as CeBIT has passed by can devote more time to it.

bytemine started into the conference season 2010

Posted by Felix Kronlage Fri, 19 Feb 2010 04:23:00 GMT

Last saturday bytemine started into the conference season 2010. Well, not quite. We’ve started into the conference season as an exhibitor. The visiting conference schedule was begun by Bernd attending Fosdem 2010.

At the 4. Linux-Informationstag Oldenburg (“4th Linux-Informationday”) we’ve been one of the main sponsors, while this is a local and regional event for us it is like a homecoming game, as it is the only linux event in Oldenburg.

The day itself was quite nice. It is always good to hear how much visitors like the way we represent the company and our products.

Felix gave a presentation on OpenVPN and also represented the german OpenVPN Association. The slides from his (my) talk can be found on our website.

By the way, we do sell the ‘bytewear’ visible on the photo. We have hoodies, polos, various shirts and even bathrobes. This as a small note until we finally get around to add them to our online shop.

Next stop on our conference schedule: CeBIT 2010.

bytemine manager 1.3

Posted by Felix Kronlage Wed, 17 Feb 2010 09:40:00 GMT

Last week we released the new version of the bytemine manager. We’ve been working on the new manager release since our bytemine hackathon in the beginning of november.

Main focus of the development was to greatly enhance usability. Furthermore we’ve added features and followed up on feature requests we got from our customers. One of the most visible changes is the new tab in which we display users and servers in a tree like structure:

A toolbar has been added to the control center. Furthermore informations like the IP address of the client within the VPN.

Already an extract from the changelog reads quite impressive:

  • Tree based configuration and assignment of users to servers (and vice versa)
  • Simplified configuration
  • Dialogs became more explicit
  • Behaviour of User and Server handling has been made more alike
  • A toolbar has been added to the control center
  • For each connected user, the IP within the VPN is now displayed. In case of bridged users the Virtual MAC is displayed
  • It is now possible to print tables and user data
  • One-click synchronization of all configured servers added
  • The manager does an automatic restart after changing the database.
  • Certificate Revocation List (CRL) can now be opened in a separate tab
  • The importer has turned into a real import wizard
  • Add the option to re-enable a revoked certificate.
  • Allow spaces in username in update validation.
  • Menu item for exporting all certificates into the EXPORT_PATH.

The eval version is available through our Online Shop (for free of course), as well as through our product portal.

Soekris and Alix Kits

Posted by Felix Kronlage Sun, 07 Feb 2010 20:43:00 GMT

Ever since we started selling Soekris systems, people would forget to order a power supply with it. To the point at which we now always ask whether or not a power supply is needed. I really wonder why it took until today, that we actually start offering them bundled. So, there is now a bundle with a Soekris 5501-70 in the desktop case, one 2.0A power supply as well as a SanDisk 2GB compact flash.

We made the same style bundle for the PC Engines Alix 2d13 system as well.

You can find all the bundles in the bundle section of our shop.

I did wonder previously whether this would also make sense for the 19” variant. Any opinions?

[DE] bytemine auf dem 4. Linux-Informationstag Oldenburg

Posted by Felix Kronlage Thu, 04 Feb 2010 09:09:00 GMT

Am 13. Februar 2010 findet in Oldenburg wieder der Linux-Informationstag statt. Die Veranstaltung findet wie die letzten Male in den Räumen des KDO (Zweckverband Kommunale Datenverarbeitung Oldenburg) statt. Eine Anfahrtsbeschreibung findet sich hier.

Als Unternehmen aus Oldenburg begrüßen wir das Engagement der Organisatoren und unterstützen die Veranstaltung so weit wie möglich.

bytemine wird auf dem 4. Linux-Informationstag mit einem Stand sowie einem Vortrag präsent sein. An unserem Stand werden wir unter anderem die kommende Version des bytemine manager präsentieren, sowie auch unsere bytemine openbsd appliance ausstellen. Einen Prototyp der kommenden Erweiterung der Hardware-Plattform der bytemine openbsd appliance werden wir ebenfalls vorstellen.

Seit heute ist auch das Vortragsprogramm veröffentlicht. Ich werde einen Vortrag zum Thema OpenVPN halten. Inhaltlich liegt der Schwerpunkt hierbei auf Einsatzszenarien abseits von “08/15” Setups. So behandelt der Vortrag unter anderem auch die Authentifizierung gegen LDAP.

Wie die letzten Jahre sind wir auch wieder finanzieller Unterstützer der Veranstaltung, zusätzlich freuen wir uns darüber, dass wir den Linux-Informationstag dieses Jahr auch mit dem Hosting der Webseite unterstützen können.

bytemine is starting into 2010

Posted by Felix Kronlage Thu, 14 Jan 2010 11:09:00 GMT

An exciting and interesting year has started for us at bytemine. There are many items on our agenda for this year, especially regarding our product development. Not only there is a list of products we will be releasing over the year, but also we’re going new ways on how we develope these. Bernd Ahlers will hopefully elaborate in another blogpost on how we introduce behaviour driven as well as test driven development. (BDD and TDD).

As a new years present to our customers, we’ve released the 1.4 version of our bytemine openbsd appliance software, bringing once again lots of new features. There is a Changelog available. Among the features, is also support for the uthum(4) USB temperature sensors, we’ve backported the driver from OpenBSD-current.

bytemine openbsd appliance - version: 1.4.5 [1209]

hanah $ sysctl | grep uthum
hw.sensors.uthum1.temp0=28.36 degC (temp)
hw.sensors.uthum1.percent0=11.50% (humidity)

Right after releasing 1.4 we’ve had some other things to keep us busy. Since the year also started with moving into new rooms. In order to have more space we’ve moved into the new building of the technology center, where we have our office since 2005.

Here are a couple of pictures of two of the new rooms. The developers office, with one of our mascots already up (while the rest is still pretty rough :)

For the first time, we have a meeting room on our own. Well, it is not supposed to be a solemnly meeting room, but furthermore space where one can relax, read and code in a relaxed environment.

Pictures of the other office will follow, once everything is in place.

The conference schedule is about to start with the 4. Linux-Informationstag which will happen in Oldenburg on the 13th of February. Next item on the conference schedule is then our first appearance at the world’s largest IT fair, CeBIT 2010. For CeBIT we have some nice new product announcements up our sleeve, so you should definitly stop by our booth there (Hall 6). Right after CeBIT, there will be the Chemnitzer Linuxtage, where we will have a booth, just like last year.

Of course a new year has also started in regards to the services and hosted solutions we provide. We’ve started to provide the groupware Zarafa as a hosted solution. Each setup gets a Xen (and possibly KVM) instance with the zarafa version best suited for their needs. We’re also looking into adding more types of databases to our hosting environment, considering at least CouchDB.

This only being a subset of what is planned for 2010, you can see this will be an interesting year!

[DE] bytemine hinter den Kulissen: Miniaturwunderland und "Wetten dass" Aussenwette

Posted by Felix Kronlage Sun, 13 Dec 2009 19:28:00 GMT

Die Aussenwette der Fernsehsendung “Wetten dass?” fand letzte Woche bei einem unserer Kunden, dem Miniatur Wunderland in Hamburg statt. Aufgrund der hohen Einschaltquote bei dieser Sendung wurden im Vorfeld vom Miniatur Wunderland diverse Vorbereitungen für den erwarteten Besucheransturm auf die Webseite getroffen.

Die Webseite vom Miniatur Wunderland basiert auf dem Content-Management System typo3 und läuft auf einem Cluster von Webservern mit vorgeschaltetem Loadbalancer und separaten Datenbankservern. Das ganze wird bei n@work in Hamburg gehostet. Im Rahmen unser Zusammenarbeit mit dem Miniatur Wunderland beraten wir von bytemine (in Bezug auf die Webpräsenz) unter anderem wenn es um Details der Realisierung, Skalierung und Sicherheit des Setups, sowie um weiterführende Maßnahmen geht.

Im Vorfeld der Aussenwette wurde von n@work ein Reverse-Proxy, varnish, vor das Setup geschaltet. Zusätzlich wurde der Datenbank-basierte Counter (unten links auf der Einstiegsseite) auf eine XEN-Instanz bei bytemine ausgelagert. Bisher war immer die maximale Anzahl an möglichen Verbindungen zu den Backend-Datenbankservern der Flaschenhals. Um möglichst viele aktive Verbindungen haben zu können, haben wir zusätzlich an verschiedenen Parametern im MySQL Server gedreht um inaktive Verbindungen schneller zu trennen.

wait_timeout            = 60
connect_timeout         = 10
interactive_timeout     = 100

Thorsten Veith, massgeblich an der Typo3-Umsetzung der Webseite beteiligt, hat auf seinem Blog auch eine Nachlese zur Aussenwette

Update: snakeyaml deals with custom Java objects

Posted by Daniel Rauer Thu, 10 Dec 2009 23:55:00 GMT

Andrey, the owner of snakeyaml, has written a reply to our latest blogpost :
In record time he patched snakeyaml to be compliant with our example of a Ruby-generated yaml file. By defining some conversion directives like

addTypeDescription(new TypeDescription(Sub1.class, "!ruby/object:Test::Module::Sub1"));
to the parser and
addClassTag(Sub1.class, "!ruby/object:Test::Module::Sub1");
to the dumping emitter snakeyaml seems to be able to do the Ruby->Java transfer, and vice versa.

Thanks alot to Andrey, a great job in very short time!

yaml in Java and Ruby: Welcome yamlbeans!

Posted by Daniel Rauer Mon, 07 Dec 2009 13:26:00 GMT

During our hackathon at the North Sea Bernd and I were thinking about how to share objects between Java and Ruby. We had to decide between JSON and YAML, both very powerful, slim and well supported in both languages.
YAML has won the award, because there are no major differences between YAML and JSON, and Ruby offers excellent support for YAML.
So, the Ruby side was done, now we came to the Java part: Reading about Java and YAML you will always find the following libraries:
- JvYaml
- JYaml
- snakeyaml

To make a long story short: None of them work out of the box for our purposes, which is importing a Ruby generated YAML into JAVA, generating the Java beans and write back these beans as YAML our Ruby app can parse. Not a big deal, you might think.
The YAML file our Ruby code produces looks quite similar to this one:

--- !ruby/object:Test::Module::Object
  sub1: !ruby/object:Test::Module::Sub1
    subsub1s:
    - !ruby/object:Test::Module::Sub1::SubSub1
      att1: []
      att2: true
      att3: 11111
      att5:
    att1: []
    att2: 0
    att3: []
  sub2: !ruby/object:Test::Module::Sub2
    att1: MyString
    att2:
    - entry1
    att3: 12345
    subsub2: !ruby/object:Test::Module::Sub2::SubSub2
      att1: true
      att2: true



JvYaml was the first we tried: The code to generate the beans out of the YAML should be easy like that:

Module module = (Module)YAML.load(new FileReader("example.yml"));
Result:
java.lang.ClassCastException: org.jvyaml.PrivateType cannot be cast to net.bytemine.jvyaml.Module
To come to its defense: JvYaml is no longer supported, last version is from september 2006, and it is not documented :(



This was leading us to JYaml, also with a very slim api:

Module module = Yaml.loadType(new File("example.yml"), Module.class);
This produces an instance of the Module class, but none of its attributes or subclasses where instanciated. Also gambling around with the jyaml.yml config file did not work any better.
Result: JYaml is better maintained (last release in august 2007 ;) ), and much better documented than JvYaml. But still not working for us.



snakeyaml:

Config config = (Config)new Yaml().load(new FileInputStream(new File("example.yml"))); 
produces the following error:
Can't construct a java object for !ruby/object:Test::Module::Object; exception=Class not found: st::Module::Object
Because snakeyaml seems to have a syntactical problem with this YAML document we did no further investigations on snakeyaml. But: It is very well documented, at just yesterday somebody was committing something to the project. Perhaps snakeyaml will become more interesting by the time.



The solution:
Late at night I stumbled over a different project: yamlbeans. This library seemes to be highly flexible in its configuration and is documented in an excellent manor. So I gave it a try, and after some reading and testing I finally was able to extract our whole class hierarchy from the YAML. Even better: The exported YAML looked quite like the original. After patching three lines of code into the library we finally got the solution on how to exchange objects between both worlds.
This patch has been already applied to the newest version 1.0 by Nate, who is the maintainer and author of yamlbeans.

And finally here is the code doing the job for us:

YamlReader reader = new YamlReader(new FileReader("example.yml"));
reader.getConfig().setClassTag("ruby/object:Test::Module::Object", Module.class);
reader.getConfig().setClassTag("ruby/object:Test::Module::Sub1", Sub1.class);
...
Module module = reader.read(Module.class);

YamlWriter writer = new YamlWriter(new FileWriter("example-out.yml"));
// writes also false values
writer.getConfig().writeConfig.setWriteDefaultValues(true);
// writes root tag with prefix '--- '
writer.getConfig().writeConfig.setExplicitFirstDocument(true);
// writes out every unknown classname
writer.getConfig().writeConfig.setAlwaysWriteClassname(true);
writer.getConfig().setClassTag("ruby/object:Test::Module::Object", Module.class);
...
writer.write(module); 
writer.close();

Thanks again to Nate of the yamlbeans project, he did an excellent job!

Older posts: 1 2 3 ... 7