Larry Ullman's Blog

February 4, 2025

So Long, and Thanks for All the Fish

I started posting on this blog around 2007. At that time I was midway through the first decade working for myself, attempting to create a viable business. That entailed:

Writing technical books, mostly about programming, databases, and web developmentActually doing those things so I knew what I was writing aboutTeaching those thingsSpeaking at conferences about those thingsTrying to “build my brand” on social media

That last category resulted in this blog, my newsletter, being on Twitter, and so forth. I’m not sure I was ever very good at marketing stuff, but it seemed like the kind of thing a prudent writer should do. Also, my publisher kept poking me to do it.

Over the next decade, my personal life became more complicated and demanding, I got a proper full-time job at a startup, and I had more obligations than time. Way more obligations than time.

It took an appalling number of years for me to finish my self-published book, and even that was after I gave up doing any social media–this blog, my newsletter, Twitter. It seemed unjust to spend any other amount of time doing non-book projects when I wasn’t keeping up with my book writing. So I got off Twitter, stopped sending out newsletters, stopped posting on this blog.

And now I’m on the other side of all that, in the third decade of my professional career. My personal life is less complicated and demanding. I returned to consulting. And I finally–finally!–finished my self-published book. I’ve since open sourced that book, which was always the hope. I’m not sure that it matters this late in the game, but it was important to me that I did finish the book. So there’s that.

I’m not writing other books anymore, or updating existing ones. Not that anyone is asking. And I can’t imagine posting anymore on this blog. Not that anyone is reading it regardless.

But I wanted to officially sign off on this part of my career. And to sincerely, most sincerely, thank everyone along the way that made my “Translating Geek into English” life possible. All the readers, students, attendees, people with feedback (positive, constructive, or not), the patient ones, the reasonably impatient ones, the generous folks, the demanding folks…just everyone that cared for whatever reason about what I had to say.

I wanted to be a writer long before I really knew what that meant. I’ll never stop being grateful that I got to be an actual writer, and that my writing turned out to be helpful, even meaningful, to so many people.

 •  0 comments  •  flag
Share on Twitter
Published on February 04, 2025 19:16

January 28, 2025

“The Yii Book” now open source

As of January 2025, “The Yii Book” is no longer maintained or commercially available. “The Yii Book” is now open source and can be downloaded from its GitHub repo.

My sincerest thanks to everyone that supported the book over the years, and to the Yii community at large. I hope that open sourcing this work creates additional benefits from the years of work that went into it.

 •  0 comments  •  flag
Share on Twitter
Published on January 28, 2025 10:17

November 25, 2024

“The Yii Book (2nd Edition)” Version 2.0 Posted

It took forever, but the fifth and final update for version 2 of the Yii framework has been posted. This brings the book to version 2.0. After a lifetime and half, and probably beyond when it’s of much use to anyone, the book is officially complete.

It took forever, and then another few years. It was just a ton of work and my life changed in ways that made having dedicated time to work on this super hard. I’ll always feel terrible about how long it took to complete the second edition. But it’s done now.

 •  0 comments  •  flag
Share on Twitter
Published on November 25, 2024 17:33

December 4, 2017

“The Yii Book (2nd Edition)” Version 1.7 Posted

Oh man… So before I get to the good news (another update to “The Yii Book”), I should answer the million-dollar question of “Why in the #$&*$%&(&% is it taking so long to finish this book?!?!”


I’ll start by saying that, in general, self-publishing is a ton of work, as I have to do everything myself. Which seems obvious and yet… Second, the switch from Yii 1 to Yii 2 is more significant than most upgrades I’ve dealt with (e.g., from PHP 4 to PHP 5). What it comes down to is a relatively simple chapter to update, like Chapter 16, takes at least 3 full work days to do. So updating the entire book–24 chapters–is at least a full 100 days of work. And I don’t have many free full work days in my life.


