heroku fork lets you create unique, running instances of existing applications right from the command line. Great for different envs (staging, prod) or time travel (showing stakeholders how far we've come from what the app looked like 6 wks ago)
Create signatures and sign pdfs from right inside the Preview app
toggle edit toolbar and you'll see a signature menu item. Click "create signature from Facetime camera".
Go has a keyword "defer" that will allow you to queue up things to happen when a method returns.
Great for closing files even is the app panics. Allows you to put closing logic immediately after opening.
The ANONYMOUS controller CLASS created in a controller spec is like before(:all), not before(:each)
If you create a controller inside your controller spec, it will be the same anonymous class for all of your tests inside your controller spec. Beware of test pollution if you have class attributes on your controller.
Hadoop on EC2
If you put hadoop on EC2 inorder to have all nodes communicate they must be in the same VPC or connected via ssh tunnels. This is because Hadoop only advertises the public IP for the namenode.
Justify a single line with css
If you need to justify a single line of text with css, check out this useful technique: http://blog.vjeux.com/2011/css/css-one-line-justify.html
CI Builds With Flaky SVN server
Our current project uses SVN which can only be accessed through a VPN. We would have a significant number of CI failures just because of the flakiness of the VPN/SVN server to the point where build failures were generally being ignored. We used the git svn extension to make a local git repository that is updated via cron job. Pointing the Jenkins build at the local git repository was simple and entirely stopped build failures due to connection problems. In addition we created a Jenkins build for whether the SVN server is reachable or not.
MyRA won a design award!
MyRA, an iOS app for rheumatoid arthritis patients designed by Jessica Miller (former Pivot) and developed here in SF, won a design award. Awesome!
Best non-paperclip solution for S3?
There was a question about uploading to S3 on an iOS project backed by non-rails ruby.
Best practice (Rails or not) seems to be using the AWS gem to generate URLS, send those to the phone, and do all the manipulation and uploading from the device.
Tuesday: Homefrys Ping Pong Tournament!!!!!!!
Ping pong tournament with other startups @ Pivotal Labs. We have 2 teams made up of: Palermo and Phan, and Michael and Danny. Come cheer us on!
XP at Pivotal Labs
Will Read & ex-pivot Josh Susser talk with folks like Avdi Grimm about XP and what it looks like at Pivotal Labs. ~1hr.
ciborg and passphrase on key file
If you have a password on the keyfile lobot is using for git, jenkins will fail to checkout
ciborg and id_rsa
ciborg always upload the keyfile as id_rsa even if yours has a different name, it copies the correct file but drops it as id_rsa and has the reference to your correct name in the ciborg.yml.
Easily access view helpers from your controller, without including modules. Use view_context.some_url_helper for example.
Using controller in presenters
Sometimes you need to use the controller / view_context to access methods you could not in the presenter.
When it's the case, don't put them as a parameter of the method that need them.
This is not a value object (remember Domain Driven Design? :), this is a dependency you should inject when creating your presenter.
Faraday multipart doesn't work?
Yesterday we were trying to send multipart requests with Faraday. It doesn't work. Why?
Rspec after's run in reverse order
Not that you should probably ever have multiple after blocks at the same level, but we found out when collapsing multiple after blocks down into a single one, that the teardown happened in the opposite order than the order in which the after's were declared
Monday: SF Lunch Tech Talk
We're going to watch: "The Value of Values" by Rich Hickey.
Alexander has transferred the super powers. So send suggestions to me or add it to the wiki page: https://sites.google.com/a/pivotallabs.com/pivotalwiki/officesandfacilities/sanfranciscooffice/sf-lunch-videos
Not all PNGs are created equal
If you write a UIImage’s PNG representation to disk, read it back, and get the PNG representation again, you’ll get a different representation. In our case, we got 21 extra octets after the PNG header.
NSData *png1 = UIImagePNGRepresentation(image1);
[png1 writeToFile:file atomically:YES];
UIImage *image2 = [UIImage imageWithContentsOfFile:file];
NSData *png2 = UIImagePNGRepresentation(image2);
// png1 and png2 differ by 21 octets