Planet Apache

Syndicate content
Updated: 1 day 22 hours ago

Justin Mason: Links for 2014-12-15

Mon, 2014-12-15 18:58
Categories: FLOSS Project Planets

Jean-Baptiste Onofré: Apache Karaf Christmas gifts: docker.io, profiles, and decanter

Mon, 2014-12-15 08:12

We are heading to Christmas time, and the Karaf team wanted to prepare some gifts for you

Of course, we are working hard in the preparation of the new Karaf releases. A bunch of bug fixes and improvements will be available in the coming releases: Karaf 2.4.1, Karaf 3.0.3, and Karaf 4.0.0.M2.

Some sub-project releases are also in preparation, especially Cellar. We completely refactored Cellar internals, to provide a more reliable, predictable, and stable behavior. New sync policies are available, new properties, new commands, and also interesting new features like HTTP session replication, or HTTP load balancing. I will prepare a blog about this very soon.

But, we’re also preparing brand-new features.

Docker.io

I heard some people saying: “why do I need Karaf when I have docker.io ?”.

Honestly, I don’t understand this as the purpose is not the same: actually, Karaf on docker.io is a great value.

First, docker.io concepts are not new. It’s more or less new on Linux, but the same kind of features exists for a long time on other systems:

  • zones on Solaris
  • jail on FreeBSD
  • xen on Linux, in the past

So, nothing revolutionary in docker.io, however it’s a very convenient way to host multiple images/pseudo-system on the same machine.

However, docker.io (like the other systems) is focus on the OS: it doesn’t cover by its own the application container. For that, you have to prepare an images with OS plus the application container. For instance, you want to deploy your war file, you have to bootstrap a docker.io image with OS and tomcat (or Karaf ;)).

Moreover, remember the cool features provided by Karaf: ConfigAdmin and dynamic configuration, hotdeployment, features, etc.

You want to deploy your Camel routes, your ActiveMQ broker, your CXF webservices, your application: just use the docker.io image providing a Karaf instance!

And it’s what the Karaf docker.io feature provides. Actually, it provides two things:

  • a set of Karaf docker.io images ready to use, with ubuntu/centos images with ready to use Karaf instances (using different combinations)
  • a set of shell commands and Karaf commands to easily bootstrap the images from a Karaf instance. It’s actually a good alternative to the Karaf child instances (which are only local to the machine).

Basically, docker.io doesn’t replace Karaf. However, Karaf on docker.io provides a very flexible infrastructure, allowing you to easily bootstrap Karaf instances. Associated with Cellar, you can bootstrap a Karaf cluster very easily as well.

I will prepare the donation and I will blog about the docker.io feature very soon. Stay tuned !!!

Karaf Profiles

A new feature comes in Karaf 4: the Karaf profiles. The purpose is to apply a ready to use set of configurations and provisioning to a Karaf instance.

Thanks to that you can prepare a complete profile containing your configuration and your application (features) and apply multiple profiles to easily create a ready-to-go Karaf instance.

It’s a great complete to the Karaf docker.io feature: the docker.io feature bootstraps the Karaf image, on which you can apply your profiles, all in a row.

Some profiles description is available here: http://mail-archives.apache.org/mod_mbox/karaf-dev/201412.mbox/%3CCAA66TpodJWHVpOqDz2j1QfkPchhBepK_Mwdx0orz7dEVaw8tPQ%40mail.gmail.com%3E.

I’m working on the storage of profiles on Karaf Cave, the application of profiles on running/existing Karaf instances, support of cluster profiles in Cellar, etc.

Again, I will create a specific blog post about profiles soon. Stay tuned again !!

Karaf Decanter

As a fully enterprise ready container, Karaf has to provide monitoring and management feature. We already provide a bunch of metrics via JMX (we have multiple MBeans for Karaf, Camel, ActiveMQ, CXF, etc).

However, we should provide:

  • storage of metrics and messages to be able to have an activity timeline
  • SLA definition of the metrics and messages, raising alerts when some metrics are not in the expected value range or when the messages contain a pattern
  • dashboard to configure the SLA, display messages, and graph the metrics