For context, when I started on “The Yii Book”, I was only working for myself, as a consultant and a writer. At that time, so long ago, I could spend many full days or even weeks on the book, which I did to get the first half of the book or so done. Shortly after I started publishing this book, I went to work for a company, which was the necessary decision for me and my family. (For starters, my family has really high medical bills, and we need the health insurance.) For the past four years, I’ve been working one job and trying to work on “The Yii Book” as I can, while also not forsaking my wife and kids.


I’m not trying to make excuses–it’s taken offensively too long to complete the first and second editions of this book–I’m just trying to explain that it takes a lot of time, and I don’t have much time. It may not seem like it, but “The Yii Book” has been consistently on my mind. My wife asks what my plans are for the weekend, and I repeatedly say “I need to work on ‘The Yii Book’.” To try to save time, I’ve stopped posting to Twitter, creating new blog posts, or sending out newsletters. To save time and, to be frank, because I’m embarrassed and frustrated by how long this work has taken me. (Although mostly I’m really burned out, so I’m not sure when I’ll take up those mantels again after this is done.)


So, in a normal year, it’s hard to make progress, but the past year has been especially trying, personally and professionally. We had a family loss, and another suddenly hospitalized. For these and other reasons, my wife and I have been traveling monthly. When I travel, little progress gets made (although I’ve spent quite a lot of time in airports and on airplanes working on the book). When my wife travels, little progress gets made as I’m taking care of the kids.


Again, I’m not trying to make excuses, just trying to convey that I’m overwhelmed, not negligent, let alone indifferent. When I try to console myself, I consider that this work constitutes two editions of a 600+ book, the quality of which is good. But that’s not a great consolation compared to the amount of time it’s taken. The best I can offer are my sincerest apologies and assurances that I’m giving what time and energy I can to completing this as quickly as I can.


Okay, so self-publishing is really hard and the past year has been terrible, where do things stand? I’m a bit more back on top of things and have been able to re-dedicate myself to the cause lately. I switched computers since the last update, so there were software changes, and rebuilding databases and sites and configuring and…but I was able to just push another update. I was targeting a four-chapter update, but I’m leaving town shortly and thought it vital to get this published before I go, so it’s just two right now (the translations in the internationalization chapter were a huge time suck). But here’s an update and know I’ve already started on the next chapter and I’ve mostly got my feet back under me again.

 •  0 comments  •  flag
Share on Twitter
Published on December 04, 2017 18:59

August 28, 2016

“The Yii Book (2nd Edition)” Version 1.6 Posted

I just posted the third update of the second edition of “The Yii Book“. This update brings this edition of the book to 365 pages, with two more revised chapters, getting to a total of 14, and completing Part II of the book. (I’m a little bit farther along than that, but thought Part II a logical place to do this release.)



Specific release notes are:



Updated Chapters 13 and 14 for Yii 2
Took almost all new images
Fixed all the errors found in previous releases

This particular update took forever, mostly because the involved subjects–extensions and JavaScript–changed dramatically in Yii 2. I also methodically resolved all the errors and issues in the 300 pages of book that had been released previously.


I have learned that if I ever do another self-published book it won’t be 600+ pages long. 


I also formally moved the “free updates until date” to the end of 2017. I did this not because I think the second edition will take that long but rather to make it clear that all foreseeable updates I have planned will be free to anyone that has already purchased the book or is about to.


There are seven chapters in Part III of the book, which I’ll probably release in two updates. The final book section has three chapters, which will be the 2.0 update. There are no timelines as to when I’ll have those done (I hoped to have them done a million years ago), but I’m spending as much time on my evenings, weekends, holidays, etc. as I can on them.


As always, thanks for your interest in what I do!

 •  0 comments  •  flag
Share on Twitter
Published on August 28, 2016 19:03

June 19, 2016

Wee update to “The Yii Book” soon

I’m about to go offline for a couple of days (for personal reasons) and was hoping to get an update out beforehand, but it doesn’t look like that is going to happen. (And, as is the way with such things, if you try to do something computer-y when you have no time to deal with any complications, that’s exactly when the complications happen.)


