erubycon: Charles Nutter – Ruby on Rails Podcast

Charles Nutter of JRuby, from erubycon.

Sponsor

erubycon: Charles Nutter – Ruby on Rails Podcast

Charles Nutter of JRuby, from erubycon.

Sponsor

#129 Custom Daemon

Creating a custom daemon to handle background tasks is surprisingly simple. In this episode I will make a daemon to handle dynamically scheduled tasks.

#129 Custom Daemon

Creating a custom daemon to handle background tasks is surprisingly simple. In this episode I will make a daemon to handle dynamically scheduled tasks.

First Apple Store in Switzerland and it’s in Geneva my ex-home town.

2202E22E-571F-4452-BD1F-1298E43E8A10.jpg

Photo from iphonemag.ch.

Cool now my brother doesn’t have to bug me to check out stuff at the Apple Store every time something new comes out ;-).

Also with the current value of the dollars you now can buy a MacBook Air for 199 Swiss Francs 🙂

iPhone NDA – Call for arms [Update: NDA lifted :-)]

UPDATE: today (10/01/2008) Apple lifted the iPhone NDA. New agreement will come out in a week (or so).

Until now I wasn’t concerned about the iPhone NDA as the iPhone is really cool, there are nice apps appearing on the App Store and face it, this platform is there to stay, the iPhone is just impressively useful and versatile. But recent news on applications being rejected by Apple for undefined reasons and the fact that the pragmatic programmers book on iPhone was pulled due to the NDA, ticked me off. That’s what the “Prag’s” released in their news: “It now appears that Apple does not intend to lift the NDA any time soon. Regrettably, this means we are pulling our iPhone book out of production.”

Damn that! That was THE book I was waiting for. I am a developer, did Objective-C development on NeXTSTEP 15 years ago and follow closely what’s going on with the iPhone. I was one of the first admitted to the iPhone developer program and I am certainly bound by NDA beyond my comprehension, but I was also really hoping that the platform would open up. Early on it made sense as Apple wants to have the “Wow” factor when they first announce their product, and that’s worth millions to them. But now that the phone is out for quite a while, that all Apple competitors have access to all the beta SDKs, let me ask you this:

WHY?

Why does Apple keeps this NDA…I just doesn’t make sense. Let the development community go crazy, share the knowledge, create something unique beyond what you have. Apple, you are making your development community ANGRY.

I tried to find a good reasons why there is still this NDA in place, but there is just no reason. What did I miss? What has Apple to gain? What can we do?

Please leave your thought as comment here after.

Daniel.

Hello, New York

By way of the obligatory sorry-I-haven’t-blogged-much-lately apologette, I should say that life has been busy this summer. The second biggest deal for me was, get this, moving to New York City. Yes, I know I just moved to a new place in San Francisco, and no, I haven’t given up on my favorite city. It’s a temporary move and I should be back in SF by the end of the year. What happened is that Pivotal Labs has opened an office in Manhattan, and I’ve come out to work on client projects and help get the office going. The takeaway on that is that Pivotal Labs is available for projects in New York, and we’re also looking to hire top-notch Rails developers to work with us here.

The word I have to pick to describe New York is vital. That’s true of the city in general, but from what I’ve heard it’s also true of the Ruby development community. I am looking forward to getting to hang with folks here and see what I can learn from the other coast. There’s a lot of Ruby developer events around here. I’m going to start with the nyc.rb hackfest tomorrow.

While I’m out here on the East Coast, I’m going to hit up some conferences. In November I’ll be attending RubyConf 2008 in Orlando. Then later that month I’ll be at the Voices That Matter: Professional Ruby Conference, giving a talk entitled “Ruby: Fragile or Agile?”

In the mean time, where’s the best pizza in New York?

Full time hard core Flex Developer position in Denver.

One of my customers, Fiserv Insurance Solutions, looks for an experienced Flex Developer for one of it’s new project. In short they are looking for a good Flex developer. Here is an extract of the job post and you can read more about here.