As always in Karaf, it should be very simple to install such kind of feature, with an integration of the supported third parties.

That’s why we started to work on Karaf Decanter, a complete and flexible monitoring solution for Karaf and the applications hosted by Karaf (Camel, ActiveMQ, CXF, etc).

The Decanter proposal and description is available here: http://mail-archives.apache.org/mod_mbox/karaf-dev/201410.mbox/%3C543D3D62.6050608%40nanthrax.net%3E.

The current codebase is also available: https://github.com/jbonofre/karaf-decanter.

I’m preparing the donation (some cleansing/polishing in progress).

Again, I will blog about Karaf Decanter asap. Stay tuned again again !!

Conclusion

You can see like, as always, the Karaf team is committed and dedicated to provide to you very convenient and flexible features. Lot of those features come from your ideas, discussions, proposals. So, keep on discussing with us, we love our users

We hope you will enjoy those new features. We will document and blog about these Christmas gifts soon.

Enjoy Karaf, and Happy Christmas !

Categories: FLOSS Project Planets

Justin Mason: Links for 2014-12-14

Sun, 2014-12-14 18:58
Categories: FLOSS Project Planets

Edward J. Yoon: 2014년도를 떠나며

Sun, 2014-12-14 05:05
몇 일이 지나면 전세계인은 2014년도를 떠나보내야 한다. 나 역시 14년을 떠나고 이젠 새로이 준비를 해야하는 시점이 되었네.

나에게 2014년은 참 많은 일들이 일어났고, 그렇게 원하던 창업을 하면서 다양한 경험과 사람을 겪어본 한 해. 한 가지 크게 느낀 것이 있다면, 알게 모르게 사람들은 나를 지켜보고 평가한다는 것 (물론 그렇다고 의식하진 않지만), 모든 결정은 언제나 후회가 남는다는 것, 선동은 몇 마디로 가능하지만 그를 반박을 위해서는 수십개의 근거자료가 필요하다는 것 등등.

솔직히 엔지니어로써 커리어에는 이러한 것들은 도무지 쓸데 없는 경험일지 모르겠다. 이 때문에 한편으로는 계속 하던일에 몰두했어야하나 살짝 걱정도 되긴하나 분명 나에게 크나큰 밑거름이 되었음을! 결국 내가 살아가는 세상은 "사회"이니까.

부작용이라하면 내 몸안에 사파 무림 고수의 광기가 다소 누그러진 정도? ㅋ 그렇게 잘때려맞추던 미래가.. 이제는 1년 후의 미래도 잘 안보인다 :/

2015년, .. 광기에 의존하기보다는 좀 더 체계적이고 과학적인 접근으로 문제를 하나씩 털어보기로 하자!
Categories: FLOSS Project Planets

Justin Mason: Links for 2014-12-13

Sat, 2014-12-13 18:58
  • littleBits Synth Kit

    Wow, this looks cool. $159

    littleBits and Korg have demystified a traditional analog synthesizer, making it super easy for novices and experts alike to create music. connects to speakers, computers and headphones. can be used to make your own instruments. fits into the littleBits modular system for infinite combos of audio, visual and sensory experiences

    (tags: diy hardware music littlebits gadgets make analog synths)

Categories: FLOSS Project Planets

Antoine Levy-Lambert

Sat, 2014-12-13 14:14
Apache Ivy 2.4.0

Today Nicolas Lalevée has created a new release candidate Ivy 2.4.0.
Currently looking at the release candidate.
See vote email here
Categories: FLOSS Project Planets

Shawn McKinney: Why another open source iam product?

Sat, 2014-12-13 11:09

A question that has been lingering.  It’s fair game, but before I get around to actually answering, let’s remember how we got here.

Late 90’s

Before the first open source iam product existed we had standard policy enforcement protocols in use.  Examples include Java’s ee security & jaas. Unix had PAM, sudo and kerberos.  Windows, NTLM and SPNEGO.  There were web-based protocols like HTTP basic auth and ISAPI.

