Quantcast
Channel: Planet Apache
Viewing all 9364 articles
Browse latest View live

Claus Ibsen: Apache Camel 2.21 Released - Whats New

$
0
0
We have just released Apache Camel 2.21 and I will in this blog highlight the noteworthy changes.



This release do NOT support Spring Boot 2.
Support for Spring Boot 2 will come in Camel 2.22,
which we plan to release before summer 2018.


1) Working with large JMS messages 
We have added better support for working with large messages in streaming mode in the JMS component. I have previously blogged about this.


2) FTP supports resume download
The FTP component can now resume downloads. For example if you download very big files, and have connectivity issues, then the FTP consumer will be able to resume the download upon re-connect.


3) FTP with pollEnrich
The FTP component has been improved to work better with the pollEnrich (Content Enricher EIP) to poll in a file on-demand. Now the current thread is used for this in a more synchronous task instead of starting the scheduled scheduler (which the regular consumer uses).


4) FTP activity logging
The FTP component now reports more activity when it downloads, uploads, scan for files etc, which you can see in JMX and in the logs (you can set the logging level). This should help better to track how much has been download/uploaded of the files and what remains.


5) Easier configuration of RabbitMQ
The RabbitMQ component can now be configured on the component level where you can setup broker details, logins, etc so you do not have to repeat this in all the endpoint urls. This is similar to how you use the other messaging components such as JMS.


6) Spring Boot route actuators
The Camel SB actuators is now in read-only mode by default. The route actuator endpoints can have the read-only mode turned off, which allows to manage the lifecycle of the Camel routes. In addition more details can be retrieved such as a XML dump of the routes.


7) Rest DSL API-Doc with examples
The Rest DSL can now also include examples in the DSL which allows to generte the Swagger/OpenAPI doc with examples included.


8) Claim Check EIP
There is a new Claim Check EIP which makes it much easier to store information from the exchange during routing, and then retrieve that later (think it like a push/pop). You can find more detail in the EIP doc.


9) Sage EIP
There is a new Saga EIP for simulating transaction in distributed systems. The Saga EIP has plugins for different Saga services, that orchestrate the transactions.


10) More components
And as usual there are more components. For example there are 2 new AWS services for KMS and MQ. There is also our first component to integrate with crypto currencies.


11) Testing with route coverage
We have added support for running unit tests with route coverage reports turned on. This allows you to check if you have tests that coverage all paths of your routes. Camel tools such as the Camel IDEA plugin will work on adding support for presenting the report, and have indicators in the source code about the coverage (eg like you have for Java code coverage). The Camel Maven Plugin has a goal to output the route coverage.


12) Testing with advice-with output before vs after
When using advice-with we now log the before vs after routes in XML to make it easier to developers to see what their advices have changed in the routes.


There are a bunch of other smaller improvements and other things I have left out, forgot about. You can find more details in the Camel 2.21 release notes.


Justin Mason: Links for 2018-03-16

$
0
0

Community Over Code: Where Is The ASF Going? Director Q&A

$
0
0

With Apache board elections coming up soon, an ASF Member came up with a great set of questions for all director candidates. With permission, I’m sharing those questions here, and providing my answers as well.

I’ve also posted my own Director Position Statement for this year (and past years!).

Questions For Board Candidates

Missions, Visions…and Decisions

The ASF exists with a primary goal of “providing open source software to the public, at no charge”. What do you consider to be the foundation’s most important secondary (implicit) goal?

Fostering independent and collaborative communities; in particular by mentoring and encouraging our contributors and members to step up and become mentors and exemplars of the Apache Way so they can help others.

Looking ahead, 5 years, 10 years…what do you hope the biggest change (that you can conceivably contribute to) to the Foundation will be, if any? What are your greatest concerns?

That all Board < -> PMC communications are simple, concise, and friendly.

Think about the phrase “the board is a big hammer” – is that really how we want to operate? I’d rather have us conceptually expand the IPMC Mentor < -> Podling PPMC relationship, where the board (and the Membership at large) serve as regular and helpful mentors to Apache projects throughout their lifetime. In the very rare cases where a PMC does go off the rails, we need the board as a whole to cleanly engage as a kind but firm mentor, making it a friendly learning process, not a mixed message of a hammer from multiple people.

My greatest concern is our entirely flat hierarchy: we can’t change that, but we must learn how to focus it and keep it polite. Flat works on a project scale, because everyone the PMC has one codebase they all use. Flat at the Foundation level means we have 600+ Members who can each jump in to try to fix a problem in a single PMC.

Which aspect(s) (if any) of the way the ASF operates today are you least satisfied with? What would you do to change it?

Discussion behavior on private mailing lists. Our projects have pretty good behavior – because they’re smaller active communities, and because they are focused on software, where there tend to be obvious answers to technical questions.

At the Member level, we need to deal with corporate operations and policy making. Budget, legal, brand, press, – these are areas that 1) many of us don’t have deep expertise in, and 2) don’t have as obvious or simple answers as software problems do.

Ensuring that the Membership, the board, and all our officers keep conversations here focused, polite, and productive is our biggest challenge. Since we rely on volunteers for all policy making, making this process more welcoming is the first step to improving the actual operations and work we do to provide support to all our projects.

Budget and Operations

Which roles do you envision moving towards paid roles. Is this the right move, and if not, what can we do to prevent/delay this?

Infra, obviously: keeping our infra team fully staffed – anytime we can provide more services safely with our own staff to our projects helps ensure their independence from corporate donors.

The other area is editorial help: while we have many, many useful emails, web pages, and presentations explaining the Apache Way, we need to organize them all and provide well-written materials that everyone can find and understand easily, even newcomers. Even a short-term information architect or editor to organize the apache.org developer portal and Community Development website, and give a focus and structure to the great volunteer-created content we have would be incredibly valuable. Volunteers do a great job on the parts; having a coherent whole would mean we can succeed in reaching our communities easily.

What, if anything, would you do to ensure that budgets are approved on time? does it even matter?

It absolutely matters – both to our suppliers (like Virtual and our contractors!) and to our volunteer officers who manage expenses. The first step is to clearly document the process – it’s all explained in emails on the Operations list each year, but we don’t have a comprehensive budget calendar and process documented on the website at a stable URL. That is simple to fix – modulo volunteers to actually write, edit, and check the work in.

