Posted
about 9 years
ago
In recent days, various public allegations have been brought forward
against Jacob Appelbaum. The allegations rank from plagiarism to sexual
assault and rape.
I find it deeply disturbing that the alleged victims are putting up the
effort of a quite
... [More]
slick online campaign to defame Jakes's name, using
a domain name consisting of only his name and virtually any picture you
can find online of him from the last decade, and - to a large extent -
hide in anonymity.
I'm upset about this not because I happen to know Jake personally
for many years, but because I think it is fundamentally wrong to bring
up those accusations in such a form.
I have no clue what is the truth or what is not the truth. Nor does
anyone else who has not experienced or witnessed the alleged events
first hand. I'd hope more people would think about that before
commenting on this topic one way or another on Twitter, in their blogs,
on mailing lists, etc. It doesn't matter what we believe, hypothesize
or project based on a personal like or dislike of either the person
accused or of the accusers.
We don't live in the middle ages, and we have given up on the pillory
for a long time (and the pillory was used after a judgement, not
before). If there was illegal/criminal behavior, then our societies
have a well-established and respected procedure to deal with such: It
is based on laws, legal procedure and courts.
So if somebody has a claim, they can and should seek legal support
and bring those claims forward to the competent authorities, rather than
starting what very easily looks like a smear campaign (whether it is one
or not).
Please don't get me wrong: I have the deepest respect and sympathies for
victims of sexual assault or abuse - but I also have a deep respect for
the legal foundation our societies have built over hundreds of years,
and it's principles including the human right "presumption of
innocence".
No matter who has committed which type of crime, everyone deserve to
receive a fair trial, and they are innocent until proven guilty.
I believe nobody deserves such a public defamation campaign, nor does
anyone have the authority to sentence such a verdict, not even a court
of law. The Pillory was abandoned for good reasons.
[Less]
|
Posted
about 9 years
ago
I’m currently working on the Vaani project at Mozilla, and part of my work on that allows me to do some exploration around the topic of speech recognition and speech assistants. After looking at some of the commercial offerings available, I thought
... [More]
that if we were going to do some kind of add-on API, we’d be best off aping the Amazon Alexa skills JS API. Amazon Echo appears to be doing quite well and people have written a number of skills with their API. There isn’t really any alternative right now, but I actually happen to think their API is quite well thought out and concise, and maps well to the sort of data structures you need to do reliable speech recognition.
So skipping forward a bit, I decided to prototype with Node.js and some existing open source projects to implement an offline version of the Alexa skills JS API. Today it’s gotten to the point where it’s actually usable (for certain values of usable) and I’ve just spent the last 5 minutes asking it to tell me Knock-Knock jokes, so rather than waste any more time on that, I thought I’d write this about it instead. If you want to try it out, check out this repository and run npm install in the usual way. You’ll need pocketsphinx installed for that to succeed (install sphinxbase and pocketsphinx from github), and you’ll need espeak installed and some skills for it to do anything interesting, so check out the Alexa sample skills and sym-link the ‘samples‘ directory as a directory called ‘skills‘ in your ferris checkout directory. After that, just run the included example file with node and talk to it via your default recording device (hint: say ‘launch wise guy‘).
Hopefully someone else finds this useful – I’ll be using this as a base to prototype further voice experiments, and I’ll likely be extending the Alexa API further in non-standard ways. What was quite neat about all this was just how easy it all was. The Alexa API is extremely well documented, Node.js is also extremely well documented and just as easy to use, and there are tons of libraries (of varying quality…) to do what you need to do. The only real stumbling block was pocketsphinx’s lack of documentation (there’s no documentation at all for the Node bindings and the C API documentation is pretty sparse, to say the least), but thankfully other members of my team are much more familiar with this codebase than I am and I could lean on them for support.
I’m reasonably impressed with the state of lightweight open source voice recognition. This is easily good enough to be useful if you can limit the scope of what you need to recognise, and I find the Alexa API is a great way of doing that. I’d be interested to know how close the internal implementation is to how I’ve gone about it if anyone has that insider knowledge. [Less]
|
Posted
about 9 years
ago
Back in late April, the well-known high-quality SDR hardware company
Nuand published a blog post about an Open Source Release of a VHDL ADS-B
receiver.
I was quite happy at that time about this, and bookmarked it for further
investigation at some
... [More]
later point.
Today I actually looked at the source code, and more by coincidence
noticed that the LICENSE file contains a
license that is anything but Open Source: The license is a "free for
evaluation only" license, and it is only valid if you run the code on an
actual Nuand board.
Both of the above are clearly not compatible with any
of the well-known and respected definitions of Open Source, particularly
not the official Open Source Definition of the Open Source Initiative.
I cannot even start how much this makes me upset. This is once again
openwashing, where something that clearly is not Free or Open Source
Software is labelled and marketed as such.
I don't mind if an author chooses to license his work under a
proprietary license. It is his choice to do so under the law, and it
generally makes such software utterly unattractive to me. If others
still want to use it, it is their decision. However, if somebody
produces or releases non-free or proprietary software, then they should
make that very clear and not mis-represent it as something that it
clearly isn't!
Open-washing only confuses everyone, and it tries to market the
respective company or product in a light that it doesn't deserve. I
believe the proper English proverb is to adorn oneself with borrowed
plumes.
I strongly believe the community must stand up against such practise and
clearly voice that this is not something generally acceptable or
tolerated within the Free and Open Source software world. It's sad that
this is happening more frequently, like recently with OpenAirInterface
(see related blog post).
I will definitely write an e-mail to Nuand management requesting to
correct this mis-representation. If you agree with my posting, I'd
appreciate if you would contact them, too.
[Less]
|
Posted
about 9 years
ago
I've been giving a keynote at the Black Duck Korea Open Source
Conference
yesterday, and I'd like to share some thoughts about it.
In terms of the content, I spoke about the fact that the ultimate
goal/wish/intent of free software projects is to
... [More]
receive contributions
and for all of the individual and organizational users to join the
collaborative development process. However, that's just the intent, and
it's not legally required.
Due to GPL enforcement work, a lot of attention has been created over the
past ten years in the corporate legal departments on how to comply with
FOSS license terms, particularly copyleft-style licenses like GPLv2 and
GPLv3. However,
License compliance ensures the absolute bare legal minimum on engaging
with the Free Software community. While that is legally sufficient, the
community actually wants to have all developers join the collaborative
development process, where the resources for development are
contributed and shared among all developers.
So I think if we had more contribution and a more fair distribution of
the work in developing and maintaining the related software, we would
not have to worry so much about legal enforcement of licenses.
However, in the absence of companies being good open source citizens,
pulling out the legal baton is all we can do to at least require them to
share their modifications at the time they ship their products. That
code might not be mergeable, or it might be outdated, so it's value
might be less than we would hope for, but it is a beginning.
Now some people might be critical of me speaking at a Black Duck Korea
event, where Black Duck is a company selling (expensive!) licenses to
proprietary tools for license compliance. Thereby, speaking at such an
event might be seen as an endorsement of Black Duck and/or proprietary
software in general.
Honestly, I don't think so. If you've ever seen a Black Duck Korea
event, then you will notice there is no marketing or sales booth, and
that there is no sales pitch on the conference agenda. Rather, you have
speakers with hands-on experience in license compliance either from a
community point of view, or from a corporate point of view, i.e. how
companies are managing license compliance processes internally.
Thus, the event is not a sales show for proprietary software, but an
event that brings together various people genuinely interested in
license compliance matters. The organizers very clearly understand that
they have to keep that kind of separation. So it's actually more like a
community event, sponsored by a commercial entity - and that in turn is
true for most technology conferences.
So I have no ethical problems with speaking at their event. People who
know me, know that I don't like proprietary software at all for ethical
reasons, and avoid it personally as far as possible. I certainly don't
promote Black Ducks products. I promote license compliance.
Let's look at it like this: If companies building products based on
Free Software think they need software tools to help them with license
compliance, and they don't want to develop such tools together in a
collaborative Free Software project themselves, then that's their
decision to take. To state using words of Rosa Luxemburg:
Freedom is always the freedom of those who think different
I may not like that others want to use proprietary software, but if they
think it's good for them, it's their decision to take.
[Less]
|
Posted
about 9 years
ago
Have you ever used mobile data on your phone or using Tethering?
In packet-switched cellular networks (aka mobile data) from GPRS to
EDGE, from UMTS to HSPA and all the way into modern LTE networks, there
is a tunneling protocol called GTP (GPRS
... [More]
Tunneling Protocol).
This was the first cellular protocol that involved transport over
TCP/IP, as opposed to all the ISDN/E1/T1/FrameRelay world with their
weird protocol stacks. So it should have been something super easy to
implement on and in Linux, and nobody should have had a reason to run a
proprietary GGSN, ever.
However, the cellular telecom world lives in a different universe, and to
this day you can be safe to assume that all production GGSNs are
proprietary hardware and/or software :(
In 2002, Jens Jakobsen at Mondru AB released the initial version of
OpenGGSN, a userspace
implementation of this tunneling protocol and the GGSN network element.
Development however ceased in 2005, and we at the Osmocom project
thus adopted OpenGGSN maintenance in 2016.
Having a userspace implementation of any tunneling protocol of course
only works for relatively low bandwidth, due to the scheduling and
memory-copying overhead between kernel, userspace, and kernel again.
So OpenGGSN might have been useful for early GPRS networks where the
maximum data rate per subscriber is in the hundreds of kilobits, but it
certainly is not possible for any real operator, particularly not at
today's data rates.
That's why for decades, all commonly used IP tunneling protocols have
been implemented inside the Linux kernel, which has some tunneling
infrastructure used with tunnels like IP-IP, SIT, GRE, PPTP, L2TP and
others.
But then again, the cellular world lives in a universe where Free and
Open Source Software didn't exit until OpenBTS and OpenBSC changed all o
that from 2008 onwards. So nobody ever bothered to add GTP support to
the in-kernel tunneling framework.
In 2012, I started an in-kernel implementation of GTP-U (the user
plane with actual user IP data) as part of my work at sysmocom. My former netfilter colleague and current
netfilter core team leader Pablo Neira was contracted to bring it
further along, but unfortunately the customer project funding the effort
was discontinued, and we didn't have time to complete it.
Luckily, in 2015 Andreas Schultz of Travelping came around and has forward-ported the old
code to a more modern kernel, fixed the numerous bugs and started to
test and use it. He also kept pushing Pablo and me for review and
submission, thanks for that!
Finally, in May 2016, the code was merged into the mainline kernel,
and now every upcoming version of the Linux kernel will have a fast and
efficient in-kernel implementation of GTP-U. It is configured via
netlink from userspace, where you are expected to run a corresponding
daemon for the control plane, such as either OpenGGSN, or the new GGSN +
PDN-GW implementation in Erlang called erGW.
You can find the kernel code at drivers/net/gtp.c,
and the userspace netlink library code (libgtpnl) at git.osmocom.org.
I haven't done actual benchmarking of the performance that you can get
on modern x86 hardware with this, but I would expect it to be the same
of what you can also get from other similar in-kernel tunneling
implementations.
Now that the cellular industry has failed for decades to realize how
easy and little effort would have been needed to have a fast and
inexpensive GGSN around, let's see if now that other people did it for
them, there will be some adoption.
If you're interested in testing or running a GGSN or PDN-GW and become
an early adopter, feel free to reach out to Andreas, Pablo and/or me.
The osmocom-net-gprs mailing list might be a good way to discuss further development and/or testing.
[Less]
|
Posted
about 9 years
ago
According to some news report, including this report at softpedia,
a 26 year old student at the Faculty of Criminal Justice and Security in
Maribor, Slovenia has received a suspended prison sentence for finding
flaws in Slovenian police and army
... [More]
TETRA network using OsmocomTETRA
As the Osmocom project leader and main author of OsmocomTETRA, this
is highly disturbing news to me. OsmocomTETRA was precisely developed
to enable people to perform research and analysis in TETRA networks, and
to audit their safe and secure configuration.
If a TETRA network (like any other network) is configured with broken
security, then the people responsible for configuring and operating that
network are to be blamed, and not the researcher who invests his
personal time and effort into demonstrating that police radio
communications safety is broken. On the outside, the court sentence
really sounds like "shoot the messenger". They should instead have
jailed the people responsible for deploying such an insecure network in
the first place, as well as those responsible for not doing the most
basic air-interface interception tests before putting such a network
into production.
According to all reports, the student had shared the results of his
research with the authorities and there are public detailed reports from
2015, like the report (in Slovenian) at
https://podcrto.si/vdor-v-komunikacijo-policije-razkril-hude-varnostne-ranljivosti-sistema-tetra/.
The statement that he should have asked the authorities for permission
before starting his research is moot. I've seen many such cases and you
would normally never get permission to do this, or you would most
likely get no response from the (in)competent authorities in the first
place.
From my point of view, they should give the student a medal of honor,
instead of sentencing him. He has provided a significant service to the
security of the public sector communications in his country.
To be fair, the news report also indicates that there were other charges
involved, like impersonating a police officer. I can of course not
comment on those.
Please note that I do not know the student or his research first-hand,
nor did I know any of his actions or was involved in them. OsmocomTETRA
is a Free / Open Source Software project available to anyone in source
code form. It is a vital tool in demonstrating the lack of security in
many TETRA networks, whether networks for public safety or private
networks.
[Less]
|
Posted
about 9 years
ago
by
[email protected] (zecke)
In the past I have written about my usage of Tufao and Qt to build REST services. This time I am writing about my experience of using the TreeFrog framework to build a full web application.You might wonder why one would want to build such a thing in
... [More]
a statically and compiled language instead of something more dynamic. There are a few reasons for it:
Performance: The application is intended to run on our sysmoBTS GSM Basestation (TI Davinci DM644x). By modern standards it is a very low-end SoC (ARMv5te instruction set, single core, etc, low amount of RAM) and at the same time still perfectly fine to run a GSM network.
Interface: For GSM we have various libraries with a C programming interface and they are easy to consume from C++.
Compilation/Distribution: By (cross-)building the application there is a "single" executable and we don't have the dependency mess of Ruby.
The second decision was to not use Tufao and search for a framework that has user management and a template/rendering/canvas engine built-in. At the Chaos Computer Camp in 2007 I remember to have heard a conversation of "Qt" for the Web (Wt, C++ Web Toolkit) and this was the first framework I looked at. It seems like a fine project/product but interfacing with Qt seemed like an after thought. I continued to look and ended up finding and trying the TreeFrog framework.
I am really surprised how long this project exists without having heard about it. It is using/built on top of Qt, uses QtSQL for the ORM mapping, QMetaObject for dispatching to controllers and the template engine and resembles Ruby on Rails a lot. It has two template engines, routing of URLs to controllers/slots, one can embed any C++ in the template. The documentation is complete and by using the search on the website I found everything I was searching for my "advanced" topics. Because of my own stupidity I ended up single stepping through the code and a Qt coder should feel right at home.
My favorite features:
tspawn model TableName will autogenerate (and update) a C++ model based on the table in the database. The updating is working as well.
The application builds a libmodel.so, libhelper.so (I removed that) and libcontroller.so. When using the -r option of the application the application will respawn itself. At first I thought I would not like it but it improves round trip times.
C++ in the template. The ERB template is parsed and a C++ class will be generated and the ::toString() method will generate the HTML code. So in case something is going wrong, it is very easy to inspect.
If you are currently using Ruby on Rails, Django but would like to do it with C++, have a look at TreeFrog. I really like it so far.
[Less]
|
Posted
about 9 years
ago
Right now I'm feeling sad. I really shouldn't, but I still do.
Many years ago I started OpenBSC and Osmocom in order to bring Free
Software into an area where it barely existed before: Cellular
Infrastructure. For the first few years, it was "just
... [More]
for fun", without
any professional users. A FOSS project by enthusiasts. Then we got
some commercial / professional users, and with them funding, paying for
e.g. Holger and my freelance work. Still, implementing all protocol
stacks, interfaces and functional elements of GSM and GPRS from the
radio network to the core network is something that large corporations
typically spend hundreds of man-years on. So funding for Osmocom GSM
implementations was always short, and we always tried to make the best
out of it.
After Holger and I started sysmocom in 2011, we had a chance to use
funds from BTS sales to hire more developers, and we were growing our
team of developers. We finally could pay some developers other than
ourselves from working on Free Software cellular network infrastructure.
In 2014 and 2015, sysmocom got side-tracked with some projects where
Osmocom and the cellular network was only one small part of a much
larger scope. In Q4/2015 and in 2016, we are back on track with
focussing 100% at Osmocom projects, which you can probably see by a lot
more associated commits to the respective project repositories.
By now, we are in the lucky situation that the work we've done in the
Osmocom project on providing Free Software implementations of cellular
technologies like GSM, GPRS, EDGE and now also UMTS is receiving a lot
of attention. This attention translates into companies approaching us
(particularly at sysmocom) regarding funding for implementing new
features, fixing existing bugs and short-comings, etc. As part of that,
we can even work on much needed infrastructural changes in the software.
So now we are in the opposite situation: There's a lot of interest in
funding Osmocom work, but there are few people in the Osmocom community
interested and/or capable to follow-up to that. Some of the early
contributors have moved into other areas, and are now working on
proprietary cellular stacks at large multi-national corporations. Some
others think of GSM as a fun hobby and want to keep it that way.
At sysmocom, we are trying hard to do what we can to keep up with the
demand. We've been looking to add people to our staff, but right now we
are struggling only to compensate for the regular fluctuation of
employees (i.e. keep the team size as is), let alone actually adding new
members to our team to help to move free software cellular networks
ahead.
I am struggling to understand why that is. I think Free Software in
cellular communications is one of the most interesting and challenging
frontiers for Free Software to work on. And there are many FOSS
developers who love nothing more than to conquer new areas of
technology.
At sysmocom, we can now offer what would have been my personal dream job
for many years:
paid work on Free Software that is available to the general public,
rather than something only of value to the employer
interesting technical challenges in an area of technology where you
will not find the answer to all your problems on stackoverflow or the
like
work in a small company consisting almost entirely only of die-hard
engineers, without corporate managers, marketing departments, etc.
work in an environment free of Microsoft and Apple software or cloud
services; use exclusively Free Software to get your work done
I would hope that more developers would appreciate such an environment.
If you're interested in helping FOSS cellular networks ahead, feel free
to have a look at http://sysmocom.de/jobs or contact us at
[email protected]. Together, we can try to move Free Software for mobile
communications to the next level!
[Less]
|
Posted
over 9 years
ago
This is great news: You can now install a GSM network using apt-get!
Thanks to the efforts of Debian developer Ruben Undheim, there's now
an OpenBSC (with all its flavors like OsmoBSC, OsmoNITB, OsmoSGSN,
...) package in the official Debian
... [More]
repository.
Here is the link to the e-mail indicating acceptance into Debian:
https://tracker.debian.org/news/755641
I think for the past many years into the OpenBSC (and wider Osmocom)
projects I always assumed that distribution packaging is not really
something all that important, as all the people using OpenBSC surely
would be technical enough to build it from the source. And in fact, I
believe that building from source brings you one step closer to
actually modifying the code, and thus contribution.
Nevertheless, the project has matured to a point where it is not used
only by developers anymore, and particularly also (god beware) by
people with limited experience with Linux in general. That such
people still exist is surprisingly hard to realize for somebody like
myself who has spent more than 20 years in Linux land by now.
So all in all, today I think that having packages in a Distribution
like Debian actually is important for the further adoption of the
project - pretty much like I believe that more and better public
documentation is.
Looking forward to seeing the first bug reports reported through
bugs.debian.org rather than https://projects.osmocom.org/ . Once that
happens, we know that people are actually using the official Debian
packages.
As an unrelated side note, the Osmocom project now also has nightly
builds available for Debian 7.0, Debian 8.0 and Ubunut 14.04 on both
i586 and x86_64 architecture from
https://build.opensuse.org/project/show/network:osmocom:nightly. The
nightly builds are for people who want to stay on the bleeding edge of
the code, but who don't want to go through building everything from
scratch. See Holgers post on the openbsc mailing list
for more information.
[Less]
|
Posted
over 9 years
ago
Today I had the pleasure of presenting about Open Source Network
Elements for Security Analysis of Mobile Networks at the Troopers 2016 TelcoSecDay.
The main topics addressed by this presentation are:
Importance of Free and Open Source Software
... [More]
implementations of
cellular network protocol stacks / interfaces / network elements for
applied telecom security research
The progress we've made at Osmocom over the
last eight years.
An overview about our current efforts to implement at 3G Network
similar to the existing 2G/2.5G/2.75G implementations.
There are no audio or video recordings of this session.
Slides are available at
http://git.gnumonks.org/index.html/laforge-slides/plain/2016/telcosecday/foss-gsm.html
[Less]
|