In any case, apologies–as always–on it being so long since my last update. Chapter 13, “Using Extensions”, was a pretty brutal update for Yii 2 as no Yii 1 extension works for Yii 2. So I had to reevaluate what extensions to cover, learn enough about them, etc., etc. Also, Chapter 20, “Working with Third-Party Libraries”, covered Elasticsearch in the first edition, but that’s now possible with a Yiisoft extension, so it got moved into Chapter 13 (and rewritten).


But Chapter 13 is done and I’m a bit past that and will get out a wee little update as soon as I’m back online. I also updated all of the errata in the book and on the website and replied to those people that emailed about them. (Big thanks to people that do so; I really appreciate it!)


Moving into the home stretch!

1 like ·   •  1 comment  •  flag
Share on Twitter
Published on June 19, 2016 08:19

February 2, 2016

Forums back online

After a four-month hiatus, my support forums are officially back online. I’m also working on getting through the backlog of “things I need to investigate and give a definitive answer to”. That will be a continued work in progress for some time.


The forums are free for anyone to use, whether or not you’ve purchased a book (although supporting the books is the primary role of them). Understand that I do answer every forum posting, but do so as I have time. Assuming I’m not traveling or otherwise swamped, this means I answer questions 3 days per week, so it could (and likely will be) 2-3 days before you get a reply from me. (It’ll be longer if you email me directly, for the record.) Other people do help out as well, for which I am eternally grateful.


Finally, please remember that you’re asking for free help from strangers in these forums. Be patient and appreciative when people that don’t know you are giving up their time to try to help.


Thanks, as always, to those that help in the forums, those that share what they’ve learned, and to everyone interested in my books.

 •  0 comments  •  flag
Share on Twitter
Published on February 02, 2016 16:59

November 8, 2015

“The Yii Book (2nd Edition)” Update Posted

On Monday, November 2, 2015, I posted the second update of the second edition of “The Yii Book“. (I was hoping to blog about it here on Tuesday but…) This update brings the book to 307 pages, with four more revised chapters, bringing the total to 12. Specific release notes are:



Updated Chapters 8 through 12 for Yii 2
Took almost all new images
Added a section on maintaining uploaded file with incomplete form submissions (Chapter 8)
Added a section on tabular input (Chapter 8)
Added a section on Bootstrap widgets (Chapter 12)
Added a section on using widgets with ActiveForm (Chapter 12)
Fixed all the errors found in previous releases

I’m already into revising Chapter 13 and I’ll have the next release out whenever I can. I’ll plan on doing 4-chapter releases from here on out (i.e., there will be 3 more updates to reach the complete 2.0 release).


As always, thanks for your interest in what I do!

 •  0 comments  •  flag
Share on Twitter
Published on November 08, 2015 16:10

June 2, 2015

First update of “The Yii Book (2nd ed.)”

I just posted the first update for the second edition of “The Yii Book“, covering version 2 of the Yii framework. The release notes are lengthy, but a couple of quick “I’m aware” thoughts up front…



I’m not pleased with the image quality of some images, but that’s a harder problem to solve than you might imagine. I will continue to work on that.
This update only includes through Chapter 8 (although you can still download the entire first edition of the book). Consequently, internal links to later chapters won’t work. I opted to be lazy here, rather than removing those links for now and having to re-enter them as I add chapters.
I need to add the Yii 2 code to the downloads page.

Finally, I am not making any statements as to when I think the next release will be, or how long the entire edition will take. I’ve not done well estimating such things in the past, and the only reliable fact is it’ll take longer than anyone likes, including me. This first update arguably took longer than the others will but… I have goals in mind; some times I reach them, other times I don’t. Mostly, I’m very tired, but 200 pages of Yii 2 material is not nothing!


Thanks, as always, to everyone for their patience and understanding. Please do let me know if you have any problems downloading or viewing the book. I’m going to take a day off of writing (not off my day job), maybe two, and then steam ahead.


Best,

Larry


Release Notes