80%+ of budgets should be super-simple and obvious – we need cloud servers and infra peeps. The rest of budget should be clear proposals by volunteer officers stating a need, a plan to meet that need, and a cost for the board’s consideration.

If you had to pick a keyword for budget planning and execution, which would it be? Things like “transparency”, “timeliness”, “cost-effective”

Transparency, clearly documented process.

Membership and Governance

Should the membership play a more prominent role in decision-making at the ASF? If so, where do you propose this be?

Yes – on the same lines as merit within our project communities. That means providing alternatives or documented reasons for -1s; it also means showing up to help do the work for +1s.

Membership brings access to all areas of Foundation operations, but we need to remember that each operational area has its own merit that should be earned independently. Being a Member means you can show up on any list but doesn’t mean you get a binding vote there yet.

What would be your take on the cohesion of the ASF, the PMCs, the membership and the communities. Are we one big happy family, or just a bunch of silos? Where do you see it heading, and where do we need to take action, if anywhere?

We’re a bunch of big happy families. Happy is good, but different families means we often have different views of what being an Apache project means.

We need two things: better document what the “Apache Way” means, and what the board expects projects to do (or not), and more organized and cohesive mentoring and culture sharing across all of our projects – and across Foundation operations too.

If you were in charge of overall community development, what would you focus on as your primary and secondary goal? How would you implement what you think is needed to achieve this?

The real need for the ComDev PMC is to focus and empower our many volunteers to improve our overall documentation, education, and social message as a cohesive whole that helps our communities do their work.

The key tasks are to put forth some clear goals, and mentor/help/encourage all committers that show up on how to build effective and lasting materials that we can use and re-use across all our communities – and outside our communities as well. We have lots of individual volunteers and separate bits of content – what we need now is tying them together, and ensuring we have better writing and editing so the information is easy to approach and understand.

Show and Tell

What is, in your view, your proudest accomplishment in your time at the ASF? How’d that make you feel?

Creating our comprehensive set of trademark and branding policies, including explanations of how to deal with issues suited to our communities, both in terms of content and expertise level. Bonus achievement: other organizations have copied parts of those policies and procedures, and I’ve been asked by FOSS leaders and lawyers at other organizations for help as well. That makes me feel great, for achieving something important enough that others want to use it.

Which abilities/skills do you think you’ll bring to the board, that would improve or strengthen the foundation?

Clear and polite communication and organization skills, to help us be efficient at making decisions, and ensure that our discussions, records, and any policy or best practices we decide on are easy for the world to understand – both the how, and the why.

Who do you admire the most at the foundation (past/present), and may we know why?

Brian Behlendorf, one of the ASF’s founders, wrote lots of cool code, ran servers, all sorts of amazeballs useful stuff, etc. But I admire him for his humility, kindness, and helpfulness to everyone who asks.

Very early committers remember when they first got their Apache accounts, Brian would personally send friendly and welcoming root@ emails with their new account details – since some of the original ASF servers were in his house. That friendliness and willingness to help is my goal.

Ponies or gnomes? (yes/no?)

Ponies, of course! Trick question – gnomes muck up all the works.

Thanks for the great questions!

The post Where Is The ASF Going? Director Q&A appeared first on Community Over Code.

Bryan Pendleton: American Gods: a very short review

$
0
0

Once again late to the party, I came across Neil Gaiman's American Gods.

And devoured it.

My reaction to Neil Gaiman, in general, is quite similar to my reaction to Stephen King: amazing, fascinating, compelling books, but often the subject matter, or theme, or setting, is too disturbing for me and I avoid even attempting the book.

American Gods is plenty disturbing, no doubt about it.

But it is also intoxicating and absorbing.

Whenever I think about Stephen King, and how he must work, I envision that there is some moment where he suddenly gets an idea, vivid and remarkable, and then he develops it and develops it and develops it, and the result is The Dark Tower, or some such.

With American Gods, I wonder if the original spark for Gaiman was actually captured in the title of the book, and perhaps went something like this: Who are the American Gods? We know about Norse Gods, and Greek Gods, and Egyptian Gods, and Chinese Gods, so surely there must be American Gods?

And as he thought about this, perhaps he thought, well: people came to America, and so perhaps their gods came to America, too?

Hyacinth learned some French, and was taught a few of the teachings of the Catholic Church. Each day he cut sugar cane from well before the sun rose until after the sun had set.

He fathered several children. He went with the other slaves, in the small hours of the night, to the woods, although it was forbidden, to dance the Calinda, to sing to Damballa-Wedo, the serpent god, in the form of a black snake. He sang to Elegba, to Ogu, Shango, Zaka, and to many others, all the gods the captives had brought with them to the island, brought in their minds and their secret hearts.

And yet, gods also emerge from a place, so what sort of gods might emerge from America? Well it would depend a lot on what Americans believed in:

"I can believe things that are true and I can believe things that aren't true and I can believe things where nobody knows if they're true or not. I can believe in Santa Claus and the Easter Bunny and Marilyn Monroe and the Beatles and Elvis and Mister Ed. [...] " She stopped, out of breath.

Shadow almost took his hands off the wheel to applaud. Instead he said, "Okay. So if I tell you what I've learned you won't think that I'm a nut."

"Maybe," she said. "Try me."

"Would you believe that all the gods that people have ever imagined are still with us today?"

"... maybe."

"And that there are new gods out there, gods of computers and telephones and whatever, and that they all seem to think there isn't room for them both in the world. And that some kind of war is likely."

But what would happen as these new gods emerged? And what would happen to those old gods, here in America?

"This is a bad land for gods," said Shadow. As an opening statement it wasn't Friends, Romans, Countrymen, but it would do. "You've probably all learned that, in your own way. The old gods are ignored. The new gods are as quickly taken up as they are abandoned, cast aside for the next big thing. Either you've been forgotten, or you're scared you're going to be rendered obsolete, or maybe you're just getting tired of existing on the whim of people."

The problem is, as Gaiman observes, that America is America, and that has some pretty serious consequences, both for the old and for the new:

There was an arrogance to the new ones. Shadow could see that. But there was also a fear.

They were afraid that unless they kept pace with a changing world, unless they remade and redrew and rebuilt the world in their image, their time would already be over.

American Gods is already 17 years old, and as I read through it I thought it was fated to be a book stuck in a certain time. After all, for a book about "gods of computers and telephones and whatever," there isn't a self-driving car or a social media app or a virtual reality headset to be found anywhere in the book.

But as Gaiman, an Englishman and yet also a converted American, knows deeply in his soul, so much of what makes America America is distinct from the momentary matters of a certain time or place:

"The battle you're here to fight isn't something that any of you can win or lose. The winning and the losing are unimportant to him, to them. What matters is that enough of you die. Each of you that falls in battle gives him power. Every one of you that dies, feeds him. Do you understand?"

Laser-focused and razor-sharp, Gaiman's clarity of vision and courage to let the truth emerge from the telling produces a sure and solid result, a book that doubtless will be read and re-read decades from now, for its story, in the end, is timeless.

Bryan Pendleton: Candidates Tournament, midway through

$
0
0

We're nearly halfway through the 2018 Candidates Tournament (6 of the 14 rounds have been played).

The contest is hard-fought, with not much space from first (Caruana) to last (Karjakin). There have been 9 decisive results, and 15 draws. Of the decisive results, 5 have been with the white pieces, and 4 with the black pieces. Kramnik's games have been the sharpest, as he has had 2 wins, 2 losses, and 2 draws. Only Ding Liren, the 25-year-old Chinese superstar, has no decisive results yet, playing 6 draws so far.

Meanwhile, if all these beautiful, if deep and mysterious, grandmaster chess games aren't providing you enough entertainment, perhaps you need to liven things up (and no, I don't mean you should start rooting for the University of Maryland Baltimore County Retrievers, wonderful though last night's result was)?

Rather, you could get your way over to Twitch, and tune in to the hottest e-Sport online: I Want My ChessTV

Compare that to a typical session with the Chessbrahs, the most popular chess streamers on Twitch. Over the course of one of their streams, which can last up to four hours, you might see chairs thrown amid a torrent of f-bombs, freestyle rapping mid-game, and a never-ending barrage of trash talk. This is the new, online era of chess—set to the soundtrack of dance music.

Although certainly not the same thing as the Chessbrahs, chess as an e-Sport is finding, perhaps, some real traction.

Here, locally, there's a significant e-Sports chess event just a few weeks away: PRO Chess League Finals Set For San Francisco

The world's best chess players will travel to San Francisco to compete in a live championship organized by Chess.com and Twitch, the companies announced today. This epic event will be the culmination of Chess.com's Professional Rapid Online (PRO) Chess League, a groundbreaking, season-long competition with the world's top chess players representing international regions. The two-day event kicks off at 10 a.m. on April 7 at the Folsom Street Foundry and will also be live-broadcast exclusively on Chess.com’s Twitch channel (twitch.tv/chess).

Twitch have immense resources behind them, as they are part of Amazon, now.

So, who knows? Maybe this is really a thing?

Shawn McKinney: Introducing a pythonic RBAC API

$
0
0

py-fortress is a Python API implementing Role-Based Access Control level 0 – Core.  It’s still pretty new so there’s going to be some rough edges that will need to be smoothed out in the coming weeks.

To try it out, clone its git repo and use one of the fortress docker images for OpenLDAP or Apache Directory.  The README has the details.

py-fortress git repo

The API is pretty simple to use.

Admin functions work like this

# Add User:
admin_mgr.add_user(User(uid='foo', password='secret'))

# Add Role:
admin_mgr.add_role(Role(name='customer'))

# Assign User:
admin_mgr.assign(User(uid='foo'), Role(name='customer'))

# Add Permission:
admin_mgr.add_perm_obj(PermObj(obj_name='shopping-cart'))
admin_mgr.add_perm(Perm(obj_name='shopping-cart', op_name='checkout'))

# Grant:
admin_mgr.grant(Perm(obj_name='shopping-cart', op_name='checkout'),Role(name='customer')) 

Access control functions

# Create Session, False means mandatory password authentication.
session = access_mgr.create_session(User(uid='foo', password='secret'), False)

# Permission check, returns True if allowed:
result = access_mgr.check_access(session, Perm(obj_name='shopping-cart', op_name='checkout'))

# Get all the permissions allowed for user:
perms = access_mgr.session_perms(session)

# Check a role:
result = access_mgr.is_user_in_role(session, Role(name='customer'))

# Get all roles in the session:
roles = access_mgr.session_roles(session)

 

In addition, there’s the full compliment of review apis as prescribed by RBAC.  If interested, look at the RBAC modules:

Each of the modules have comments that describe the functions, along with their required and optional attributes.

Try it out and let me know what you think.  There will be a release in the near future that will include some additional tooling.  If it takes off, RBAC1 – RBAC3 will follow.

Claus Ibsen: Camel Riders in the Cloud - 30 minute video now online

$
0
0
Last week I presented a DevNation Live session - Camel Riders in the Cloud.
Apache Camel has fundamentally changed the way enterprise Java™ developers think about system-to-system integration by making enterprise integration patterns (EIP) a simple declaration in a lightweight application wrapped and delivered as a single JAR. In this session, we’ll show you how to bring the best practices from the enterprise integration world together with Linux® containers, running on top of Kubernetes / OpenShift, and deployed as microservices, which are both cloud-native and cloud-portable.
The video of this talk has not been processed and uploaded to YouTube - enjoy.


The slides and source code is available on github at: https://github.com/davsclaus/camel-riders-in-the-cloud

I would also encourage you to take a look at the other past sessions from DevNation Live. For example Burr Sutter's excellent session on Istio.

Edward J. Yoon: 에이전트 오브 쉴드 엉뚱 짤막 후기

$
0
0
전형적인 미드 중 하나로 .. 뭔가 스파이 비밀조직에서 팀을 이루고 문제를 해결해나가는 스토리다. 한국은 누구랑 친해? 또는 누구랑 놀지마, 친하게 지내, 그리고 경쟁적이고 아파트 평수로 파를 가르는 문화가 있는데 아이를 키우는 입장에서 정말 부럽다는 생각이 든다. 다양성을 인정하고 팀으로 문제를 해결하는 환경으로 바뀌어나갔으면 좋겠어.

