Archive for the ‘Productivity’ Category

Meta-Post: Back to Blogging

Tuesday, October 18th, 2011

I woke up this morning after having spent the weekend down in LA and Orange County with the desire to say something: something longer than a tweet, something shorter than an essay.

It was something about technology, or people, or power, or art. And then I realized: I wanted to blog again.

And then I realized something important. Writing isn’t something you do when you have copious free time, it’s something you do when you don’t. It’s something you do when your spirits are in the right place, when inspiration is around you and through you (which usually has the consequence of you having no copious free time).

The job change I am to undertake within the next week is making me want to do the things that I lost interest in. I want to rework the site, I want to stop digitally sharecropping my content to Facebook and Twitter. I want to integrate this interface and make it the default and have Google+, Facebook, and Twitter be my syndication services.

I’m so glad that a part of the best part of me is coming back.

Introduction

On May 14th, I competed at a Hackfest hosted by Podio. Podio is a customizable social networking application delivered as a service (aaS). After 8 hours of coding, I placed first in the competition and won a beautiful Apple Cinema Display. In this post I will cover my hack, how it was done, and lessons learned.

Steven G. Harms with his first prize

Victori pretium it

Or, you can watch my video interview

(more…)

CSS issues

Thursday, April 14th, 2011

Not that anyone reads my blog, least of all in its web site format (I assume you use RSS feeds), but it appears that the CSS styling is broken. I will remedy this soon.

It’s only broken in Chrome. WTF.

Is the company destructive to productivity?

Tuesday, January 11th, 2011

I found a very interesting reflection on work and the relative merits of working within a corporation in an old issue of “Wired (February 2010)” that I had lying around. The topic uner discussion is what impact the rise of cheap 3D-printers will have on the maufacturing sector on page 105.

“In the mid-1930’s, Ronald Coase…[asserted that]…companies exist…to minimize ‘transaction costs.’”

“Bill Joy…revealed the flaw in Coase’s model, ‘No matter who you are, most of the smartest people work for someone else…’”

“With the Internet…[Joy’s proposition] turned Coase’s law upside hown. Now, working within a company often imposes higher transaction costs than running a project online. Companies are full of bureaucracy, procedures, and approval processes, a structure designed to defend the integrity of the organization. Communities form around shared interests and needs and have no more rpocess than they require. It’s built around small pieces, loosely joined.”

It would seem that a company has a drag coefficient. I suggest that an optimal group size (s) can be identified such that for a given organization it is the optimal size to engineer a project with an expected return on investment (R). This relationship should be a simple ratio and should naturally self-organize to this number. A disruption factor (F), a fraction, should also be identified which explains the overhead a given organization’s processes and effectively increases the headcount on the given team, thus pushing it ouside s’s optimal range.

Open-source MBA idea.

Or, “Dont’ make me use your ‘rich editor’”

At work we’re using a wiki engine whose power user syntax has been disabled. While it’s been disabled for good reasons, it still bothers me much.

What one is left with is the rich text box which works great for dumping in cut-from-Word documents or which people who don’t want to type quickly and don’t mind mousing to turn on bold etc. As a person who wants to type fast and format as he thinks it, not being able to write markup as I write in wiki data is sad, sad sad.

A guru on the topic suggested that I take some sort of editor, generate the HTML, and then paste that into the rich box because modern OS’s carry HTML formatting data into pastes.

Ugh.

But it’s better than the alternative. Ergo, I downloaded the Markdown extension for VIM. This was a step forward because it provided me the syntax highlighting that makes the process a bit faster. What I really needed was a way to generate the HTML and put it in a browser for ease of cut-and-pasting.

This forced me to dive into the world of vim scripting. Agg. I give it to Emacs every time on this, Vim’s scripting language sucks. I avoid it at all costs, when I can. Tonight I couldn’t. I wrote this pair of functions such that you:

  1. Write markdown in Vim (yay)
  2. See the syntax highlighting thanks to the plugin (yay)
  3. Hit :mm (yay)
  4. An HTML artifact is generated via the markdown perl script
  5. open() on MacOS is called to process that HTML artifact so that it launches your browser, in my case, Chrome

To make the :mm work you need this snippet of code added to your .vimrc.

" Written by steven for quick loadup of Markdown text into HTML
function Mkdp()
  write
  let file   = expand("%")
  let mkd_file = file . ".html"
  let result = system("markdown " . file . " > " . mkd_file)
  let result = system("open " . mkd_file)
endfunction
:map :mm :call Mkdp()<CR>

A few caveats.

  1. I think I must be doing it wrong, I suspect putting this code in the .vimrc is not the “blessed” way to do it.
  2. I use the vim system() call which is complete butchery in most programming languages. I’m pretty sure there’s a more blessed way to make requests to the OS, if anyone knows it, please leave a comment.

Dvorak Snobbery

Friday, September 14th, 2007

I realized just now that I can type the word ‘enthusiasm’ all in one row of keys on a Dvorak keyboard save for the last m. Compared to the QWERTY implementation, it’s a shocking efficiency improvement. Other words you can spell on the Dvorak home row: annotations, assassinate, Einsteinian, instantiations, tediousness, hideousness.

But alas, the common layout has me beat at typing useful utterances like “asdfjkl;”.

Getting ahead in the world: Sī valēs, valēo

Monday, September 10th, 2007

I was speaking with an entrepreneur, writer, and general wise-sage of programming last week and we were discussing some finer points of a software idea I had and, well, to be honest, a lot of what he said fell into that “areas for improvement” or “how to improve” the work category.

I say both of those phrases above in quotes not because it was really a hatchet job of my work, it was an opening of eyes to new ideas.