Version: 1.3
Date published: 2015-06-02
Updated the Introduction through Chapter 8 for Yii 2
Took almost all new images
Created a new tip type: “new” (for new in Yii 2)
Explained how to install Yii via Composer (Chapter 2)
Added an introduction to the Yii 2 debugger (Chapter 3)
Added a section on configuring the web server (Chapter 4)
Added a section on using Gii for regenerating files (Chapter 4)
Moved coverage of behaviors into Chapter 5
Used new behaviors in the CMS example (Chapter 5)
More talk about events earlier in the book (Chapter 5)
Added an explanation of the Object class and properties (Chapter 5)
Added a section on requests and responses (Chapter 7)
Introduced the `remember()` and `previous()` methods for URLs (Chapter 7)
Explained dirty attributes (Chapter 8)
Added a discussion of batch querying (Chapter 8)
Lots of edits to be more succinct and consistent
Output now recognizes the parts
Fixed all the errors found in previous releases
196 pages total as a PDF
 •  0 comments  •  flag
Share on Twitter
Published on June 02, 2015 22:00

May 13, 2015

What is Larry Thinking? #76 => Freelancing, Part 3

In this edition…



About This Newsletter
On the Web => Working Real Hours
On the Blog => How to Screw Up Professionally
What is Larry Thinking => The Pros and Cons of Freelancing
Larry Ullman’s Book News => Four Revisions Coming in 2015 and 2016


About This Newsletter

Howdy, hey! This newsletter is about two months late in coming…but that’s how it’s going for me lately. On the other hand, the price (for you) is right, no? Anyway…


This is the final issue in my three-part series on the business of freelancing. The first part spoke about starting out. Part two focused on working with clients. The most important concept explained in that newsletter is to rethink how you think about clients.


In this newsletter, I’m going to speak to what freelancing is in actuality, while you’re doing it. Well, what it was like in my experience anyway. (For context, I freelanced for 14 years before stopping in 2013 when I joined Stripe).


As always, questions, comments, and all feedback are much appreciated. And thanks for your interest in what I have to say and do!


On the Web => Real Working Hours

One of the tricks with freelancing is how you plan, and account for, your hours. You’ll inevitably do lots of work for which you cannot bill any single client:



Marketing
General email
Skill building
Accounting and paperwork
Drafting proposals

More dangerously, you may even end up working hours for a client that you don’t properly account for or bill. One of the biggest surprises when it comes to freelancing is that you can easily work 60 hours/week just to bill 40. There are so many non-billable things you’ll need to do.


One possible solution to this dilemma is to make your billing hours more effective. That could be achieved by adopting the Pomodoro technique, or by focusing on outcomes not output. This latter idea is explained in an article titled “Real Working Hours”.


On the Blog => How to Screw Up Professionally

In 2013, I had two experiences with two different business that screwed up. In both cases, these are business to which I have given a substantial amount of money. What was notable, though, is how professionally both of them screwed up. Which is not to say that they screwed up in a more advanced manner than the amateur could, but rather that in both instances the business responded professionally. So professionally, in fact, that not only would I willingly give them more of my business, I’d happily recommend those businesses to others. Even though neither of these businesses is remotely involved in technology, the pattern demonstrated by them is something that any business or consultant should take to heart.


This lead me to think about the importance of screwing up professionally, which I wrote about on my blog.


What is Larry Thinking? => The Pros and Cons of Freelancing

I’m not sure how it happened, but some time ago I was asked to answer on Quora the question “What’s life like as a freelance programmer?”. Unfortunately I think you need to be registered at Quora to read it, so I’ll recap my answer here, and elaborate some. I’ve got some pros, some cons, and some tricks to freelancing that will hopefully help you should you choose to pursue this life.


The benefits of freelancing are pretty obvious. First and foremost, you can work as many hours as you want, whatever days you want, and take as many (unpaid) vacation days as you’d like. Second, you get to work at home, so you can kiss that commute goodbye! Third, you’ll have no more annoying coworkers.


Those are the obvious but, frankly, trivial benefits. When I first started, before I had kids, I loved being able to sleep until I woke up. I also loved, loved, loved not having to commute (this is when I lived in Washington, D.C., where commuting slowly sucks the life out of you). However, the rewards of those benefits wear off in time.