IAM Complete Solution Defined

Those policy enforcement mechanisms didn’t meet the wider requirements of a complete solution:

  • extensible and pluggable policy enforcement services
  • centralized policy decision point services
  • common policy administration services
  • common policy information services
  • audit and review capabilities

The gaps made us scramble to meet the need.

Early to Mid 2000’s

Commercial vendors ruled.  Several more policy enforcement protocols appeared including liberty, saml, ws-*, xmlsecurity and xacml.  Those in need either built or bought because open source iam solutions were barely in existence.

There were many open source projects that provided the legos to build with.

2008

The era of opportunity for open source innovation.  Most of the technical problems were solved.  All one had to do was assemble a solution using the building blocks available in the public domain.

But not another access control framework.  Needed a complete solution.

2009

As code construction commenced on fortress, many open source policy enforcement frameworks became widely used, such as spring security and opensso, but still no complete solution.

2011

Around the the time of the first fortress release the situation changed.  Sun’s merger with Oracle foretold the end of the commercial vendor stranglehold creating a void in which companies like Symas, Linagora, Evolveum, and Tirasa sprung complete solutions.

Today

Now that we have several complete open source iam solutions on the market, the industry continues to focus on policy enforcement standards, the latest being oauth, uma and open id connect.

But we continue to struggle because uniform policy enforcement is the tip of iceberg.  More benefit comes through shared policy decision and admin services.  This promotes reuse of infrastructure and data across organizational, vendor and platform boundaries.

Tomorrow

Policy enforcement protocols will continue to be volatile and ill-equipped.

Standards-based policy decision and admin services will continue to be needed.

So that Vendor A’s PEP can plug into Vendor B’s PDP, and Vendor C’s PAP can plug in Vendor D’s PIP.

Why Fortress

Based on ansi incits 359, our best hope for standardizing the complete iam solution.


Categories: FLOSS Project Planets

Justin Mason: Links for 2014-12-12

Fri, 2014-12-12 18:58
Categories: FLOSS Project Planets

Nick Kew: Internet Non-Service

Thu, 2014-12-11 20:04

I don’t know how I should describe the nonsense I pay Virgin (“Liberty Global”) good money for.  It’s supposed to be an Internet Service Provider, but it falls well short of that far too often, and sometimes for extended periods.  Back in the summer I was stranded without service for several weeks.

This morning (or, more precisely, yesterday morning) I found myself unable to read my mail.  I also couldn’t ssh to the server.  Lynx could get the front page, but only after a long delay. This looked exactly like something that happened last week, when only after rebooting (from the rackspace console) and calling rackspace support did I realise the problem was with Virgin, and traceroute was hanging on a Virgin machine after just a few hops from here[1].  Using my EE 4G connection, all was well.

Today as last week I could see the server was fine, as I could access it from an apache.org machine, but anything from home just timed out.  I let that pass, and again used the EE connection to read mail.  But after a full day of downtime I thought I’d check a little more.  This time traceroute gives me an entirely different destination: 62.252.172.241, which is a machine owned by Virgin!  A simple DNS lookup tells me the same.  So this time it’s a DNS cockup.

Except …

If it’s a DNS cockup, how come I can still browse my website (at least using Lynx, which doesn’t time out first)?  There must be a HTTP proxy – with valid DNS – on 62.252.172.241.  Smells like deliberate sabotage!  And how come this didn’t appear to affect other sites I’ve been to today?  For example, $work email (c/o gmail), or this blog @wordpress?

Probing further, this time (unlike last week) I can route to the server by IP address.  So it’s definitely just DNS.

WTF is going on?  I think it’s time to drop this sick joke of a non-ISP.  Maybe get a second 4G connection from another provider for a bit of redundancy: that connection seems good most of the time, but wifi to the 4G modem is totally flakey so I have to use it via USB, which is a poor second-best.

[1] Yeah, of course any geek should have tested that before going to rackspace.  In my defence, I was flat out in bed with a nasty lurgy and in no fit state to browse the web, let alone fix a problem on it.


