David Pollak's blog... and such.Lots of DPP's thoughts here...
June 13, 2013
Win8 and ThinkPad Helix: so bad it burns
I bought a ThinkPad Helix yesterday because I needed a lightweight travel machine to code on. I was hoping for some Haswell goodness from Apple, but that's not likely to happen soon and I need a travel machine this summer.
I chose a ThinkPad because I've always liked ThinkPads. My current travel machine is an X300, but that's capped at 4GB of RAM… not enough for getting work done… especially Scala work. The Helix had a nice screen and the form factor seemed right. Sadly, I could not touch the machine before I bought it.
June 11, 2013
Yep… I'm exploring the other side
I'm a dyed in the wool static language guy. I used C++ for logic code in Mesa, even though the UI was in Objective-C.
Ruby's dynamic meta whatever stuff made it difficult for me to code.
Scala with it's mostly excellent type system is one of the most useful tools I've found for reducing the class of errors in my code.
But my recent projects have made coding against a static language less useful.
June 8, 2013
Okay, the it's official, the US Government is collecting all data communication metadata. This is not what a government that cares about its citizens does.
Also, apparently, the NSA/FBI is running queries on cloud data in a program called Prism. Once again, not something that a Constitutional Democracy does.
Yes, we all suspected something like this was happening... but knowing that the US Government is behaving unconstitutionally makes me sick.
Why the Leaks Now?
June 6, 2013
So... I've got my Clojure setup down
I've got my Clojure setup pretty much nailed.
I am using an old ThinkPad X300 running Linux Mint. Why? Well, I'm waiting for the new Haswell processors from Intel, I donated my MacBook Air to charity (I still have a MacBook Pro), I need something light for carrying around, 13" machines are much easier to code on airplanes, and I had the X300 laying around.
June 4, 2013
Clojure is the REPL
So, I was working with Clojure and… well… it seemed to be the worst combination of slow start-up and slow compilation… and it's supposed to be a dynamic language. So, I pinged the very nice people in the Clojure community and they pointed me in the right direction.
Basically, everything you do in Clojure, you do in the REPL. The REPL is a live coding environment.
I had been writing code and tests and then checking on my tests with:
lein testBut that was taking way too long (20 seconds per cycle on my MacBook Pro).
So, how does one test first in Clojure?
First, one starts the REPL:
Then one changes the namespace to a test package:
May 29, 2013
Lots of weird people coming out of the woodwork this week.
I'm writing this post generically, but also as something to send to people who think that because I do stuff, I'm going to do stuff for them if they pester me about it.
Please don't send me private email about Lift or Lift-related bugs or Lift support or Lift scheduling or anything like that. I'm not Lift.
May 26, 2013
Got my feet wet with Clojure
I started hardcode coding on Project Plugh. I'm working on moving a bunch of Lift concepts over to Clojure as I build Lift's comet facilities in Clojure so I can stream data to the browser.
In Scala, there's a
The key take-away for PartialFunctions is "... is a unary function where the domain does not necessarily include all values of type A."
The ability to test a
PartialFunctionto see if the domain includes a particular value is very helpful.
pf.isDefinedAt(x)allows testing to see if the function is defined at a given value of
PartialFunctionis a subclass of
PartialFunctionscan be applied:
May 21, 2013
A hollow voice said "plugh"
I'm building an open source log manage/analysis tool that will offer folks what Splunk offers folks, except it's open. https://github.com/projectplugh
I'm using a combination of "right for the task" open source things to build a product that is long overdue. Specifically
May 21, 2013
Funding the common good… for my own benefit
I funded the Shoreditch Works Village Hall project on Kickstarter for £750. That's a lot of money given that I live in San Francisco. Why?
April 19, 2013
The folks at Dwolla are working hard to make things right
Since I posted my particularly unpleasant experiences with Dwolla the folks at Dwolla have stepped up to make things right.
They have reversed substantially all the transactions into my business account that they locked for suspicious activities. All but $500 is now available in other accounts that are not locked.
They are working with my business partner to get the funds from their Dwolla account back into their bank account.
I've been approached by a number of other vendors including Verify Valid about using their services.
April 18, 2013
So, I tried Dwolla
I actually tried it a year+ ago to send money to a friend. It's fast, inexpensive, and seemingly easy.
I'm working on a project and it seemed like a hassle to have the folks paying me send a check that I would then have to deposit in my bank account. The whole mailing, receiving, going to the bank and depositing process takes about 10 days and consumes non-trivial amounts of time.
Doing things electronically seemed like the right answer… using ACH as a mechanism for moving money around at $0.25 per transaction on its face seems too good to be true.
Turns out it is.
April 18, 2013
Lift has always had the best server-push technology around. Why? It's secure, it deals well with spotty connections, it respects the limited number of HTTP connections between the client and the server, and so much more.
Angular JS is a very exciting UI package that makes building dynamic single-page applications a snap because there's a 2-way binding between the model and the UI so that changes in the model are correctly reflected in the UI. And the whole binding is declarative so that once you use a model item in the UI, that part of the UI is always updated when the model changes.
March 31, 2013
Is my experience unique?
I bought a Karma WiFi HotSpot. I work remotely a fair amount and having WiFi access anywhere is useful. The price is right at $14/GB of data without any expiration date.
I got my Karma device on Friday. I immediately opened the box, fired it up and tried to connect. It took about 10 minutes for the Karma to connect up and get ready to connect to my MacBook Pro.
The connection speed was horrid (1M down and 70K up). This compares to my cell phone running on TMobile which was getting 10M down and 4M up. Okay, maybe I was in a bad coverage area at 22nd and Geary in San Francisco.
March 25, 2013
Code of Conduct for Communities
Lately, there's been a ton of discussion of seriously awful behavior by some dudes at PyCon. People have been fired. People have gotten upset. And there are now some "thou shalt not" style code of conduct things floating around for conferences.
I'm a big fan of defining expected behavior. This applies to most aspects of my life. I work hard to tell my dog and my kids what I expect of them... how they can succeed. User stories are excellent definitions of how developers can succeed: do this thing and you'll make the user happy.
I think that codes of conduct should be positive definitions of expected behavior rather than a series of prohibitions.
March 18, 2013
Back when we compiled to machine code and links took 45 minutes...
Back in the day, I ran a small spreadsheet company, Athena Design that took on the big spreadsheet companies (Lotus, Informix) and won.
I had a spectacularly stellar team. At the time I just thought the folks working at Athena were bright… but in retrospect it's amazing what a collection of talent with had.