Rachel Roumeliotis

Rachel Roumeliotis, a Strategic Content Director at O'Reilly Media, Inc., leads an editorial team that covers a wide variety of programming topics ranging from full-stack, to open source in the enterprise, to emerging programming languages. She is a Programming Chair of OSCON and O'Reilly's Software Architecture Conference. She has been working in technical publishing for 10 years, acquiring content in many areas including mobile programming, UX, computer security, and AI.

Django Is Python’s Most Mature Web Framework

Testing, Python 3, and Dealing with Technical Debt

Nathan Yergler (@nyergler), Principal Engineer at Eventbrite, and I had a chance to talk Django at OSCON 2013. We talk about why Django is the go-to choice for Pythonistas and about the growing technical debt that each programmer has to deal with on Python projects and beyond.

Key highlights include:

  • Django is mature and feature complete amidst many Python frameworks [Discussed at 0:15]
  • Testing in Django leads to straightforward code that the next programmer can read as well as you can [Discussed at 1:02]
  • Dare we discuss Django’s weaknesses like: Is Django too monolithic? [Discussed at 2:43]
  • Django at long last supports Python 3! Check out Django 1.5 [Discussed at 4:06]
  • Dealing with technical debt while programming [Discussed at 5:36]

You can view the full interview here:

Read more…

Comment

Raspberry Pi Tips

Simon Monk, full-time author of open source hardware books, talks to me about getting started with the Raspberry Pi.

Comment

Graph Databases

Emil Eifrem talks about graph databases why and when to use them and how they are taking over the database world!

Comment

A Programming Life: Choose Your Own Adventure

Honesty, Evaluation, and a Success Story

I caught up with, Amye Scavarda (@amye), Client Advisor, Acquia, and Leslie Hawthorn (@lhawthorn), Community Manager, Elasticsearch at OSCON 2013 where both gave a talk on how to grow a career, that you’ll enjoy, in the open source world and beyond. Turns out it might not be so hard.

Key highlights include:

  • Some old school first steps in taking a look at your work life [Discussed at 0:57]
  • Don’t start by trying to improve what you are worst at [Discussed at 2:38]
  • How and when should you learn new programming languages? It depends. [Discussed at 4:09]
  • Success stories aka how this has worked for Amye [Discussed at 5:24]

You can view the full interview here:

Read more…

Comment

A Quick Look at the Go Programming Language

Great at Concurrency, Easy to Learn, and Still Going Strong

Francesc Campoy Flores (@campoy83) is a Go Developer Programs Engineer at Google. I had the chance to sit down with Francesc to check in on where Go is more than a year after the 1.0 release. Turns out Go is still going strong and is a viable option for system programming over Java or C. You can get more best practice info here.

Key highlights include:

  • Goals of the Go Programming Language [Discussed at 0:14]
  • Concurrency in Go rocks! [Discussed at 1:13]
  • Developing an open source language [Discussed at 1:59]
  • Best practices from the Go Community [Discussed at 4:58]

You can view the full interview here:


Read more…

Comment: 1

The Open Compute Project

You Are Invited to Optimize Computer Infrastructure

Jay Parikh (@jayparikh) is VP Infrastructure, Facebook. We talk about where The Open Compute Project has been and where it is going! For more information check out The Open Compute Project website.

Key highlights include:

  • Find out about the Open Compute Project [Discussed at 0:13]
  • It’s all about open hardware [Discussed at 1:10]
  • Facebook data centers have been optimized [Discussed at 2:12]
  • How do you get involved? [Discussed at 3:33]

You can view the full interview here:

Read more…

Comment

The Ever-Changing Landscape of Mobile Gaming

Unity, iOS 7, and the Quest for a Great Mobile Game Experience

Jon Manning (@desplesda) and Paris Buttfield-Addison (@parisba) talk with me about where mobile gaming is going in the next 12 months.

Key highlights include:

  • Game-specific APIs and standardized gaming accessories in iOS 7 [Discussed at 0:20]
  • Android needs to catch up [Discussed at 1:55]
  • Are tablets putting handheld consoles from Nintendo and Sony out of business? [Discussed at 3:13]
  • Independent developers vs big game studios – fight! [Discussed at 4:53]
  • Unity is now free for mobile game development [Discussed at 6:02]

You can view the full interview here:

Read more…

Comment

Controlling Drones with Clojure

OSCON 2013 Speaker Series

Carin Meier (@carinmeier) is Artisan at Neo, Founder of Gigsquid Software and OSCON 2013 Speaker. In this interview we talk about her love of Clojure and how she created a library to control her AR drone with it!

Key highlights include:

  • Clojure, a modern Lisp? [Discussed at 0:20]
  • Immutable data structures make Clojure powerful [Discussed at 1:01]
  • Yes, you can program an AR drone in Clojure [Discussed at 2:04]
  • But, how do you get started? It just takes three lines of code [Discussed at 3:47]

For the code behind the drone and Carin’s language Babar (inspired by Elephant 2000) check out her github page.

You can view the full interview here:

Read more…

Comment

Rotating a UIView in 3D

OSCON 2013 Speaker Series


Jon Manning (@desplesda) and Paris Buttfield-Addison (@parisba) are co-founders of Secret Lab and authors of the forthcoming Learning Cocoa with Objective-C, 3rd Edition. They’ll be speaking at OSCON this week in Portland, OR. Here they explain how to rotate a UIView in 3D on iOS.


One of the simplest visual tricks you can do in iOS is to make a part of your UI pretend to be a 3D object. We’ve found that this is an excellent way to add some life and visual interest to both apps and games.

Below, you’ll learn how to make a view rotate in 3D and have a perspective effect.

phone

First, your project needs to use the QuartzCore framework.

Next, when you want the animation to begin, you do this:

To stop the animation, you do this:

How It Works

CABasicAnimation allows you to animate a property of a view from one value to another. In the case of rotating a view, the property that we want to animate is its rotation, and the values we want to animate from and to are angles.

When you create the animation using [CABasicAnimation animationWithKeyPath:], you specify the property you want to animate. In this case, the one we want is the rotation around the Y axis.

The animation is then configured. In this example, we made the rotation start from zero, and proceed through to a full circle. In Core Animation, angles are measured in radians, and there are 2 * π radians in a full circle. So, the from value and to value are set thusly:

Next, the animation is told that it should repeat an infinite number of times, and that the full rotation should take 5 seconds.

The animation is started by adding the animation to the view’s layer, using the addAnimation:forKey: method. This method takes two parameters: the animation object that you want to use, and a key (or name) that the animation should be referred by.

Don’t be confused by the similarity between the “key” that you use when you add the animation, and the “key path” you use when creating the animation. The former is just a name you give the animation, and can be anything; the “key path” describes exactly what the animation modifies.

The last step to this is to give the rotating view a little perspective. If you run the code while omitting the last few lines, you’ll end up with a view that appears to horizontally squash and stretch. What you want is for the edge that’s approaching the user’s eye to appear to get bigger, while the edge that’s moving away from the user’s eye to get smaller.

This is done by modifying the view’s 3D transform. By default, all views have a transform matrix applied to them that makes them all lie flat over each other. When you want something to have perspective, though, this doesn’t apply, and we need to override it.

The key to this part of the code is the second line: the one where the m34 field of the transform is updated. This part of the transform controls the sharpness of the perspective. (It’s basically how much the z coordinate gets scaled towards or away from the vanishing point as it moves closer to or further from the “camera“.)

As you can see, adding 3D and perspective effects isn’t terribly difficult, but the results can provide an excellent payoff in terms of user immersion.

Comment

Enterprise Data Workflows with Cascading

OSCON 2013 Speaker Series

Paco Nathan (@pacoid) is Director of Data Science at Concurrent, O’Reilly Author, and OSCON 2013 Speaker. In this interview we talk about creating enterprise data workflow with Cascading. Be sure to check out Paco’s book on the subject here

NOTE: If you are interested in attending OSCON to check out Paco’s talk or the many other cool sessions, click over to the OSCON website where you can use the discount code OS13PROG to get 20% your registration fee.

Key highlights include:

  • Cascading is an abstraction layer on top of Hadoop [Discussed at 0:23]
  • Define your business logic at a high level [Discussed at 1:21]
  • Is Cascading good for enterprise? [Discussed at 2:31]
  • Test-driven development at scale [Discussed at 3:35]
  • Cascalog and the City of Palo Alto Open Data portal [Discussed at 7:39]

You can view the full interview here:

Read more…

Comment