Categories: FLOSS Project Planets

Justin Mason: Links for 2014-12-11

Thu, 2014-12-11 18:58
Categories: FLOSS Project Planets

Openmeetings Team: Commercial Openmeetings Support FAQ

Thu, 2014-12-11 02:54

That's our attempt to keep support knowledge structured and save your time asking questions.

Contents Pricing

That's free software under Apache License, and what is even better, you can get anything for free. You can install Openmeetings yourself for free, or can get free support at our mailing lists.

Still you may want to save your time by asking us (om.unipro@gmail.com) for assistance. The price is calculated by multiplying required hours to hourly rate (€50 / hour).

ServiceHoursInitial server & network check1OpenMeetings installation or upgrade10Moodle, Joomla, Wordpress, Drupal, Bitrix plug-in installation2Installation or upgrade of the other supported system10Configuration of the integrated room hosting2Integrated room hosting (per month)1Moodle installation3Upgrade of security certificates2Simple re-branding2Admin access to the demo server1Customizations?

Supported systems include Openmeetings, a number of CMS and integration plug-ins.

Installation requires you to answer a number of questions (see Openmeetings installation questions, CMS plug-in installation questions), hence we can set up the system as you like.

Why admin access to the demo server costs something?

We need to verify the users who get access to the sensitive data. Payment is the simplest verification. Please note, you get a limited time frame to use your admin access.

Do you offer hosting packages?

Yes, we do.

Customization Is it possible to customize Openmeetings' look & feel?

Yes, that's possible. That's the most visible advantage of Openmeetings open source nature.

Is it possible to change several things at once?

Unless you are a trusted long-term customer, we start from small agile projects containing minor customizations. That would save your money, because we address issues in order which is critical for your business.

What happens with the code which is developed during commercial support?

The general changes which are useful for the project (e.g. bug fixes or general new features) are developed under Apache license and committed into the open source trunk. This helps customers update to a newer version smoothly.

There may be some exceptions. For example, for specific customizations we maintain a private source control system for your project, and this costs extra.

Integration

Which CMS integration modules do you provide?

We provide Moodle, Wordpress, Joomla, Drupal, Bitrix and some other CMS modules (exact supported version numbers can be clarified in each particular case). We also provide integration to SugarCRM, Zimbra and some other popular systems.

Could you please send us a module for CMS (content management system) integration?

We don't provide these modules without installation services. It requires collecting integration requirements first to succeed in the integration process, and we cannot afford a failure.

Is it possible to integrate Open Meetings with Microsoft .Net (JBoss, etc)?

Openmeetings integrates with other applications by means of language independent SOAP protocol. We can integrate Openmeetings with any Internet application.

Does Openmeetings work on mobile devices?

We are currently developing this. The first version of the Android mobile client is going to be ready very soon.

TechnologyWhich tools & technology are behind Openmeetings?

The server side is written in Java, the client side uses HTML5, OpenLaszlo, Flash and Java.

What can I do about echo?

Use headphones and manually mute microphones, or try speakerphones.

I have got a browser crash or my client hangs. What can I do?

Please get more info about the browser craches resolving here.

ProcessWhy it takes so many hours?

Don't hesitate to ask if the task estimate is more than you expect. We strive to make our process transparent.

The commercial development cycle contains the following stages: understand what should be done > create a tracker and transfer the task to a programmer > fix > compile > test > commit to the source control > verify the change with the second pair of eyes (ask another guy to complile and deploy the new source to the test server) > deploy to the production server. Here the most important part comes, you get a week to verify the changes yourself.

Is it possible to talk with somebody from commercial support team personally?

If you need a demo account or would like to talk to us personally we can set up a meeting in the room on our demo server. Just discuss the details and what time fits you by e-mail.

We insist on using OpenMeetings for such meetings. This would get you some experience of using OpenMeetings and help to understand if OpenMeetings meet your expectation or not. That is why phone and skype calls are undesirable for us.

Installation Questionnaire