Rob Davies: Making Cloud Native simple: Jenkins X

$
0
0

You have probably heard that all companies are now software companies and that to compete you need to be embracing cloud native applications to ensure your company has the ability to adapt quickly - or you will soon be out of business. This is true by the way, but its also a little daunting for all of us. You have to be an expert in your programming languages of choice, be well versed in how your business works, and now need to understand what exactly cloud native means, what are containers and what are the latest trends in cloud technologies.

So lets make a quick list of things you should be doing:

1. Decompose your monolithic applications - or not. To generalise, you probably really should give this a lot of careful thought: its domain and application specific - i.e. only you can decide if it make sense (but it probably does).

Image result for kubernetes logo2. Containers - or Docker or Moby - which really you need to think about containerd, or rkt  or something that complies with the OCI. Which is why people talk about containers - its all got too confusing.

3. Orchestrating your containers - i.e. service discovery, auto scaling, fault tolerant platform to run your containerised applications. Thankfully, this recently got a whole lot easier - with Kubernetes emerging as the one that will be supported by all the major public clouds, and existing cloud platforms.


4. Configure, release version, rollback and inspect your application deployments in a standard, or de facto standard way. Luckily Helm is excellent for this.
5. CI/CD - in order the extract the most value from cloud native, you need a continuous delivery system that will enable a predictable, repeatable release process, and enable continuous improvement via streamlining your development processes.
6. Monitoring - ideally you want to monitor the performance of your deployed applications and feed this back into your CD system.

This is an intimidating list to look at, but its probably already out of date because technology is moving at such a pace its really difficult to keep up.

@jenkins-xWhat if you could abstract yourself away from all the technology bleeding edge and save yourself the paper cuts - and just concentrate on adding business value? Well this is the aim of Jenkins X - a new project that is part of the Jenkins ecosystem, as explained by James Strachan here.


We started Jenkins X at the begining of the year, taking the experience gained from the fabric8 project to develop an open source system that was targeted at these aims.  By concentrating on Kubernetes and utilising its wider ecosystem at the Cloud Native Computing Foundation, we have been able to develop a robust, targeted project that focuses on the needs of developers of cloud native apps.

In summary Jenkins X provides the following:

1. Abstracts away the gnarly bits of cloud native (you probably don't want be concerned with using skaffold for example). Its all still there, you can peel back the curtain as much as you like, but its nicer if you don't have to.
2. Automated CI/CD Pipelines - using Jenkins, configured to work well for cloud native
3. Environments - promotion using git based work flows, and preview environments  for pull requests.

This is all setup for you - you can aim Jenkins X at an existing project (or create a new one from scratch) - and select your cloud provider of choice and let us do the rest.

A small(ish) caveat: we target Kubernetes, so check here first.

Most public cloud providers allow free trials, or provide credits - which is more than enough to kick the tyres with Jenkins X - or you could try a local-machine solutions, such as Minikube.

Bryan Pendleton: Private Equity 601

$
0
0

On the day that both Claire's and Toys 'R' Us file for bankruptcy, perhaps we can pause briefly and contemplate:

  • How vulture capitalists ate Toys 'R' Us
    After big success in the 1980s, Toys 'R' Us' performance turned lackluster in the 1990s. Sales were flat and profits shrank. Toys 'R' Us was a public company at the time, and the board of directors decided to put it up for sale. The buyers were a real estate investment firm called Vornado, and two private equity firms named KKR and Bain Capital. [...]

    The trio put up $6.6 billion to pay off Toys 'R' Us' shareholders. But it was a leveraged buyout: Only 20 percent came out out of the buyers' pockets. The other 80 percent was borrowed. Once Toys 'R' Us was acquired, it became responsible for paying off that massive debt burden[...]

    [...]

    Whatever magic Bain, KKR, and Vornado were supposed to work never materialized. From the purchase in 2004 through 2016, the company's sales never rose much above $11 billion. They actually fell from $13.5 billion in 2013 back to $11.5 billion in 2017.

  • Claire's Plans Bankruptcy, With Creditors Taking Over
    Claire’s Stores Inc., the fashion accessories chain where legions of preteens got their ears pierced, is preparing to file for bankruptcy in the coming weeks, according to people with knowledge of the plans.

    The company is closing in on a deal in which control would pass from Apollo Global Management LLC to lenders including Elliott Capital Management and Monarch Alternative Capital, according to the people, who asked not to be identified because the matter isn’t public. Venor Capital Management and Diameter Capital Partners are also involved, the people said. The move should help ease the $2 billion debt load at Claire’s.

  • America’s ‘Retail Apocalypse’ Is Really Just Beginning
    The root cause is that many of these long-standing chains are overloaded with debt—often from leveraged buyouts led by private equity firms. There are billions in borrowings on the balance sheets of troubled retailers, and sustaining that load is only going to become harder—even for healthy chains.

    The debt coming due, along with America’s over-stored suburbs and the continued gains of online shopping, has all the makings of a disaster. The spillover will likely flow far and wide across the U.S. economy. There will be displaced low-income workers, shrinking local tax bases and investor losses on stocks, bonds and real estate. If today is considered a retail apocalypse, then what’s coming next could truly be scary.

Justin Mason: Links for 2018-03-19

$
0
0

Justin Mason: Links for 2018-03-20

$
0
0
  • SXSW 2018: A Look Back at the 1960s PLATO Computing System – IEEE Spectrum

    Author Brian Dear on how these terminals were designed for coursework, but students preferred to chat and play games […] “Out of the top 10 programs on PLATO running any day, most were games,” Dear says. “They used more CPU time than anything else.” In one popular game called Empire, players blast each other’s spaceships with phasers and torpedoes in order to take over planets.
    And PLATO had code review built into the OS:
    Another helpful feature that no longer exists was called Term Comment. It allowed users to leave feedback for developers and programmers at any place within a program where they spotted a typo or had trouble completing a task. To do this, the user would simply open a comment box and leave a note right there on the screen. Term Comment would append the comment to the user’s place in the program so that the recipient could easily navigate to it and clearly see the problem, instead of trying to recreate it from scratch on their own system. “That was immensely useful for developers,” Dear says. “If you were doing QA on software, you could quickly comment, and it would track exactly where the user left this comment. We never really got this on the Web, and it’s such a shame that we didn’t.”

    (tags: platocomputinghistorychatempiregamingcode-reviewcodingbrian-dear)

Shawn McKinney: Distal Biceps Disruption

$
0
0

Last week while helping my wife load a household appliance we were donating into her aunt’s pickup was the sickening sound of my right bicep detaching itself from the elbow distal tendon.  The pain was bad, of course, but the realization of the extent of the injury was worse.  Suddenly plans of completing a 3rd consecutive DirtyKanza were nixed.  In addition to a surgical reattachment, performed yesterday, there’s several months of recovery and rehab before I can return to riding once again.

In situations like this one must focus on the positives.

  • Injury to right arm and I’m left-handed.
  • We have health insurance and can take the steps necessary for a full recovery.
  • Support of a wonderful family, friends and employer.
  • I can still code.
  • Inside trainer to maintain conditioning on order.

There’s not much value in thinking about the negatives or what-ifs.  Life has a way of throwing curve balls.  Find a way of knocking the cover off it anyway.

As far as what’s next.  I already mentioned the trainer which will be a way to maintain conditioning during the lull.

magnus-primary

 

Once the splint comes off and the brace is opened enough to hold on I am going to try and get some rides in (despite doctor’s orders) and we’ll see what happens come June 2nd.

DK200-Mud-Anon

photo courtesy of http://www.swiftwick.com/sw/cycling/kanza-does-not-care-

 

 

Matt Raible: Hefe 3.5 Has Been Released! 🎉

$
0
0

"Open up the champagne, pop! 🍾" -- Flo Rida, My House

I’m thrilled to announce that Hefe, my 1966 21-Window VW Bus, is finally finished!

It only took 4,342 days, starting on April 17, 2006 and ending just a couple weeks ago (March 7, 2018).

When I last wrote about Hefe, I mentioned he was in the shop getting a better stereo.

For Hefe's stereo, I tried going phone-only for a controller. This turned out to be a bad idea, mostly due to bit Play HD and its terrible mobile app. Also, Hefe is lowered and a bit bumpy in the front, so trying to use a touch screen while driving doesn't work very well. He's in the shop now getting a new deck installed.

My dad and I visited Elevated Audio to pick him up two weeks ago today. I’ve known the owner, Andrew, ever since I hired him to install a sweet system in Stout the Syncro in 2013. Back then, his business was named Andrew’s Installs. Fast forward five years and his business is thriving. For a good reason too, his team and their attention to detail is magnificent.

It sounds fucking incredible.

Having Hefe finished sometimes makes me misty eyed when I drive him.

I was especially pumped to get Hefe back because we’d signed him up to be in Denver’s St. Patrick’s Day Parade.

That’s where the untold story begins.

Last Friday evening, I washed and polished him to get ready. While cleaning him, I accidentally sprayed a bunch of water on the engine. It’s a no-no to drench a car’s engine when it’s not running. I’d done this to our Syncro six months after we got it and it might’ve contributed to our engine’s untimely death.

Hefe's all dressed up and ready for Denverâs St. Paddy's Parade tomorrow.Hope to see you there! 😍👌🎉

After I finished, I tried to start Hefe. The engine turned over just fine, but it’d barely fire and never catch. I pumped the gas pedal a bunch and eventually gave up thinking I'd flooded the engine. I told myself to revisit the problem in an hour; maybe things would dry out by then.

I didn’t tell Trish about the problem until I’d tried (and failed) to start him an hour later. I took off the distributor cap and dried things out. I wiggled and re-routed some wires. Moving wires around made the spark plugs fire but in the wrong order. I reverted my changes and told Trish the bad news.

We couldn’t be in the parade without a running bus.

I cursed, loudly.

Trish’s high-school friend was flying in from NYC with her family that night. Trish left for the airport to pick them up, suggesting “we could go skiing instead” as she left.

Shortly after, I recognized my lousy attitude and vowed to turn things around.

“Now it’s flooded,” I thought. I knew the wires were correct.

I threw on my University of Denver hockey jersey and went to my living room to finish watching them in a playoff game. They beat the Minnesota Duluth Bulldogs 3-2, and I celebrated with a cold Guinness.

Then I strolled outside, sat in Hefe, told him he could do it and started him right up. 💥

Wahoo! He recovered!!

The parade was epic.

Lined up and ready for Denver’s #stpaddysday parade! 🍀

We all felt glorious; cranking the stereo, blowing bubbles out the top, dancing up a storm, and basking in the happiness that is downtown Denver on St. Paddy’s Day. 🍀🤗

Party's all aroundBubbles

Yes, there will likely be more to do to Hefe in the coming years. That’s OK. He inspires smiles every time I drive him and providing joy to people is a beautiful experience.

Kudos to all seven Colorado shops that made Hefe possible. I won’t say he’s worth every penny, but he’s pretty darn close! 😍

Christian Schneider: Karaf Tutorial Part 1 - Installation and First application

$
0
0

Blog post edited by Christian Schneider

Getting StartedWith this post I am beginning a series of posts about Apache Karaf, an OSGi container based on Equinox or Felix. The main difference to these frameworks is that it brings excellent management features with it.Outstanding features of Karaf:

  • Extensible Console with Bash like completion features
  • ssh console
  • deployment of bundles and features from maven repositories
  • easy creation of new instances from command line

All together these features make developing server based OSGi applications almost as easy as regular java applications. Deployment and management is on a level that is much better than all applications servers I have seen till now. All this is combined with a small footprint as well of karaf as the resulting applications. In my opinion this allows a light weight development style like JEE 6 together with the flexibility of spring applications.

Installation and first startup

  • Download Karaf 4.0.7 from the Karaf web site.
  • Extract and start with bin/karaf

You should see the welcome screen:

        __ __                  ____
       / //_/____ __________ _/ __/
      / ,<  / __ `/ ___/ __ `/ /_
     / /| |/ /_/ / /  / /_/ / __/
    /_/ |_|\__,_/_/   \__,_/_/

  Apache Karaf (4.0.7)

Hit '<tab>' for a list of available commands
and '[cmd] \--help' for help on a specific command.
Hit '<ctrl-d>' or 'osgi:shutdown' to shutdown Karaf.

karaf@root()>

Some handy commands

CommandDescription
la
Shows all installed bundles
listShow user bundles
service:list
Shows the active OSGi services. This list is quite long. Here it is quite handy that you can use unix pipes like "ls | grep admin"
exports
Shows exported packages and bundles providing them. This helps to find out where a package may come from.
feature:list
Shows which features are installed and can be installed.
feature:install webconsole

Install features (a list of bundles and other features). Using the above command we install the Karaf webconsole.

It can be reached at http://localhost:8181/system/console . Log in with karaf/karaf and take some time to see what it has to offer.

diagShow diagnostic information for bundles that could not be started
log:tailShow the log. Use ctrl-c to  go back to Console
Ctrl-dExit the console. If this is the main console karaf will also be stopped.

OSGi containers preserve state after restarts

Please note that Karaf like all osgi containers maintains it´s last state of installed and started bundles. So if something should not work anymore a restart is not sure to help. To really start fresh again stop karaf and delete the data directory or start with bin/karaf clean.

Check the logs

Karaf is very silent. To not miss error messages always keep a tail -f data/karaf.log open !!

Tasklist - A small osgi application

Without any useful application Karaf is a nice but useless container. So let´s create our first application. The good news is that creating an OSGi application is quite easy and
maven can help a lot. The difference to a normal maven project is quite small. To write the application I recommend to use Eclipse 4 with the m2eclipse plugin which is installed by default on current versions.

Get the source code from the Karaf-Tutorial repo at github.

git clone https://github.com/cschneider/Karaf-Tutorial.git

or download the sample project from https://github.com/cschneider/Karaf-Tutorial/zipball/master and extract to a directory.

Import into Eclipse

  • Start Eclipse Neon or newer
  • In Eclipse Package explorer: Import -> Existing maven project -> Browse to the extracted directory into the tasklist sub dir
  • Eclipse will show all maven projects it finds
  • Click through to import all projects with defaults

Eclipse will now import the projects and wire all dependencies using m2eclipse.

The tasklist example consists of these projects

ModuleDescription
tasklist-modelService interface and Task class
tasklist-persistenceSimple persistence implementation that offers a TaskService
tasklist-uiServlet that displays the tasklist using a TaskService
tasklist-featuresFeatures descriptor for the application that makes installing in Karaf very easy

Parent pom and general project setup

The pom.xml is of packaging bundle and the maven-bundle-plugin creates the jar with an OSGi Manifest. By default the plugin imports all packages that are imported in java files or referenced in the blueprint context.

It also exports all packages that do not contain the string impl or internal. In our case we want the model package to be imported but not the persistence.impl package. As the naming convention is used
we need no additional configuration.

Tasklist-model

This project contains the domain model in our case it is the Task class and a TaskService interface. The model is used by both the persistence implementation and the user interface.  Any user of the TaskService will only need the model. So it is never directly bound to our current implementation.

Tasklist-persistence

The very simple persistence implementation TaskServiceImpl manages tasks in a simple HashMap. The class uses the @Singleton annotation to expose the class as an blueprint bean.

The annotation @Service will expose the bean as an OSGi service and the properties attribute allows to add serice properties. In our case the property service.exported.interfaces we set can be used by CXF-DOSGi which we present  in a later tutorial. For this tutorial the properties could also be removed.

@Service(classes=TaskService.class,
    properties= {
		@ServiceProperty(name = "service.exported.interfaces", values = "*")
    }
)
@Singleton
public class TaskServiceImpl implements TaskService {
	...
}

The blueprint-maven-plugin will process the class above and automatically create the suitable blueprint xml. So this saves us from writing blueprint xml by hand.

Automatically created blueprint xml can be found in target/generated-resources
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
	<bean id="taskService" class="net.lr.tasklist.persistence.impl.TaskServiceImpl" />
	<service ref="taskService" interface="net.lr.tasklist.model.TaskService" />
</blueprint>

Tasklist-ui

The ui project contains a small servlet TaskServlet to display the tasklist and individual tasks. To work with the tasks the servlet needs the TaskService. We inject the TaskService by using the annotation @Inject which is able to inject any bean by type and the annotation @OsgiService which creates a blueprint reference to an OSGiSerivce of the given type.

The whole class is exposed as an OSGi service of interface java.http.Servlet with a special property alias=/tasklist. This triggers the whiteboard extender of pax web which picks up the service and exports it as a servlet at the relative url /tasklist.

Snippet of the relevant code:

@Service(classes = Servlet.class,
    properties = {
		@ServiceProperty(name = "osgi.http.whiteboard.servlet.pattern", values = "/tasklist")
	}
) 
@Singleton
public class TaskListServlet extends HttpServlet {
    @Inject @OsgiService
    TaskService taskService;
}
Automatically created blueprint xml can be found in target/generated-resources
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
	<reference id="taskService" availability="mandatory" interface="net.lr.tasklist.model.TaskService" />
	<bean id="taskServlet" class="net.lr.tasklist.ui.TaskListServlet">
		<property name="taskService" ref="taskService"></property>
	</bean>
	<service ref="taskServlet" interface="javax.servlet.http.HttpServlet">
		<service-properties>
			<entry key="alias" value="/tasklist" />
		</service-properties>
	</service>
</blueprint>

See also: http://wiki.ops4j.org/display/paxweb/Whiteboard+Extender

Tasklist-features

The last project only installs a feature descriptor to the maven repository so we can install it easily in Karaf. The descriptor defines a feature named tasklist and the bundles to be installed from
the maven repository.

<feature name="example-tasklist-persistence" version="${pom.version}">
    <feature>aries-blueprint</feature>
    <bundle>mvn:net.lr.tasklist/tasklist-model/${pom.version}</bundle>
    <bundle>mvn:net.lr.tasklist/tasklist-persistence/${pom.version}</bundle>
</feature>

<feature name="example-tasklist-ui" version="${pom.version}">
    <feature>aries-blueprint</feature>
    <feature>http</feature>
    <feature>http-whiteboard</feature>
    <bundle>mvn:net.lr.tasklist/tasklist-model/${pom.version}</bundle>
    <bundle>mvn:net.lr.tasklist/tasklist-ui/${pom.version}</bundle>
</feature>

A feature can consist of other features that also should be installed and bundles to be installed. The bundles typically use mvn urls. This means they are loaded from the configured maven repositories or your local maven repositiory in ~/.m2/repository.

Installing the Application in Karaf

feature:repo-add mvn:net.lr.tasklist/tasklist-features/1.0.0-SNAPSHOT/xml
feature:install example-tasklist-persistence example-tasklist-ui

Add the features descriptor to Karaf so it is added to the available features, then Install and start the tasklist feature. After this command the tasklist application should run

list 

Check that all bundles of tasklist are active. If not try to start them and check the log.

http:list

ID | Servlet         | Servlet-Name   | State       | Alias     | Url
-------------------------------------------------------------------------------
56 | TaskListServlet | ServletModel-2 | Deployed    | /tasklist | [/tasklist/*]

Should show the TaskListServlet. By default the example will start at http://localhost:8181/tasklist .

You can change the port by creating aa text file in "etc/org.ops4j.pax.web.cfg" with the content "org.osgi.service.http.port=8080". This will tell the HttpService to use the port 8080. Now the tasklist application should be available at http://localhost:8080/tasklist

Summary

In this tutorial we have installed Karaf and learned some commands. Then we created a small OSGi application that shows servlets, OSGi services, blueprint and the whiteboard pattern.

In the next tutorial we take a look at using Apache Camel and Apache CXF on OSGi.

Back to Karaf Tutorials



Justin Mason: Links for 2018-03-21

Justin Mason: Links for 2018-03-22

$
0
0
  • Arena

    Film by Páraic McGloughlin A brief look at the earth from above, based on the shapes we make, the game of life, our playing ground – Arena. Created using Google Earth imagery. Pearse McGloughlin and I collaborated on the audio resulting in something between music and a soundtrack. Audio mastered by TJ LippleHear

Isabel Drost: My board nomination statement 2018

$
0
0
Two days ago the Apache Software Foundation members meeting started. One of the outcomes of each members meeting is an elected board of directors. The way that works is explained here: Annual Apache members meeting. As explained in the linked post, members accepting their nomination to become a

director are supposed to provide a nomination statement. This year they were also asked to answer a set of questions so members could better decide who to vote for.

As one of my favourite pet peeves is to make the inner workings of the foundation more transparent to outsiders (and have said so in the nomination statement) - I would like to start by publishing my own nomination statement here for others to read who don't have access to our internal communication channels:

Board statement:

Two years ago I was put on a roller coaster by being nominated as Apache board member which subsequently meant I got to serve on the board in 2016. Little did I know what kind of questions were waiting for me.

Much like back then I won't treat this position statement as a voting campaign. I don't claim to have answers to all the questions we face as we grow larger - however I believe being a board member even at our size should be something that is fun. Something that is lightweight enough so people don't outright decline their nominations just for lack of time.

One thing I learnt the hard way is scalability needs two major ingredients: Breaking dependencies and distribution of workload. Call me old-fashioned (even though chemistry can hide my gray hair, my preference for mutt as a mail client betrays my age), but I believe we already have some of the core values to achieve just that:
  • "Community over code" to me includes rewarding contributions that aren't code. I believe it is important to get people into the foundation that are committed to both our projects as well as the foundation itself - helping us in all sorts of ways, including but not limited to coding, documenting, marketing, mentoring, legal, education and more.
  • "What didn't happen on the mailing list didn't happen" to me means communicating as publicly as possible (while keeping privacy as needed) to enable others to better understand where we are, how we work, what we value and ultimately how to help us. I would like for us to think twice before sending information to private lists - both at the project and at the operational level.
  • I believe we can do better in getting those into the loop who have a vested interest in seeing that our projects are run in a vendor neutral way: Our downstream users who rely on Apache projects for their daily work.
I am married to a Linux kernel geek working for the Amazon kernel and operating systems team - I've learnt a long time ago that the Open Source world is bigger than just one project, bigger than just one foundation. Expect me to keep the bigger picture in mind during my work here that is not ASF exclusive.

Much like Bertrand I'm a European - that means I do see value in time spent offline, in being disconnected. I would like to urge others to take that liberty as well - if not for yourselves, then at least to highlight where we are still lacking in terms of number of people that can take care of a vital role.

As you may have guessed from the time it took for me to accept this nomination, I didn't take the decision lightly. For starters semi-regularly following the discussion on board@ to me feels like there are people way more capable than myself. Seeing just how active people are feels like my time budget is way too limited.

So what made me accept? I consider myself lucky seeing people nominated for the Apache board who are capable leaders that bring very diverse skills, capabilities and knowledge with them that taken together will make an awesome board of directors.

I know that with FOSS Backstage one other "pet project of mine" is in capable hands, so I don't need to be involved in it on a day-to-day basis.

Last but not least I haven't forgotten that back in autumn 2016 Lars Trieloff* told me that I am a role model: Being an ASF director, while still working in tech, with a today three year old at home. As the saying goes "Wege entstehen dadurch, dass man sie geht" - free-form translation: "paths are created by walking them." So instead of pre-emptively declining my nomination I would like to find a way to make the role of being a Director at the Apache Software Foundation something that is manageable for a volunteer. Maybe along that way we'll find a piece in the puzzle to the question of who watches the watchmen - how do we reduce the number of volunteers that we burn through, operating at a sustainable level, enabling people outside of the board of directors to take over or help with tasks.

* Whom I know through the Apache Dinner/ Lunch Berlin that I used to organise what feels like ages ago. We should totally re-instate that again now that there are so many ASF affiliated people in or close to Berlin. Any volunteers? The one who organises gets to choose date and location after all ;)

Answers to questions to the board nominees:

On Thu, Mar 15, 2018 at 01:57:07PM +0100, Daniel Gruno wrote:
> Missions, Visions...and Decisions:
> - The ASF exists with a primary goal of "providing open source
> software to the public, at no charge". What do you consider to be
> the foundation's most important secondary (implicit) goal?


I learnt a lot about what is valuable to us in the following discussion:

https://s.apache.org/hadw

(and the following public thread over on dev@community with the same subject. My main take-away from there came from Bertrand: The value we are giving back to projects is by providing "A neutral space where they can operate according to our well established best practices."

The second learning I had just recently when I had the chance of thinking through some of the values that are encoded in our Bylaws that you do not find in those of other organisations: At the ASF you pay for influence with time (someone I respect a lot extended that by stating that you actually pay with time and love).

> - Looking ahead, 5 years, 10 years...what do you hope the biggest
> change (that you can conceivably contribute to) to the foundation
> will be, if any? What are your greatest concerns?


One year ago I had no idea that little over two months from now we would have something like FOSS Backstage here in Berlin: One thing the ASF has taught me is that predicting the future is futile - the community as a whole will make changes in this world that are way bigger than the individual contributions taken together.

> < - Which aspect(s) (if any) of the way the ASF operates today are you > least satisfied with? What would you do to change it?

Those are in my position statement already.

> #######################################

> Budget and Operations:
> - Which roles do you envision moving towards paid roles. Is this the
> right move, and if not, what can we do to prevent/delay this?
>

Honestly I cannot judge what's right and wrong here. I do know that burning through volunteers to me is not an option. What I would like to hear from you as a member is what you would need to step up and do operational tasks at the ASF.

Some random thoughts: - Do we have the right people in our membership that can fill these operational roles? Are we doing a good enough job in bringing people in with all sorts of backgrounds, who have done all sorts of types of contributions? - Are we doing a good enough job at making transparent where the foundation needs operational help? Are those roles small enough to be filled by one individual?

This question could be read like today work at the ASF is not paid for. This is far from true - both at the project as well as at the operational level. What I think we need is collective understanding of what the implications of various funding models are: Even if the ASF doesn't accept payment for development doesn't directly imply that projects are more independent as a result. I would assume the same to be true at the operational level.

> #######################################
>
> Membership and Governance:
> - Should the membership play a more prominent role in
> decision-making at the ASF? If so, where do you propose this be?


I may be naive but I still believe in the "those who do the work are those who take decisions". There only close to a dozen people who participated in the "ask the members questionaire" I sent around - something that was troubling for me to see was how pretty much everyone wanted

> - What would be your take on the cohesion of the ASF, the PMCs, the
> membership and the communities. Are we one big happy family, or
> just a bunch of silos? Where do you see it heading, and where do
> we need to take action, if anywhere?


If "one big happy family" conjures the picture of people with smiling faces only, than that is a very cheesy image of a family that in my experience doesn't reflect reality of what families typically look like.

This year at FOSDEM in Brussels we had a dinner table of maybe 15 people (while I did book the table, I don't remember the exact number - over-provisioning and a bit of improvisation helped a lot in making things scale) from various projects, who joined at various times. I do remember a lot of laughter at that table. If anything I think we need the help people to bump into each other face to face independently of their respective project community more often.

> - If you were in charge of overall community development (sorry,
> Sharan!), what would you focus on as your primary and secondary
> goal? How would you implement what you think is needed to achieve
> this?


I'm not in charge in that - nor would I want to be, nor should I be. The value I see in the ASF is that we rely very heavily on self organisation, so this foundation is what each individual in it makes out of it - and to me those individuals aren't limited to foundation members, PMC members or even committers. In each Apache Way talk I've seen (and everytime I explain the Apache Way to people) the explanation starts with our projects' downstream users.

> Show and Tell:

I'm not much of a show and tell person. At ApacheCon Oakland I once was seeking help with getting a press article about ApacheCon reviewed. It was easy finding a volunteer to proof-read the article. The reason for that ease given by the volunteer themselves? What they got out of their contributions to the ASF was much bigger than anything they put into it. That observation holds true for me as well - and I do hope that this is true for everyone here who is even mildly active.

Bruce Snyder: More Muscle Movement Discovered Recently

$
0
0
Recently I paid a visit to my physical therapist. I only see every 2-3 months to check in and guide me on the physical therapy work that I do on my own. She always checks out my progress to see how my body is doing and this time she found something new -- the tibialis muscles in both my legs are moving now!

The anterior tibialis muscles are what allow you to flex your feet upwards (this is called dorsal flexion). So far, I have only been able to press my feet down (this is called plantar flexion) because this is controlled by the calf muscles. But now that the anterior tibialis muscles are moving ever so slightly, I can begin to rebuild these as well. Just like my calves are taking time, these muscles will also take time to rebuild as well.

I am still working to rebuild my calf muscles and this is slow. My physical therapist reminded me that I'm not just strengthening my calves. I literally had no calf muscles left. So I am rebuilding my calves from nothing which is much more difficult. She also said that at this point, we have no idea if the calves are fully firing or not. In situations where there is nerve damage, you never know if you are getting a full squeeze from the muscle or if the whole muscle is firing yet. This makes the work much, much more difficult. She also told me that this is why most people give up.

My calves are increasing in size and strength, but they are very far from 100% functionality or strength. I still have a long way to go. But I still feel lucky to be where I'm at today with my body still healing.

Justin Mason: Links for 2018-03-23

$
0
0
  • Brad Templeton’s commentary on the Uber robocar killing a pedestrian

    At this point, it does seem as though a wrongful death lawsuit might emerge from the family of the victim. The fame for the lawyer will cause pro bono representation to appear, and the deep pockets of Uber will certainly be attractive. I recommend Uber immediately offer a settlement the courts would consider generous. And tell us more information about what really happened. And, if it’s as surmised, to get their act together. The hard truth is, that if Uber’s vehicle is unable to detect a pedestrian like this in time to stop, Uber has no business testing at 40mph on a road like this. Certainly not with an inattentive solo safety driver.
    It certainly sounds like they need to answer questions about LIDAR usage on that car.

Viewing all 9364 articles
Browse latest View live




Latest Images