The biggest benefit to freelancing, in my opinion, and the one that you can continue to appreciate, is that you have ultimate flexibility as to the types of work you do. Many jobs, if not most, have a high propensity to pigeonhole employees into roles. You’re the e-commerce person; they’re the CMS person; those two are the database people. When you work for yourself, you don’t have to be the person that only does X or Y, you can do whatever you want. When new technologies surface, you’re free to pursue them. I thought this was the biggest appeal of freelancing, and the best way to have longevity in the role.


If those are the pros, what are the cons? Again, starting with the obvious: you have no guaranteed salary and no benefits. Perhaps you can cope with the lack of salary, but the lack of benefits is hard. In America, you can get somewhat mediocre health insurance at a rather high cost. And you’ll need to do your own retirement program. When you’re saying goodbye to that commute, also give a hearty “ta ta for now” to paid vacations and sick days. And plan on making less money than you were for the first X number of years (could be 1, could be 5+).


Not only will you (in all likelihood) make less money than you were, you’ll spend more, too. A computer, desk, chair, printer…all coming out of your pocket. You want the latest version of some software? You’re paying for that, too. You want business cards? You’ll have to buy them. You’ll also find yourself paying for things you didn’t realize you need. For example, I spend $1,000-$2,000 per year on accountants, accounting software, and payroll services. And that expense is relatively fixed whether I earn $30k or $300k (note: I have never ever ever made anywhere close to $300k; I have often made around $30k).


A pro mentioned already is no more annoying coworkers, but you’re losing the good coworkers, too. And the social component. A coffee run or lunch with a friendly colleague? Not so much.


On a professional note, there’s no longer an in-house expert that can teach you the ropes or a peer to sound something out with. Using a colocation work space (also a cost) or getting involved in user groups can help in these areas.


As I wrote earlier, you’ll spend a lot of time doing non-billable things, or unpleasant things, such as chasing down dead-beat clients. And did I mention some people will stiff you? Yes, they will. And it really sucks. Contract or no, in 14 years I still had 2 clients stiff me (for different reasons) and it’s infuriating.


The major pro for freelancing, in my opinion, is the ability to learn about any technology you want and work on any type of project you want. The con is this clause: “in theory”. The fact is you’ll probably make more money if you specialize, if you become an expert in a thing. Yes, you can start learning Node.js tomorrow and decide you’d like to do Node.js projects, but it doesn’t mean you’ll be able to make money doing so. At least not at first.


My final con when it comes to freelancing is that it’s very hard to not be “on the clock”. It’s virtually impossible to say “no” to projects when you work for yourself, as that’s effectively saying “I have enough money already.” Which you don’t. Also, there’s there huge fear that once you start saying “no”, the work will stop coming in. The end result is that–if you’re lucky–you’ll have way more work than you have time. And you’ll make more work time by working more hours and cutting out time for non-work stuff. Similarly, it’s hard to fight always being “on call”. You’ll check your work email in evenings, on weekends, and while traveling. You’ll feel like you have to: no one else is covering for you.


Those are the pros and cons of freelancing as I experienced it. I did learn some tricks along the way, though. Keep in mind a fundamental rule of freelancing is that your policies, rate, and, well, everything will change as your success ebbs and flows.


My first and most important trick is this:


Mentally and emotionally decouple “money” from “work”.


Doing this one thing will greatly improve your success (in the long run) and reduce your stress. But whatever do I mean?


For one, for all the clients that do pay, and pay promptly, there will be a delay between when you do the work and when you get paid. The end result will be that some weeks you’ll work really hard and see very little money (cash in hand that week) and other weeks you won’t work hard but money will come in. It’s weird, it’s annoying, it’s a fact of freelancing. Further, as already mentioned, you’ll do a lot of work for which there is no direct payment to be expected: marketing, accounting, personal development, etc.