Please, answer the following questions to ensure proper integration.

  • Have you tried a demo?
  • How many conference rooms do you need? Do you need rooms for webinars, or for face-to-face talks, or both? Which resolution do you like to have? How would you name rooms?
  • What kind of server do you have? You need a dedicated server with minimum 2-4 GB Ram and 2-3 Dual Core or Quad core CPU. Recommended operating systems are Ubuntu or Debian. Please transfer us administrator credentials for your server for remote access.
  • Do users and server have enough bandwidth and network quality is sufficient? You generally need 1 Mbit/sec for 4 users in 200x200px resolution. Please try our required bandwidth calculator.
  • Which hardware do users plan to use?
  • Are there any users who will use the system on a regular basis and benefit from the warming-up training?
  • Are the server or users protected by a firewall? Does your server have 80, 5080, 1935, 8088 ports open? Does the firewall limit RTMP or HTTP traffic?
  • How many users do you plan to have? For high load solutions do you have any production-grade level database installed? Please sents us administrator credentials or credentials of a user who can create and mange openmeetings database.
  • Do you want to have email notifications? If yes, please send us smtp server host and port, openmeetings server email address for outcoming correspondense, and credentials of smtp server user which can send emails from this address.
  • Which timezone, language and contry are default for most of your users?
  • Do you want to close open registration on your Openmeetings site?
  • May we add the link to your site as an example of successful integration to the end of this page?
  • What other requirements do you have in mind?
Installation Check

Working Openmeetings is an important prerequisite for rebranding and integration services.

  • Check that you can hear and see other participants.
  • Ensure recordings work for your installation.
  • Ensure you can successfully put word documents to the whiteboard.
Rebranding Checklist

This checklist ensures you've made steps required for the product rebranding.

  • Check that Openmeetings is installed correctly.
  • Provide Openmeetings server and remote server access credentials.
  • Provide a logo (40 pixel height).
  • Provide your company name, the sting for the conference URL (so-called context), the browser window title.
  • Specify company style colors (light background, window border color).
Integration Questionnaire

Please, answer the following questions to ensure proper integration.

  • Do you have Openmeetings correctly?
  • Which system do you want to integrate with? Which version?
  • As for integrating systems, which servers are they located at? Please provide us with administrator credentials for both systems for remote access.
  • Where on the website shall the links to the conference rooms be displayed?
  • Which rooms would be visible on site?
  • What happens with the recordings user make in the conference room? Shall the user be able to place a link to a recording he made?
  • May we add the link to your site as an example of successful integration to the end of this page?
Business Edition

We do offer a Business Edition of Openmeetings. It is compiled from the same sources, the difference is in configuration service. The service includes SIP integration to selected VoIP providers. If you opt for SIP integration, your users can start using mobile devices via SIP gateway with Openmeetings.

There is no fixed price for this edition. The required effort billing is based on standard hourly rate and depends on complexity of client network infrastructure and number of SIP providers.

Guarantees and commitments

Please take into account that you don’t buy a software product as OpenMeetings itself is free. You hire our developers for some time. Particularly, this means that we don’t ensure fixing bugs in OpenMeetings if you don’t pay for them according to our usual rate.

Good things here are that:

  • Usually we install release version for clients, it’s always good tested and stable enough.
  • Sometime we fix critical problems and make security updates for free, but all such cases should be considered individually, this is not a common rule.

To be sure that OpenMeetings is what you really need you should try our demo server before we start a project. Our installations provide exactly the functionality as demo servers do. So if you cannot get desired quality on demo, most probably you would not get it on your own installation too. Especially this is true regarding the quality of sound, video, recordings and screen sharing.

We are not responsible for the client-side problems. If your users don’t have enough bandwidth or RAM on their workstations, we cannot resolve such problems. Again, try the demo server with your equipment first to make a decision.

Unless this is separately discussed you have one week to verify if the installed system meets your expectations, and during this period we will help resolving issues you face. In case of the hosting service this week is included in the first hosting period.

We cannot offer a refund for hours which have been already spent on your project or payments for the hosting services.

Categories: FLOSS Project Planets

