So, you want to have every change made to the data in a Salesforce Object stored… forever?
-
posts
-
Building a Time Machine for Salesforce Data, the Easy Way
-
Condos and Lumberjacks, or Why PaaS?
I have been involved in and with various infrastructure as a service and platform as a service providers for well over 12 years now. Often I am asked to explain “why use a IaaS provider?” or “why use a PaaS?” or “Why use Heroku?”.
-
The Simplest Heroku Demo Ever
One of the things that I have done literally thousands of times over the last 9 years is show folks the power of Heroku. Over the years I have come up with, dare I say it, the simplest Heroku demo script ever:
-
How to Heroku
How do people who use the Heroku Platform actually use it? What is a day in the life of a Heroku user? What does it mean “to Heroku”? Read on to find out the answers to these and other questions….
-
Setting up ISC's DHCPD on MacOS
One of the frustrations with my current network setup is that the router is very inflexible. For example, it would not allow me to set the Domain Name servers that I wanted to use for my internal devices. It would only deliver the DNS servers that my internet provider delivered to it. And who wants that?
-
Reflections on 12 years of 100% remote work
I started working 100% remote in early 2008. Over the years I have learned quite a few lessons, and have really come to appreciate the lifestyle.
-
Nginx Routing on Heroku
Sometimes, we want to be able to route requests based on URL paths easily, or have a front end app that serves data from private back end services.
-
Thoughts on Data Lakes
Nokes’s Law: “One Person’s Data Lake is another persons Excel spreadsheet”
-
Nginx as a static site server on Heroku
I was doing some performance testing on this site, and while I was impressed, I felt like I could wring some more speed out of it. I decided to switch from Heroku’s Static Buildpack to a simple Nginx webserver using Heroku’s nice Nginx Buildpack. In theory this should be a little quicker and lighter.
-
Thoughts on Standardization vs Personalization
I was traveling for pleasure a few weeks ago, and I got into an interesting discussion with one of the people responsible for the experience we had on the trip. He posited that the most important thing a brand could do was to standardize the experience across all of their touch points.
-
The Power of not saying No
In my last musing, I brought up a personal philosophy of mine. To not say “No”. I’d like some time to explain what I mean by that.
-
The Power of And
I was sitting in a session about a consultive approach, and the presenter talked about the power of “and” rather then “or”.
-
How I post an article
I think that the workflow I have developed for this blog is pretty interesting, so I decided to write up how I currently approach it.
-
Blog Preformance
I decided to dust off
ab
and see what the performance of the new blog is.It’s running on a single Heroku Hobby Dyno, with 512m of RAM. It’s running nginx/1.9.7, Puma 3.11.2 and Ruby 2.3.4-p301. All of the files are static, generated by Jekyll.
-
Coffee Shop Quartet
As a remote worker, and one that travels at that, finding a good coffee shop to work from is a hassle. Sometimes I want a loud place with a lot of bustle, sometimes I want someplace more like a library. I’m often on calls, so when I have a day with out calls, and I can get out and about I really enjoy it.
-
Markdown in Gmail
I really like markdown for writing technical stuff. It makes it super easy to create code blocks,
embed commands in a sentence
and generally be really cool. -
New Digs
So I went and did it - Moved to Jekyll and Markdown. Hosted on Heroku with a full development pipeline behind it. I love how easy it is to create a branch, work in that, and have my review app up and running for reviews.
-
Yet Another Talk
I was pressed into service to do a training on Heroku for about 300 developers. It was a fun experience, and I really like to go back and watch myself so that I can critique my performance. Hopefully improve as well.
-
Automated Nanoc deploys via git push
I’m playing around with Nanoc - a static site generator. Basically, nanoc allows you you write your blog posts offline, and then generates your entire site in raw HTML. This allows you to host a site with out needing a database. In other words, it’s dead quick. You can also forgo a web server, and just host your site from S3 if you want.
-
IaaS < PaaS < ????
In the mid 2000’s a bookseller accidentally changed the world. Yes, that bookseller was Amazon, and the change was the introduction of a IaaS. Quite possibly the first Infrastructure as a Service. At least the first commercially viable IaaS.
-
Automated Backup to HP Cloud Object Storage, Code Included
(cross posted from the HPCloud Blog. With 75% more typos!) One of the most basic problems with systems that need to persist data, is making sure that you can recover those systems in the case of a critical error. I’ve used and written backup systems for more time then I’d like to admit (for example). With the advent of cloud storage systems such as S3, moving your data offsite has become much easier, and much easier to recover data from your offsite storage system.
-
Readings on Mindfulness
Just a disclaimer - I am a Buddhist, so I tend to frame my thinking in Buddhist language. However I am not a religious Buddhist. The only reason that I identify as Buddhist is that the philosophies put forward by the Buddha resound with me, as do the ways that they are presented.
-
To comment or not to comment
One of the trends that I personally have noticed is the removal of the ability to comment from articles on blogs. I’m not sure which camp I’m in, so I decided to preform an experiment. I turned off comments on the last few articles that I have posted, just to see how that makes me feel.
-
Running and Optimizing Production apps on Heroku
Over the last few months, I’ve done a few webinars. On was Running Production Apps on Heroku, and the other was Optimizing Production Apps on Heroku. Below the fold I have the slides and video from the talks.
-
Inbox as a task list
So, yesterday I read this. It echoed a lot of how I approach my inbox as a task list, and some of the ideas there pushed my inbox-fu to black belt levels. However I work in a different environment then Keith does, with a lot more customer facing email. I’ve merged Keith’s ideas with my workflow, and have come up with a gmail centric inbox-fu which is agile, powerful, and above all easy.
-
Footprints in the Sand
Footprints in the Sand …the Discordian version
-
You Have Another Version of Skype Running
I really hate this error. Skype is so unstable for me that I get little slowdowns and lock ups weekly, And about once a month I get this error after I’ve force killed it. I used to have to google it every time, drop to a command line and do a bunch of stuff. Well no more. Now there is a script to clean up after Skype’s mess! Skype - you can barrow this if you want. Just have it run when Skype is launching.
-
rss -> feedburner -> rss
I’m going to move away from Feedburner, as I am no longer confident in it’s long term viability. This is thanks to Google shutting down reader and moving everything towards the walled garden that is Google Plus. So, if you are one of the two or three people that still follow this blog via RSS, you’ll want to move to the feed at https://greg.nokes.name/feed instead of any other. I will not be shutting off the feedburner anytime soon but that day is coming.
-
Top Songs
One of the interesting things about using a tool like iTunes for a long time (over 5 years for me) is that you can build up a lot of metadata around your use of that tool. In iTunes there are really two pieces of metadata that are interesting to me - the number of times that I have skipped a song and the number of times that I have played a song. I’ve used the smart playlists feature for several years to surface intreating songs that have not been played in a while or other such neat stuff. Today I wanted to find something - what were my most played songs? Well, there were a few in there that were not my favorite songs for sure. So I went ahead and added in a new search criteria - most played song that I had not skipped.
-
Building a custom build pack on Heroku - the HARD WAY
So you want to build yourself a custom heroku buildpack, and you want to do it the hard way? Look no further, for within lies insanity.
-
Odd little gem error
While hacking at my favorite tavern, I noted that I needed to update a gem file. When I tried, gem said that it had succeeded, but there were some odd little errors:
-
Using environment variables for application configuration
One of the cool things about what I do, is that I get exposed to some really interesting paradigms. One of the latest is the 12 factor app. It's an evolution of some of what I have thought in the past, and a radical departure in others.
-
RVM, Lion and Commandline Tools
So, I was updating ruby etc on my Lion box, and I ran into a few issues.
-
The Hardest Thing
Today, I was blindsided by my 3 1/2 year old self. You see, when I was prying my 6 year old son off me, he was screaming “I don’t want to leave daddy!” and I was taken back to when I was 3 1/2. That is when, as far as I can recall, my mom and dad split. I really don’t remember what happened, but I was hit by a wave of emotion. From way back in the peanut gallery of my past selves. Abandonment, fear, pain, sadness. Uselessness. A feeling of things spiraling out of my control
-
PSSH.....
One of the issues that I have run into several times is the securing of access to server farms. You generally end up with a ton of keys laying around and it gets really messy. At one of my past jobs, they had written a pretty killer tool that gave me the springboard for pssh. Pssh is cool because it knows what servers you have by interrogating the AWS APIs, what keys they need and even what their internal DNS name is in your cloud.
-
Quick and dirty storage
With the advent of low cost, high capacity storage solutions, and really easy SAN tools baked into most linux distros, a DIY SAN solution is a lot easier then it might seem.
-
Social Aspects of Scaling Web Applications
Sometimes you have to kill the sacred cows in the room to get the job done. Some times the cows kill you.
I think that we have moved past “ruby does not scale” or “rails does not scale”. However the feedback that I have gotten over the last few months is more along the lines of “Rails is just kids, hackers and rockstars. It’s not a serious contender”.
-
Privacy vs. Anonymity
One of the perceived issues with the increased use of social networks and pervasive online activities is eroding of personal privacy. Some would have us believe that there will be no privacy in the future, and we just need to accept that fact.
-
Building an ArchLinux hosting box (part 1)
One of my favorite linux distros has been archlinux since the early oughts. It’s default install is super lightweight, and it’s configuration system is a joy (especially after working with several distros with many rc directories and hundreds of symlinks).
-
NoGUI VMWare Fusion
One of the things that I like to do it launch my VM's with out a GUI - it takes a little less resources, and it does not clutter up my Mac's desktop with windows that I do not need. It's been hard to do in the past.
-
Interesting Woops
I just had an interesting woops. Installed iPhone SDK onto my snow lepoard machine (for the first time) and it added a
PATH=
to the/etc/profile
file. That took a little working around! -
Binary Searching and other tools of the trade
-
Risk Analysis and Spending
People are very poor at risk analysis. As such, people “in the biz” come up with metrics to determine ROI. This might seem cold hearted. Since money is not infinite, we need to have some tool that we can use to measure the effectiveness of each dollar that we put into mitigating risks.
-
Insomina
So, I’ve had this curse since I was a kid. I just cannot sleep sometimes. I’m still really tired and groggy, I just can’t sleep.
-
Borked Filesystems
In a recent blog post, Brian Krebs mentions the following:
I also urge users to segment their systems so that important data files are on a separate chunk of hard drive space than the Windows operating system, which tends to make restoring backups a far simpler affair.
-
rooting with rvm
rvm (ruby version manager) is a kick ass tool that I use on a daily basis. It allows you to install lots of ruby versions, gems, gem sets, and what have you. You can test your app against new (or old) versions of ruby easily. You can also use it to manage rubies on a production system, for all users of that system.
-
With Clouds, Come a Chance of Rain
One of the interesting paradigms in the technology field now days is “cloud”. I think that I have seen it bandied about more then “web 2.0” a few years ago. It’s hit required buzz word compliance status in market-speak. I believe that is it over used, misunderstood and used to mislead. Let’s cut through the hyperbole and see what is really going on.
-
Using RVM to benchmark Ruby
One of the things that I get to do is advise folks on web application architecture and backend process optimization. All of that is to say that I need to know how certain versions of things like ruby perform under different loads, and be able to advise people on when and where to deploy each one. For testing ruby and ruby programs, RVM is invaluable. I’ll take you through how I tested a slew of ruby version automagically in this article.
-
Theater - fun to see, not fun to be
Unfortunately for politicians, the security measures that work are largely invisible. Such measures include enhancing the intelligence-gathering abilities of the secret services, hiring cultural experts and Arabic translators, building bridges with Islamic communities both nationally and internationally, funding police capabilities -- both investigative arms to prevent terrorist attacks, and emergency communications systems for after attacks occur -- and arresting terrorist plotters without media fanfare. They do not include expansive new police or spying laws. Our police don't need any new laws to deal with terrorism; rather, they need apolitical funding. These security measures don't make good television, and they don't help, come re-election time. But they work, addressing the reality of security instead of the feeling.
-
RailsBridge Bugmash VM Script
After fooling around with creating a VM for the RailsBridge Bugmash insta-server, I decided that it was just too unwieldy. There are simply too many moving parts to make a small VM. That got me thinking…
-
Weirdness in terminal.app
I have run into this three or four times now. Each time takes some googling, and that is counterproductive. So here you go. For all of the times you get a new mac, or install a new version of OSX, and you start seeing weirdness in terminal.app while SSH’d into a *nix box..
-
Sacred Cows and Stressed Farmers
Several things have happened over the last few months that gave me pause. Pause is a great time to practice mindfulness.
-
Testing
As a test I was asked the following question
-
RailsBridge
On of the tasks that I have undertaken is helping out a non-profit called Railsbridge by increasing community awareness. They do a ton of really cool things - like Rails Workshops for Women (one upcoming in San Francisco!), Rails Mentoring, Student Code Reviews, and undertaking development efforts for worthy Non Profit organizations. So, stay tuned - good stuff is going to come of this little project. We tend to hang out in #railsbridge on freenode, so if you want to learn more, or you want to see more, head on over, and I’ll see you there!
-
Linux Mint
I found a new Linux distro last night, and I am really impressed so far - it’s Linux Mint, and I must say, it’s the most polished, pretty distro that I have ever seen. It’s based on Ubuntu, so it’s pretty much rock solid under the hood as well.
-
Scaling Wide
One of the questions that I am asked often is “how do I scale my web application?” or “we’re expecting 200 times the traffic tomorrow, what do I do?”. The second question is usually too late.
-
Resources for learning Rails and Ruby
It’s been a while since I had to get my fingers dirty in code, and as such I am a little rusty. There are also some areas of Rails that I never took the time to learn. Luckly I found that the community has grown, and there are some great resources out there for the aspiring coder.
-
Back, and Better then Ever!
Um - ok. not better then ever. This blog has had quite the interesting (in the chinese meaning) life. It started out years and years ago as a blogspot site, and soon was moved to WordPress. It then almost migrated to several other platforms, but ended up on Mephisto. Well, we’re back on Wordpress for the time being. Will we stay? Probably not, even tho I like all of the cool toys baked in.
-
SaaS vs The Cloud
In an article today (“Cloud Computing”) Bruce Schneier makes some great points about SaaS and Cloud Computing.
-
Limechat blowing chunks
I love Limechat for my mac IRC needs. However, it started blowing chunks a few OSX updates ago, and that was plain annoying!
-
Mixtapes and Musical Tastes
One of the things I have done for a long time is create what the cool kids today call mixtapes. I used to use a turntable and cassette recorder, now days I use iTunes to burn CD’s for the truck. I usally do one every year or so, and I thought that I’d toss some out there for posterity’s sake.
-
Railsconf 2009
Well, it's
almostover for me, but here are my thoughts about Railsconf 2009... -
Mephisto Caching with Nginx/Passenger
Now that I had this test bed for new hotness running the new hotness, I decided I should get the caching working again.
-
Cups vs Avahi vs Mac
I have an old HP Laser Jet 6L as my primary printer at home. It's a trooper - I got it new years ago, and I have never had a problem with it. A few years ago, I got an APC Parallel Port to USB converter. That works great, until I tried to plug it unto my new Airport Express 802.11n. Woops. Lucky me I have a Linux box right next to the printer..
-
Interview with a reformed adware programmer
I should probably first speak about how adware works. Most adware targets Internet Explorer (IE) users because obviously they're the biggest share of the market. In addition, they tend to be the less-savvy chunk of the market. If you're using IE, then either you don't care or you don't know about all the vulnerabilities that IE has.
-
Banning water...
As usual, Bruce Schneier has an interesting look at security, and how banning things like Google Earth might not be such a good idea.
-
How an engineer sees the world
Some times you just have to assume that the rest of the world is insane and you are sane….
-
iTunes Backups
Now that we are starting to buy / rent movies on our Apple TV, I wanted to have a seamless backup mechanism. The fact that we are running Tiger made it a little more challenging, along with my distain for COTS software. After all, all I really want to do is keep 2 copies of 1 (rather large) directory else where on the network…
-
airtunes ftw
As many of you (all one of you?) know, I work from home. Yay me. Well I just reorganized my office, and thought I would share
-
PHP and Nginx on Debian
I needed to drop PHP5 on a home dev box (running Debian Stable) and since Nginx is all the rage, I wanted to see if I could use that instead of apache.
-
Load Testing
If you notice some slowness, I am playing around with the fantastic New Relic performance and code introspection tool.
-
Filesystem scaling in high traffic web applications
One of the more interesting problems that high traffic, high load web applications face is how to scale the filesystem. As load increases, vertical scaling (bigger servers) simply does not work. You have to add more application servers, and more layers to effectively serve the needs of the users. One of the issues that many such applications have to overcome is how to serve assets (pictures, podcasts, video) to all of the edge servers that a user might access the application from, and allow users to upload user generated content.
-
7 things
You know, I hate these "tag you're it" memes. But here goes - for the Cuz I have not seen in years factor.
-
Hmmm
So, have you ever had that experience were you look up and almost 2 months has passed? It seems such a short time, but you have a hard time recalling before?
-
Big News
Well, today was my last day on the government contract. I decided to move on, and pursue a fantastic opportunity which came along. Leaving was really hard. I had worked at the same office for 5 years, and for the same agency in Spokane for 8 years. I have a lot of friends there, but it was time to move on.
-
SyncScript
One of the challenges where I work is keeping a near line copy of large amounts of data. Tape is to slow to restore off of, and can be a hassle since we have off site tape storage requirements. Thus SyncScript was born. It’s a windows only, quick and dirty little ruby app to move about large amounts of data using a rather brute force method…
-
Educational Quote
sterano: Whats the difference between Raid_0 and Raid_1?
Steve: In Raid_0 the zero stands for how many files you are going to get back if something goes wrong. -
Shadow IT Departments
This morning I read an interesting article at Infoworld. It deals with the collision of paradigms between old IT and the new Infoworkers.
-
Seen on Evil.com
We did like this one...
Seen in mail header: Free Tibet with purchase of China. -
Checking up on stuff
In doing some spring cleaning, I found this old article from years past. Enjoy!
-
Black Holes, Stranglets and Oh My!
The builders of the world’s biggest particle collider are being sued in federal court over fears that the experiment might create globe-gobbling black holes or never-before-seen strains of matter that would destroy the planet.
-
Passing of another Giant
Sir Arthur C. Clarke, who peered into the heavens with a homemade telescope as a boy and grew up to become a visionary titan of science fiction best-known for collaborating with director Stanley Kubrick in writing the landmark film "2001: A Space Odyssey," has died. He was 90.
-
snicker
One for the geeks out there.
-
End of an Era
I cut my teeth on NetWare 3.1x servers oh so many years ago. So this announcement is bitter-sweet
-
AD vs Ruby vs Me
So, I was tasked to create a authentication system for one of the apps that I wrote a while back at work. I had written the application in Ruby on Rails, and we use Microsoft's Active Directory for network authentication. Taking pity on the users of my application, I decided to do some research and see if I could bump my authentication vs the AD LDAP server. This is what I came up with...
-
Yeah!
After the success of the transformers movie, it looks like a really good Giant Robot franchise is coming back.
-
iPhone, day 1
Well, today was day one with my new techno-lust-gadget. It's fit and finish is what you would expect from Apple. The device feels good in the hand, and fits as a phone, unlike some of the blackberries that I have used. I must say that I am very impressed over all with the device.
-
Alone
If it's true that our species is alone in the universe, then I'd have to say that the universe aimed rather low and settled for very little.
-
Scan and Copy Redux
A co-worker pointed out that Scan and Copy did not work all that well on XP. Not a real issue, since I had used it to back up win2k machines in prep for a XP roll out. Well, anyways, I made the few changes to XP it, as well as adding in some more functionality.
-
So it goes
Like so many Americans, she was trying to construct a life that made sense from things she found in gift shops.
-
Faith
Due to having faith one relies on the practices,
Due to having wisdom one truly knows.
Of these two wisdom is the chief,
Faith is the prerequisite.
-
Scan and Copy
One of the ways I am able to exercise my Ruby skills is in the day to day network admin tasks. For example, I had to come up with a method of saving all of a users 'important' documents off of their desktop computer in preparation for a wipe and re-image. Not only that, but it's a good idea. So I wrote 'scan and copy'
-
Plans for 2008
Well, all of the backers, my committee and I met last night. Some had several objections, and pulled all of the funding for the effort.
-
Important Announcement!
Working with a core group of my friends, I have decided to put together an exploratory committee to look into forming a campaign for President in 2008. We have had several meetings laying the groundwork for this effort. We are excited to announce that we have already secured several large backers who believe that my presidency would bring solutions to most of the worlds problems.
-
21 steps if your identity is stolen
Identity theft accounted for 255,000, or 37 percent, of more than 686,683 complaints registered with the FTC in 2005. These figures mark the sixth year in a row where identity theft has topped the list of complaints filed with this agency. The most commonly reported form of identity theft was credit card fraud, followed by phone or utilities fraud, and bank (electronic funds transfer) and employment fraud.
You can reduce your risks for identity theft, but you don't have control over government agencies, hospitals, or retail stores that manage to lose your personal information. The following list will walk you through the steps that will help you recover your identity and restore your credit rating. -
Life, explained
When we remember we are all mad, the mysteries disappear and life stands explained.
-
On Global Warming
Over on another site, there is an intresting discussion raging about Global Warming. Just thought that I would cross post my first response over here.
-
Pale Blue Dot
The BA brought this video to my attention. Fantastic stuff.
-
Namer
In an application I am writing, we gather three items about a person's Name: Their Username and their First and last names.
-
New York Times on Computer Security
Using a non-Windows-based PC may be one defense against these programs, known as malware.. Like Windows, Microsoft's Internet Explorer browser is also a large, convenient target for code-writing vandals. Alternative browsers, like Firefox and Opera, may insulate users.
-
Cross Model Attributes
I am sure that all of the programmers out there will say "Well, Duh!" but I wanted to put this into writing for my own purposes. Basically so I do not forget it. If you happen to get some good ideas from it, well then score.
-
Toxic Memes
A set of interrelated memes can make up a ‘Meme Complex’. These groups of ideas are interrelated and co-supporting. They strengthen and reinforce each other - making the group stronger then the whole. A religion is an example of a Meme Complex. Many of the ideas central to religion are intersupporting. For example the Christian belief that a life time of good works, and belief in the Christian Religion (Meme Complex) will garner great rewards after death.
-
Open Source Part Two
Yesterday, I ranted at length about the meaning of FOSS and OSS. I think just about everything has been said about OSS development that can be. We all know that it is a better development model because all of the code is open for world wide peer review. We also know that if you have the desire, you can review the code yourself and assure yourself that it is indeed secure. While this is not an option for most home users, large enterprises can use this option to assure their security and modify the code to do what they need.
-
Open Source Software
What is open source, and why do I support it?
-
Pass on the password
I think that in this increasingly digital age, Passwords, accounts and how we handle legacy access is going to become more of a problem. I know that if I were to die today, there are three sites that would die as well, as my brain is the only place the passwords are kept.