We are seeking a senior level software developer proficient in ActionScript and Flex to join our team building the cutting-edge browser-based applications. Extensive experience with Rich Internet Application (RIA) development using Adobe Flex and ActionScript is required. You will be involved in designing and implementing a creative and innovative application platform with Adobe Flex which will be used to build very large projects (300+ screens). Qualified applicants will have 3+ years of in-depth ActionScript development experience developing RIA applications, and at least a year of full time, hard core Flex experience. Also required is experience with Flex Remoting (AMF) and experience with Flex frameworks such as Mate, PureMVC or Cairngorm.

Knowledge and Desire Skills

  • Experience with Flex MVC frameworks: Mate, Cairngorm, etc.
  • Source control system
  • Agile development methodology, SCRUM preferred
  • Effective, creative problem solving skills
  • Strong organization skills, self-motivated, team player
  • Excellent verbal and written communication skills
  • MUST be proficient in ActionScript 3.0 and Adobe Flex development
  • Experience with custom component development
  • Extensive experience with AS3 & MXML
  • Experience building large, enterprise applications with Flex
  • Strong Object Oriented Programming expertise

Deep understanding of Flex internals:

  • data binding
  • event system
  • data grids & custom renderers
  • module-based application development
  • internationalization & localization
  • AMF Remoting

#128 Starling and Workling

Need to run a task frequently in the background? Starling and Workling is a killer combination for doing just that. See how in this episode.

#128 Starling and Workling

Need to run a task frequently in the background? Starling and Workling is a killer combination for doing just that. See how in this episode.

Lesson Learned: Git Ref Naming

Our team has been working our way into the Git world. One of our big client projects is now 100% git while the other is still on Subversion for another month or so. (I’m getting by with git-svn, the gateway drug on that). We’ve had pretty much nothing but success with Git for quite some time, but recently this repository started to get chaotic, which has eaten up time… which isn’t conducive to productivity.

So, I wanted to share a quick lesson that we learned today after scratching our head for a while. It’s important that you avoid having a branch on a remote repository that shares the name of a tag in your local and/or remote repository.

I REPEAT.

It’s bad mojo to have a tag and branch share the same name. Things that you’d expect to just work… don’t. This was causing us to see warnings and errors like the following, which we weren’t really sure what to make of it.

“warning: refname ‘staging’ is ambiguous.

“error: src refspec staging matches more than one.”

This started about two weeks ago when we started a few new remote branches: staging and design. It seemed to be going okay but we managed to muck up things when we merged those two together and some of us were having success fetching/pulling/pushing to staging and others were having to specify :heads/staging and couldn’t have a local branch named staging. Needless to say, it was causing some problems and slowing us down.

This afternoon, we finally noticed in the GitHub interface that there was a tag named staging. Hmm… interesting. We verified this by using git show-ref.


git:(master): git show-ref | grep staging
6a18119ca9.... refs/heads/staging
82caa5f121.... refs/remotes/origin/staging
6a18119ca9.... refs/tags/staging

Notice the tag reference at the end? After asking in #git, we were able to remove the tag with the following:

git tag -d staging

Then we needed to remove the reference of staging on Github with git push origin :staging. (we got rid of the remote branch temporarily as well so that we could clean this up).

The next step was to push our local branch back out to the remote branch git push origin staging:staging…. and now we’re back in business with a simple:

git checkout --track -b staging origin/staging

Anyhow, if you end up having those warnings/errors above, you might take a look at git-show-ref to see what is in your local repository as this could be causing you some unnecessary headaches.

Kudos to Allison for taking the time to really read and digest the git documentation, which helped us figure this shit out. 🙂

Since we’re still learning to get around through things like this, if you have any more insight into this issue, feel free to help educate us a bit by sharing your wisdom in response to this post. 🙂

Sarah Palin Email…forget privacy on the net.