Justin Mason: Links for 2014-12-10

Wed, 2014-12-10 18:58
  • AWS Key Management Service Cryptographic Details

    “AWS Key Management Service (AWS KMS) provides cryptographic keys and operations scaled for the cloud. AWS KMS keys and functionality are used by other AWS cloud services, and you can use them to protect user data in your applications that use AWS. This white paper provides details on the cryptographic operations that are executed within AWS when you use AWS KMS.”

    (tags: white-papers aws amazon kms key-management crypto pdf)

Categories: FLOSS Project Planets

Heshan Suriyaarachchi: Install the Yeoman toolset

Tue, 2014-12-09 19:11
1. Prerequisite: Node.js and NPM should be installed in the system.

2. Install Yeoman tools
heshans@15mbp-08077.local:~/Dev$npm install --global yo bower grunt-cli
3. Check installed versions.
heshans@15mbp-08077.local:~/Dev$yo --version && bower --version && grunt --version

1.3.3

1.3.12

grunt-cli v0.1.13
Categories: FLOSS Project Planets

Justin Mason: Links for 2014-12-09

Tue, 2014-12-09 18:58
  • Aurora for MySQL is coming

    some good details of Aurora innards

    (tags: mysql databases aurora aws ec2 sql storage transactions replication)

  • If Eventual Consistency Seems Hard, Wait Till You Try MVCC

    ex-Percona MySQL wizard Baron Schwartz, noting that MVCC as implemented in common SQL databases is not all that simple or reliable compared to big bad NoSQL Eventual Consistency:

    Since I am not ready to assert that there’s a distributed system I know to be better and simpler than eventually consistent datastores, and since I certainly know that InnoDB’s MVCC implementation is full of complexities, for right now I am probably in the same position most of my readers are: the two viable choices seem to be single-node MVCC and multi-node eventual consistency. And I don’t think MVCC is the simpler paradigm of the two.

    (tags: nosql concurrency databases mysql riak voldemort eventual-consistency reliability storage baron-schwartz mvcc innodb postgresql)

  • Scaling email transparency

    This is quite interesting/weird — Stripe’s protocol for mass-CCing email as they scale up the company, based around http://en.wikipedia.org/wiki/Civil_inattention

    (tags: communication culture email management stripe cc transparency civil-inattention)

  • Shanley Kane of Model View Culture Challenges a “Corrupt” Silicon Valley | MIT Technology Review

    If their interests were better serving the world, using technology as a force for social justice, and equitably distributing technology wealth to enrich society … sure, they’d be acting against their interests. But the reality is that tech companies centralize power and wealth in a small group of privileged white men. When that’s the goal, then exploiting the labor of marginalized people and denying them access to power and wealth is 100 percent in line with the endgame. A more diverse tech industry would be better for its workers and everyone else, but it would be worse for the privileged white men at the top of it, because it would mean they would have to give up their monopoly on money and power. And they will fight that with everything they’ve got, which is why we see barriers to equality at every level of the industry.

    (tags: culture feminism tech mit-tech-review shanley-kane privilege vcs silicon-valley)

  • Announcing Snappy Ubuntu

    Awesome! I was completely unaware this was coming down the pipeline.

    A new, transactionally updated Ubuntu for the cloud. Ubuntu Core is a new rendition of Ubuntu for the cloud with transactional updates. Ubuntu Core is a minimal server image with the same libraries as today’s Ubuntu, but applications are provided through a simpler mechanism. The snappy approach is faster, more reliable, and lets us provide stronger security guarantees for apps and users — that’s why we call them “snappy” applications. Snappy apps and Ubuntu Core itself can be upgraded atomically and rolled back if needed — a bulletproof approach to systems management that is perfect for container deployments. It’s called “transactional” or “image-based” systems management, and we’re delighted to make it available on every Ubuntu certified cloud.

    (tags: ubuntu linux packaging snappy ubuntu-core transactional-updates apt docker ops)

  • Dan McKinley :: Thoughts on the Technical Track

    Ouch. I think Amazon did a better job of the Technical Track concept than this, at least

    (tags: engineering management technical-track principal-engineer career work)

  • OSTree

    “git for operating system binaries”. OSTree is a tool for managing bootable, immutable, versioned filesystem trees. It is not a package system; nor is it a tool for managing full disk images. Instead, it sits between those levels, offering a blend of the advantages (and disadvantages) of both. You can use any build system you like to place content into it on a build server, then export an OSTree repository via static HTTP. On each client system, “ostree admin upgrade” can incrementally replicate that content, creating a new root for the next reboot. This provides fully atomic upgrades. Any changes made to /etc are propagated forwards, and all local state in /var is shared. A key goal of the project is to complement existing package systems like RPM and Debian packages, and help further their evolution. In particular for example, RPM-OSTree (linked below) has as a goal a hybrid tree/package model, where you replicate a base tree via OSTree, and then add packages on top.

    (tags: os gnome git linux immutable deployment packaging via:fanf)