At the end of that he asked, “But what else can I do for you?

And I’ve decided this is the key for success in business, and perhaps, life itself.

My next invited step was to elicit more wisdom ( or abuse ;) ) and the forum was still open. Nothing was closing, everything was a beginning point for further negotiation and understanding. I bet you could try it with your spouse / SO. I bet you could try it with your boss / client. I suspect that if you were to keep track of responses and enthusiasm pre- versus post- you would be mightily surprised.

The Latin at the top comes from my Wheelock’s. It, apparently, was a common salutation in written communication. It says, “If you are well, I am well.” God, can you imagine anything so polite in this age where I saw some girl on a cell phone let the door into the Chick Fil A close in the face of a mom pushing a stroller.

That whole metafilter post…

Tuesday, August 14th, 2007

Started with this. I needed to know how to remove the hardbound spine from a book.

Guess which population of savvy users had done this and had multiple discussion threads on the best way to go about it?

Yup. Metafilter here and again.

I sent an email to the local Kinko’s ( sorry FedEx, it’s Kinko’s to me ) and we’ll see if they have the spine guillotine.

Thinking about news aggregation sites

Monday, August 13th, 2007

My first news aggregation site was memepool.com. This site was basically a sporadically updated blog that had “good” links. Like most people of the era, I had been getting URL’s in the mail for a great number of years already, but in 2001 when I encountered this site, the standard for quality and range of links was sufficiently raised.

Let me also introduce a third axis called freshness that could be added which measures the frequency of update. These will be the elements in our three dimensional grid of considerations.

  • Freshness
  • Range
  • Quality

Notably, the latter two axes are much more subjective ( last post can be measured ).

(more…)

I had a good experience in the class. I was able to learn the material without falling behind, feeling like i was drinking from a firehose, or feeling like each additional word was just a drop of water on a saturated sponge. There were definitely people who feel more comfortable with the material right now than I do, but I thought I would like to tell you things in my background that I believe helped me be successful in the class.

Unlike a college institution, the BNR does not enforce pre-requisites. As such it is your responsibility to assess whether you have the tools and knowledge necessary to get what you need out of the class.

Rails stores its data in a Database: Know a relational database

Do I mean be a DBA? Be able to deploy Oracle with both eyes closed? No, I don’t mean that. I think you should be able to do a MySQL or PostgreSQL database set up ( you could probably just use a tutorial for either product ).

  • Basic DB concepts
    • What’s a relational database?
    • What’s a typical SQL query string?
    • What’s a primary key?
  • Basic DB skills
    • Run the command line to open a session
    • Create a database
    • Add / Delete / Describe a table
    • ( I didn’t have ) Knowledge about joins. This did not inhibit me, but having understanding of this too would have had me completely in the know.
  • Basic familiarity of DB use
    • Be able to run a SQL query on basic select parameters, be able to order by a criteria

Rails uses a web front end, know CGI / WebUI programming / HTTP issues about state

  • HTTP is a stateless protocol
    • Know what that means
    • Know techniques for preserving parameters between script reloads
    • Know how to write a basic form in HTML or Perl or PHP
    • Know how to pass a parameter in a ‘hidden’ form field
    • Know how passing form data in this format behaves when using a GET operation versus a POST operation
    • Experience writing CGI in either Perl or PHP will be hugley advantageous

If you’re on a Mac, Textmate is the editor to use

Some time playing with Textmate, how it tries to help you, how to use the bundle editor, maybe watching the screencasts is advised. Again, coming in with no experience is no loss, but if you have it you can r0x0r some s0x0rz.

If you’re on a PC, uhm. Sorry. I don’t have any knowledege about that.

Rails tries to use New Web Technology

  • Know CSS
  • Know a basic, modern, non Front Page, HTML file.

Rails is written using Ruby: know something about Ruby

Ruby …

  • Is object-oriented, you should understand object orientation
    • How would you define it?
    • What’s the difference between procedural programming and OO, why did OO evolve
    • Be able to describe the theory of a Class, Subclassing, an Ancestor class
  • Has a very interesting syntax, know a little bit about Ruby syntax
    • You needn’t be a guru, you’ll be writing Rails, which uses a fairly limited subset of the Ruby lexicon
    • Conversely, if you know a lot about Ruby you may be able to squeeze out new arrangements, you may be able to build more terse algorithms.
  • Data types
    • Know the basic data types: Hash, Array, and String
    • Be able to define you own data type ( == class )

If you know this, you should be able to breeze through the first day. You’ll be introduced to some Rails concepts, but they are mostly slight nuances of the above.

End Day 1 and beginning Day 2 will be your first solid Rails lessons and Day 3 will challenge you to incorporate advanced-core capabilities onto the core-capabilities you learned on Day 2.

BNR Classes are fun, it’s the hardest computer training course you’ll love busting your ass at:

  • Bring hiking shoes, there’s a daily walk after lunch ( weather permitting )
  • Bring business cards or have your .vcf file ready to go: you’re going to make friends and you’re going to want to give them your cards
  • Bring some wind-down material: Settlers of Catan was popular, the book you’re reading, some DVDs. Sometimes you may want to get away from the hub-bub and / or you may need something to help move you from ‘twitch mode’ to being able to sleep.
  • Check the weather. Who would have guessed that Atlanta would have been as cold as Kansas?
  • Be ready to work. Work as hard as you can to get a real understanding. Do the exercises, work to improve them, try to implement them again on your own, with slight modifications.
  • You may want to take additional time off to practice whet you’ve learned and / or to re-calibrate to “the real world”
  • A small umbrella might be handy, weather in the Gulf / South is unpredictable
  • Send me an email if you have a question or a comment!