For the things that have a direct payment associated (i.e., jobs!), when you’re starting out, a job will pay much less than you’ll earn later on for the same work. Which, ironically, you’ll be able to do faster and easier. If you remind yourself that jobs and clients aren’t just a way of making money–they also provide experience, help you build a portfolio, market yourself, and come back as future clients, disassociating money from work becomes easier.


In that same vein, do be in the habit of giving away your time for free, especially as you’re just getting started. My Quora answer focuses on this aspect quite a bit and I believe it to the core of my being. Volunteer your time, your services, offer your work for free: doing so will reap rewards that you cannot imagine.


The next trick is somewhat obvious: get your name out there. For me, the books I’ve written play a huge role in this regard. Because of the books, development and programming work came to me; I didn’t need to spend any time or money with marketing, bidding for projects, and so on. This was a huge advantage. Writing books isn’t a reasonable approach for…anyone…but giving away your time and effort for free does wonders in that same regard. Work on open source projects (your own, or created by others), actively blog, help in Quora, Stack Overflow or online forums: make a name for yourself in some way and work will come to you.


The next trick is to really manage your hours. Pay attention to how much you’re working and on what. Create routines and adhere to them. Early on, you’ll spend a lot of time learning and marketing yourself; as you get established, you’ll be doing paid work more, but build in time for continued education.


More importantly, build in downtime. Plan on taking vacations, even if those are just low work vacations spent at home. Build in time between projects! Projects will sometimes (often) take longer than expected. If you planned on having project A done by the end of May with project B starting on the first of June, your life will go downhill quickly when project A inevitably runs long. Believe me, I know! There’s a fine line here, as you don’t want too much downtime, although downtime is a great opportunity to improve your skills and catch up with things you always mean to get around to but never do.


The final trick to freelancing, which is the Holy Grail, is to find a way to make money while you’re sleeping. This is not easily done. Making money only through actual hours worked is fine, of course, but if you can make money through passive means, that can go a long way towards your mental and financial health. For me, the book sales generate some income on a regular basis. Other people create subscription services, Software As A Service (SAAS) platforms, rely upon advertising income, etc.


This can be hard to pull off, especially as a primary source of income, let alone a large amount of income, so I’d hesitate to recommend that anyone start off on such a path from the get-go. But once you have your feet under you, if you can find ways to passively make money, you’ll be in an envious position.


Larry Ullman’s Book News => Four Revisions Coming in 2015 and 2016

I just recently blogged about my forthcoming books for 2015 and 2016. First up is the second edition of “The Yii Book” (self-published), for version 2 of the Yii framework. I’m not providing an estimate of when that’ll be completed, but I’m making OK progress so far. I currently plan to release the book in three updates of about 8 chapters each.


Second, I’ll be doing the second edition of “Modern JavaScript: Develop and Design” (Peachpit Press). This is slated to be published by the end of the year (i.e., in 2015). I’ll post a revised table of contents in time, but the primary goals are to clean up anything not great in the first edition and to update/expand Part 3, Next Steps. Specifically I’m going to remove the discussion of the YUI framework (RIP), expand coverage of jQuery and jQuery-related things. Do more with the advanced material, and talk about the Node Package Manager, Grunt, and Bower.

Third and fourth, in 2016, I’ll be writing the fifth editions of “PHP for the Web: Visual QuickStart Guide” and “PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide”. I don’t know in which order I’ll be doing these, but both should be published in 2016. Both will be updated for PHP 7.

I continue to concurrently work 30–35 hours/week for Stripe (and don’t expect that to change), so I don’t imagine I’ll do much of anything else for the next two years. And then I’m never writing another book again. I’m kidding, but I’m going to need a serious break from writing by the end of 2016.

As always, thanks to everyone for your interest in what I say (er, write) and do! And, especially for reading my books!

 •  0 comments  •  flag
Share on Twitter
Published on May 13, 2015 20:11

Larry Ullman's Blog

Larry Ullman
Larry Ullman isn't a Goodreads Author (yet), but they do have a blog, so here are some recent posts imported from their feed.
Follow Larry Ullman's blog with rss.