Categories: FLOSS Project Planets

Heshan Suriyaarachchi: Install Node.js and NPM on Mac OSX

Tue, 2014-12-09 18:41
I’m using Homebrew for the installation. If you don't have it installed, please install it.

1. Install node
heshans@15mbp-08077.local:~/Dev$brew install node
2. Check installed versions.
heshans@15mbp-08077.local:~/Dev$node -v

v0.10.33

heshans@15mbp-08077.local:~/Dev$npm -v

2.1.8
3. Update Homebrew.
heshans@15mbp-08077.local:~/Dev$brew update

Already up-to-date.
4. Upgrade Node.
heshans@15mbp-08077.local:~/Dev$brew upgrade node
Categories: FLOSS Project Planets

Christian Grobmeier: How I failed three times

Tue, 2014-12-09 18:00

Four years ago I decided it was time to quit my job and do "something" on my own. I wanted to create my own business. Today I craft Geek T-Shirts, I have written a book on Zen Programming and code Time & Bill. Those are just a few of the things I do. I consider myself a freelancing programmer and well, mini-entrepreneur.

Categories: FLOSS Project Planets

Bryan Pendleton: Markov chain humor

Tue, 2014-12-09 09:56

On the heels of last year's git man page generator, we now have:

  • The Doom that Came to PuppetPosts generated by a Markov chain trained on the Puppet documentation and the assorted works of H. P. Lovecraft. Created by @branan using barrucadu/markov. Inspired by King James Programming.

Very, very geeky.

But quite humorous (assuming you know a little bit about Lovecraft and a little bit about Puppet).

Here's a nice example:

“As our guarded messages stated, we rested at midnight after our day of terror and bafflement—but not without a tentative plan for one or more specific features”
Categories: FLOSS Project Planets

Michael McCandless: Scoring tennis using finite-state automata

Tue, 2014-12-09 04:31
For some reason having to do with the medieval French, the scoring system for tennis is very strange.

In actuality, the game is easy to explain: to win, you must score at least 4 points and win by at least 2. Yet in practice, you are supposed to use strange labels like "love" (0 points), "15" (1 point), "30" (2 points), "40" (3 points), "deuce" (3 or more points each, and the players are tied), "all" (players are tied) instead of simply tracking points as numbers, as other sports do.

This is of course wildly confusing to newcomers. Fortunately, the convoluted logic is easy to express as a finite-state automaton (FSA):



The game begins in the left-most (unlabeled) state, and then each time either player 1 (red) or player 2 (blue) scores, you advance to the corresponding state to know how to say the score properly in tennis-speak. In each state, player 1's score is first followed by player 2's; for example "40 30" means player 1 has scored 3 points and player 2 has scored 2 and "15 all" means both players have scored once. "adv 2" means player 2 is ahead by 1 point and will win if s/he scores again.

There are only 20 states, and there are cycles which means a tennis game can in fact go on indefinitely, if the players pass back and forth through the "deuce" (translation: game is tied) state.

This FSA is correct, and if you watch a Wimbledon match, for example, you'll see the game advance through precisely these states.

Minimization