I was watching Bill O’reilly on Fox and just saw that Sarah Palin’s email account was hacked and leaked to on the internet…that’s 11 or more hours after the fact apparently and I wanted to do a quick check if they managed to stop the propagation of these emails. I said to myself, left see if I can get access to the full text in less than 5 minutes starting on Google. Well, it didn’t work out, but many source reported the information, but most of the sites that have it are currently down. But in short, on the net just forget about privacy. I know, you don’t want your private stuff to be out there, but it eventually will be. I don’t want the picture of my kids on the net…but if they once get indexed by on of the bots…google and others..they are out there. Now I hope my emails don’t become public…but emails are not secure anyhow unless you encrypt them.

So here is what my quick search returned:

Well that was futile search, but I wanted to see how news spreads on the internet and how the force will try to stop it. Now it’s time to check out Star Wars the Force Unleashed for the iPhone.

Now for the readers of my blog, this has nothing to do with Flex or Rails, but hey! Also if you wonder what I was doing watching O’Reilly, let’s simply say I watch many news source from many countries and like diversity of information, but very often I don’t share his or Fox way of propaganda, but I enjoy the topics addressed.

That’s the most political blog ever as I don’t want to bug my readers here, I’m definitively less expressive than my friend John, but in any case and for the future or the country my children, go Obama!

erubycon: Jim Weirich – Ruby on Rails Podcast

Jim Weirich, from erubycon.

Sponsor

erubycon: Jim Weirich – Ruby on Rails Podcast

Jim Weirich, from erubycon.

Sponsor

#127 Rake in Background

In need of a background process? You may be able to accomplish this with a simple Rake task. See how in this episode.

#127 Rake in Background

In need of a background process? You may be able to accomplish this with a simple Rake task. See how in this episode.

Unintrusive but secure passwordless ssh authentication

On a daily basis I need to log in to many remote servers inside or outside of Sun via SSH, often dozens of times per day. This can get pretty tiresome if you need to type in your password with every log in.

Some suggest setting up so-called “passwordless” authentication by generating ssh keys and specifying empty passphrase for the private key. This will result in passwordless authentication, but will also decreased security. Should anyone get hold of your private key, (s)he’ll get access to all of your remote systems.

ssh-agent can help a lot in keeping the security level high and minimizing the number of times you need to type in the password. However, if you use a terminal with tabs or use both local and remote terminals on your workstation, you’ll end up running many ssh-agent processes and having to authenticate every time you start such a process,

Continue reading “Unintrusive but secure passwordless ssh authentication”

Unintrusive but secure passwordless ssh authentication

On a daily basis I need to log in to many remote servers inside or outside of Sun via SSH, often dozens of times per day. This can get pretty tiresome if you need to type in your password with every log in.

Some suggest setting up so-called “passwordless” authentication by generating ssh keys and specifying empty passphrase for the private key. This will result in passwordless authentication, but will also decreased security. Should anyone get hold of your private key, (s)he’ll get access to all of your remote systems.

ssh-agent can help a lot in keeping the security level high and minimizing the number of times you need to type in the password. However, if you use a terminal with tabs or use both local and remote terminals on your workstation, you’ll end up running many ssh-agent processes and having to authenticate every time you start such a process, which diminishes most of the conveniences of using ssh-agent.

Frustrated with this situation and with a bit of help from Martin, I created a shell script, which I added to my .bash_profile startup script. All I have to do now is to authenticate when my first terminal session starts and I’m good until the next time I restart my OS. sweeeet…

Here is how you could set it up on a workstation and a remote-server:

First, if you haven’t generated your private/public ssh key pair, do that now:

workstation $ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/user/.ssh/id_rsa): **********************
Enter same passphrase again: **********************
Your identification has been saved in id_rsa.
Your public key has been saved in id_rsa.pub.
The key fingerprint is:
01:a6:95:23:1c:74:53:c7:f4:87:07:a2:50:ef:99:16 user@Computer.local

Now make sure that the file system permissions are set up correctly:

workstation $ cd ~/.ssh/
workstation $ ls -l
total 56
-rw-------  1 user  staff  1743 Aug 31 00:13 id_rsa
-rw-r--r--  1 user  staff   398 Aug 31 00:13 id_rsa.pub

The id_rsa file must be readable only by owner, if this is not true, the key will be ignored.

On the remote server you need to authorize your newly generated key pair by appending it’s public key to the ~/.ssh/authorized_keys file under your remote home directory:

workstation $ cat ~/.ssh/id_rsa.pub |ssh user@remote-server 'sh -c "cat - >>~/.ssh/authorized_keys"'

Now you can try to log in:

workstation $ ssh user@remote-server
Enter passphrase for /Users/user/.ssh/id_rsa: **********************
Identity added: /Users/user/.ssh/id_rsa (/Users/user/.ssh/id_rsa)
Last login: Thu Sep 11 20:19:19 2008
remote-server $

If you open a new tab in your terminal and try to log in again, you’ll be asked to enter the passphrase yet again. This is where my script becomes useful. First download the script from Mediacast: ssh-agent-init.sh and store it somewhere in your home directory

workstation $ mkdir ~/bin
workstation $ cd ~/bin
workstation $ wget http://mediacast.sun.com/users/IgorMinar/media/ssh-agent-init.sh
workstation $ chmod o+x ~/bin/ssh-agent-init.sh

The next (last) step is optional if you want to start the script manually you can skip it.

I wanted to have this script automatically invoked when I start my terminal for the first time in the interactive mode. All I needed to modify were my .bash_profile (used for interactive sessions) and .bashrc (used for non-interactive sessions) startup scripts for my bash shell (modifications are in italics):

workstation $ cat ~/.bash_profile
...
...

. ~/bin/ssh-agent-init.sh

workstation $ cat ~/.bashrc
export NONINTERACTIVE=1
. ~/.bash_profile

(Note: I source the ~/.bash_profile script from the ~/.bashrc script to enable code reuse between the two scripts.)

That’s it! If you now try to open a terminal tab for the first time, you’ll be asked for passphrase. Once that is done, any new tab or any other shell session created under the same account will reuse the same ssh-agent process.

I’ve been using this script on my MacOS X laptop as well as OpenSolaris workstation for a few weeks now and it’s been working like charm.

MySQL is just a toy

Twitterrific

Are you using PostgreSQL? EnterpriseDB want’s to hear your story at Postgres Rocks

Ignite Denver – 6 hours left to register – it’s free and at an Irish Pub

Ignite Denver: you can register here and read more about it here

When: Wednesday, September 10, 2008 from 06:00 PM – 11:00 PM (MT)

Where: Fado Irish Pub, 1735 19th Street, Denver, CO

Some of the talks planned for Denver on the 10th:

  • Kevin Hoyt – The wonderful world of Cigars
  • Rob McNealy – Social media for low tech companies (AskAFloorGuy.com)
  • Peter Batty – Future Location and Social Networking – Location aware applications are a hot topic in the social networking space at the moment. This presentation will talk about a different approach to this space, focusing on future location – where will you and your friends be in the future? This is harder to implement than an approach based on current location but more useful if you can do it successfully. We will talk about some of the challenges in this area and the many cool applications of this technology.
  • Brian Holmes – how to swear in French
  • Jim Hutchison – The glamorous world of Entertainment Business lighting and how rockstar-ish it can and cannot be, followed by a side order of ridiculously simply difficult lighting math chased with industry information and quirky stories. Living like a rockstar is fun!
  • Andrew Hyde – TechStars is a entrepreneur boot camp that every summer selects and seed funds 10 startups. From an inside viewpoint, what is the experience like? What are the biggest lessons, and the biggest challenges of starting the startup.
  • Scott Dudley – Digital Theatrics
  • Dave Taylor – Filmbuzz (get your hollywood news fix!)
  • Jun Heider – 5 minute intro to the world of Hackintosh