Yet for an FSA, merely being correct is not good enough!

It should also strive to be minimal, and surprisingly this FSA is not: if you build this Automaton in Luceneand minimize it, you'll discover that there are some wasted states! This means 20 states is overkill when deciding who won the game.

Specifically, there is no difference between the "30 all" and "deuce" states, nor between the "30 40" and "adv 2" states, nor between the "40 30" and "adv 1" states. From either state in each of these pairs, there is no sequence of player 1 / player 2 scoring that will result in a different final outcome (this is in principle how the minimization process identifies indistinguishable states).

Therefore, there's no point in keeping those states, and you can safely use this smaller 17-state FSA (15% smaller!) to score your tennis games instead:



For example, from "15 30", if player 1 scores, you go straight to "deuce" and don't bother with the redundant "30 30" state.

Another (simpler?) way to understand why these states are wasted is to recognize that the finite state machine is tracking two different pieces of information: first, how many points ahead player 1 is (since a player must win by 2 points) and second, how many points have been scored (since a player must score at least 4 points to win).

Once enough points (4 or more) have been scored by either player, their absolute scores no longer matter. All that matters is the relative score: whether player 1 is ahead by 1, equal, or behind by 1. For example, we don't care if the score is 197 to 196 or 6 to 5: they are the same thing.

Yet, early on, the FSA must also track the absolute scores, to ensure at least 4 points were scored by the winner. With the original 20-state FSA, the crossover between these two phases was what would have been "40 40" (each player scored 3 points). But in the minimal machine, the crossover became "30 30" (each player scored 2 points), which is safe since each player must still "win by 2" so if player 1 scores 2 points from "30 30", that means player 1 scored 4 points overall.

FSA minimization saved only 3 states for the game of tennis, resulting in a 15% smaller automaton, and maybe this simplifies keeping track of scores in your games by a bit, but in other FSA applications in Lucene, such as the analyzing suggester, MemoryPostingsFormatand the terms index, minimization is vital since it saves substantial disk and RAM for Lucene applications!
Categories: FLOSS Project Planets

Bryan Pendleton: Indeed, you can't simply call for a Tow Truck at this point...

Mon, 2014-12-08 19:25

The team at Wired have been doing a good job covering some of the events in the current Volvo Ocean Race:

  • Grueling 39K-Mile Yacht Race Tests the Sanity of Cramped CrewsThe 2014-15 edition of the race, which takes place every three years, will cover 39,000 miles, hit six continents, and run from October to June. This is the first time it will be a “one-design” race: All entrants must use a specially designed boat—the $6 million Volvo 65—with the same exact specifications. The new carbon-fiber boats, designed by Farr Yacht Design in Annapolis, Md. specifically for the next two Volvo Ocean Races and assembled in different spots around the world, are strong and sturdy.
  • Why the World’s Best Sailors Still Hit Reefs in Open Water RacesBut even with precautions and top equipment, you don’t always know what’s around you. The charts that record things like reefs can be off by up to five miles at some points, says Will Oxley, the navigator for Team Alvimedica. The archipelago where Vestas Wind ran aground (16°32’00.0″S 59°32’00.0″E) isn’t the proverbial uncharted territory, but it’s not particularly well charted, either. Because it’s not on a shipping route, rarely hosts races, and is nearly uninhabited, there’s been little need for detailed mapping. “This is quite new territory,” Oxley says.
  • How to Repair a $6M Racing Yacht You Sailed Into a ReefThe good news is that putting in fresh carbon fiber “is relatively easily done,” Hogoboom says. The companies that built the boats still have the molds for all the parts (the current design will be used for the 2017-2018 race), and they could start making replacements while the damaged boat is dragged back. Then it’s just a question of cutting out the damaged areas and bonding on the new bits. Nonetheless, it would require a big commitment: Four companies, each in a different country, contributed parts of the boat, and they would all probably need to provide replacement parts.
Categories: FLOSS Project Planets

Justin Mason: Links for 2014-12-08

Mon, 2014-12-08 18:58
Categories: FLOSS Project Planets