Certainly, in the very beginnings of my business, I didn’t actually pay that much attention to my backups. I did have a backup in place, a tape backup. And I just threw that tape in and hit the backup button on my backup software and said done. And then one day my hard drive died and I needed to restore my computer from backup onto the new drive. At which point I discovered that my backups had not actually been working for the last six months. Luckily, I was able to recover most of my work. But 6 months of my email disappeared forever.
This was the point at which my then boyfriend, now husband, Trever, took over my backups. Trever’s a network and systems administrator and he taught me that most important backup lesson:
Unless you actually practice restoring from your backups you do NOT have a backup.
Today I have three levels of backups. First, I save most of my work to cloud storage. These are places on my drive which are mirrored to the cloud. Now this is good, but it’s only one level of backup. And we need to remember that “the cloud” is simply someone else’s computer. My second level of backup is a TimeMachine drive that I have attached to my MacBook Pro, when it is plugged in at my desk. TimeMachine keeps a full backup plus incremental changes. Incremental backups are very handy in case you make a serious mistake and want to just go back to where you were. Maybe yesterday. One of the things I dislike about TimeMachine, and I only discovered after another drive failure, is that a full-system restore is an 8-12 hour process. And I’ve also had a TimeMachine backup go bad, where my computer suddenly decides it’s corrupted and unusable. Between these two issues, I don’t really have full confidence in TimeMachine as my “full system” backup. So my third level of backup is a complete drive clone, using an application called SuperDuper (this is for Mac, on Windows I’d use Carbon Copy or something similar). SuperDuper is scheduled to update weekly. So my worst case at this point is that I might lose up to a week of work, if 2 out of 3 of my backup solutions fail. I’m pretty comfortable that. And I test it occasionally just to be certain.
Backups are often ignored by people who are just trying to throw together their minimum viable product and get it out the door. Unfortunately you never know how much you need that backup until you really screw up. That’s when you find out if your business is absolutely destroyed unless you had everything backed up. There’s nothing quite like the heart-stopper excitement of deleting your production database. This is something that can unfortunately happen all too easily. So if your app depends upon a backend and that backend stores data somewhere…
Do you have a backup? Have you tested that backup? Can it be restored?
If these questions make you nervous, I’d be happy meet with you to discuss where you might be vulnerable, and what you can do to ensure your business carries on, even if something bad happens to your data. Book a consultation with me!
]]>Since I do love a good analogy, the one I lean on the most for this question is… your app will cost as much as a car. And the conversation continues… “Well a car can cost anything from a few thousand to over 100 thousand, so what does that mean?”
Exactly, my friend, exactly. The cost of your app is completely dependent on what you want to do with it, and what your budget is. There are certain features that will cost you a lot more. Let’s carry on with this analogy and a more specific example.
If you want an app that needs direct access to native/hardware features on the phone like smart camera features using on-device machine learning (ie - object or facial recognition)…. you’ll need to be building a native application, and you’ll need to hire a more expensive and experienced developer. This will cost a lot more than a basic e-commerce app that could easily be a simple web-app, using “off the shelf” components. Kind of like if you want to purchase a vehicle capable of hauling a 5th wheel trailer vs just a daily driver to get you to work. You’re not going to get away with a tiny commuter car, you’ll need a truck, and a pretty powerful one at that.
So when you ask “how much will my app cost”, don’t be too surprised by the answer…. “It depends”. If you’d like to make use of Lori’s 30+ years of development experience, and get a better handle on how much your app might cost to create, you can book your mobile app consult today.
I spent many years as a freelance/contract developer. After a while, I started to get more mentoring work, helping teams learn better and faster. Turns out I really liked teaching.
So I created a couple of workshops, The first was RoR4Real or “Ruby on Rails for Real Developers”, aimed at experienced developers who wanted to get up to speed with Ruby and Rails quickly. Those ran locally, and were reasonably well attended. But I found it interesting that about 50% of the attendees were mobile developers, who wanted to use Rails as a back end for their apps. Thus Rails4iOS was created, a variant of RoR4Real where we removed all the front end stuff, added some admin and API lessons. This was even more popular, and it ran locally, as well as at RubyConf AU and NSScotland.
Now, I was looking to do more teaching, but really not loving the “stand up and talk all day” thing with the live workshops. So I started thinking about recording a version of my workshops. At that time, I was also working on my own mobile application with RubyMotion. Turns out the creator of the “Motion in Motion” podcast series on RubyMotion wanted to sell out, so I bought it up, and opened up the WNDX School with MiM as a start, and devoted myself full time to the school. Over time, I updated and added more and more RubyMotion content to the school. It started paying for itself, barely.
I became painfully aware of the fact that I didn’t know anything about running an online school, marketing, or sales. I started the newsletter, RubyMotion Weekly (which quickly devolved to biweekly), so I could interest people in the courses of the school.
When Amir approached me about DragonRuby Game Toolkit, I rebranded the newsletter, and produced the first (and eventually my student intern created the second) DragonRuby Game Toolkit Tutorial. It swiftly became the most popular course in the school. Of course, it was free. I am not a game developer, and not comfortable attempting to create content for game developers. Despite repeated calls in the newsletter, I have not had much luck attracting real game developers to create additional courses for DRGTK in the school.
Realizing something had to change, I entered a business coaching program, where I started working on a new course less focused on a particular technology, that I was calling the “business of apps”. My coach, Todd Herman, in about 5 seconds, came up with the name “6 Pack Apps”, and that’s what it has been ever since.
6 Pack Apps has yet to reach the potential that all my coaches and business associates keep telling me it has. Admittedly, I’ve faced a number of challenges over the past five years, while attempting to market and sell 6 Pack Apps for Entrepreneurs. The death of my brother from cancer. COVID. 3 eye surgeries. My dad’s fall, rehabilitation, and death. Stepping into the role of caregiver for my 89 year old mom.
At least I’ve learned a lot more about business and marketing along the way. Most of those things cost money.
The real crunch, though, is that the entrepreneur funding and grant programs through which I have been teaching the live workshop edition of 6 Pack Apps for Entrepreneurs have largely dried up, while sales of the “do at your own pace” recorded version of 6PA4E are… despite my best efforts at stepping up the marketing game… anemic at best. The DragonRuby Tutorial is free. And with the utter lack of news on the RubyMotion front (last news post is over 4 years old), it’s pretty much impossible to sell the RM content to new people. I mean, it’s nice that it still works. But in the last 4 years DRGTK has been constantly updated and improved, while RubyMotion has stagnated, with the bare minimum of updates simply to keep it running.
I’m left with a business that is now costing me a lot more money to run than it brings in, and I am enjoying the work of that business less and less.
So what does all that mean for the future of the DragonRuby Dispatch and the WNDX School? I’m not really sure yet, except that it absolutely HAS to start with cutting expenses drastically.
I’ve already found alternatives for the course platform. You’ll be informed when any courses you’ve enrolled in have moved.
I don’t want to let the community that has supported me for so long down, so I am pursuing alternative means of supporting the costs of continuing the DragonRuby Dispatch. We hope we can keep it going. I’ll keep you posted.
Meanwhile, I will still continue to run “Tales from the Dragon”, which is the other half of my newsletter, that I produce all on my own. Sign up for it here.
]]>But I’m not here to talk about re-creating games of the past to attract the nostalgia gamers of today (although that’s a huge market). Nope, today I want to talk about why exactly we had games on Windows 95. Windows 95 had several games included. Some of them even started out on Windows 3. Why did Microsoft include games by default on their operating systems? I can guarantee it wasn’t because companies wanted their staff to be playing games on company time.
And I don’t think it was because they wanted people to have fun on their home computers, either, although that certainly was a big benefit. Nope, they put games on computers to teach people how to use their new computers effectively. These games introduced new ways of interacting with the computer. The biggest new thing with Windows 3 was the mouse. And while I welcomed the improved interaction that the mouse offered in the graphical user interface (having used X Windows for some time), many people didn’t. They were too used to keyboards as the sole method of interaction.
So, what does a game have to do with that? Windows games, like Solitaire, Reversi, and later Minesweeper, didn’t really work well at all with a keyboard. They did work perfectly with a mouse. In order to enjoy playing these games you had to use the mouse, and use it well.
BOOM. Yup, the games taught people how to use their mouse effectively. I had personal experience with this. When I bought my parents their first home computer, they were completely new to Windows, although they had both used computers at work before they retired. They persisted in trying to learn all the keyboard shortcuts, and really didn’t like the mouse. That afternoon, after I got tired of reminding my mom for the 10th time about which keyboard shortcut she needed to reach a menu, I excused myself for a few minutes and before I left, said, “Here, look. There’s a solitaire game, why don’t you give that a try until I get back”. The next day it was hard to pry her off the computer for Dad to take his turn. And she stopped asking about the damn keyboard shortcuts!
We are constantly being bombarded with new technologies, and new ways of interacting with these new technologies. Some people, like me, find that fun. Others do not. Each new method of interacting comes with its own special challenges. When we create new apps with new and novel interactions, we need to think seriously about making the learning process fun. And maybe, someday, people will be nostalgic about YOUR app!
Today I’d like to talk to you about support and advocacy - and about the O.G. of developer recognition and advocacy programs - TeamB. I was a proud member of TeamB for many years, starting in 2002. I treasure that memory, and still value the network of friends and associates I gained during that time. (Hey TeamB folks! I know some of you read my blog 😉)
If you use the Internet Archive’s “Wayback Machine”, you can find a simple page that outlines what TeamB was all about.
TeamB was created more than 10 years ago as an experiment in encouraging advanced users of Borland products to answer other users’ technical support questions. The original plan was deceptively simple:
- Identify your most knowledgeable users.
- Find those among them who most enjoy sharing their know-how.
- Organize them into a team.
- Offer them free product and benefits in return for their time.
- Let them loose to answer other users’ questions.
Today, the team is composed of a mixed group of people from backgrounds as varied as the industry itself; former university professors, project managers, hotshot developers, and consultants. More than ever, Borland’s community of users depends and relies on TeamB to receive timely and accurate answers to their questions. It is not uncommon to read a message in the newsgroups thanking TeamB for solving a problem that was threatening to delay an important project or task.
Because TeamB members are not Borland employees, they tend to be outspoken with their opinions on virtually all aspects of Borland’s presence in the market, including but not limited to product development, marketing, and support. Being, for the most part, developers themselves, TeamB shares the concerns of the developer community. If there is an issue of concern to the developer community, it has likely been brought to the attention of Borland by TeamB.
It describes the origin of TeamB on CompuServe, “more than 10 years” before… well this page was captured in 2000. That places it before 1990, and definitely before Microsoft’s MVP program, which is widely, and incorrectly, touted as the first in 1993.
Today, we have Microsoft MVP, AWS Hero, Google Developer Experts, Oracle ACE, GitHub Stars, etc. Most of these programs have a similar bar for entry. A nomination by an existing member of the program, or an employee of the company.
These programs exist because support is a difficult problem even for huge multi-national corporations. These developer advocates are recognized experts. But not only that. Coupled with their deep knowledge is a need to be helpful. (They also don’t get into flame wars.)
If you are a developer looking at your career options, and wondering how to advance, when you love being a developer, and your only options seem to be in management of some kind… consider focusing your efforts on becoming a developer advocate. This is a kind of peer recognition that will help when those discussions about salary increases come up at annual review time. It speaks for itself on a resume, too, if you find you need to move on to continue to grow.
And if you are an entrepreneur, wanting to hire a developer as an employee or consultant, finding a developer advocate is a bit like panning for gold and discovering a diamond in your pan. Grab them and hold on to them. They are rare and precious.
I have a limited number of free consultation spots available for the people reading my blog. But do it fast, because I’ll be closing the door on the free sessions next week.
]]>But much like coding, story telling is a skill, and like any other skill it needs to be practiced. At the beginning you suck. And then you start to suck less. Eventually you get to a point where you think “yeah, that’s not bad at all.” I don’t exercise the story-telling skill every day (my head really would explode if I tried) but I have learned how notice stuff happening in my everyday life and relate it to … teaching people how to create and launch apps.
Today’s story came to me last week as I was setting up (as one does) for a New Year, New Me strength training habit. Got my workout planner set up (it’s a spreadsheet that begs to be an app, but that’s another story) and was trying to figure out how to put together a workout on our 20+ year old Bowflex Xtreme SE 2. The Xtreme came with a DVD that has been lost for about 10 years now that illustrated all the exercises and setups. I finally found a PDF manual for the Xtreme, and decided it would be simpler to print the manual, and leave it beside the machine. Of course, then I needed a binder for this 40 page manual (there are a LOT of exercises).
I quickly searched through my shelves, and found a sacrificial binder, from a project I worked on in 1999. It was about the same size document, so the binder was perfect. Now you may be thinking … “Lori, why are you dragging around documentation for a 25 year old project?” I must admit I’ve been unusually resistant to getting rid** of this piece of documentation, because it was a tangible reminder of my last stint as an employee, and as a software architect.
However, nothing can change the fact that it also represents a reminder of months of effort down the drain. In 1999 I created a very complete high level design for a software service called “FIFO (Farm In, Farm Out)” for the oil industry that was shelved and never used. And that made me very angry. Angry at the waste. Given what I was making at the time, it was over $20,000 of wasted effort. And that doesn’t even count the time of all the people I consulted while I was working on the project.
This was 25 years ago, and I wish I could say this doesn’t happen anymore. But that would be a lie. I have a very good friend that I met in that business coaching program I mentioned above. The first conversation we had was when she asked me for advice about her app. The app that she’d spent over $25k on, and still wasn’t ready for release. And in the end was never released.
Here’s what I have observed:
Why does this sort of thing keep happening? Why do people spend so much time and effort and money on their apps for … nothing in the end?
Because one of life’s lessons that is mostly learned from very expensive mistakes experience, is that sometimes you can’t just throw money at your problems to make them go away. Sometimes it takes a little bit more …
If you’d like to discuss your app idea (or app project in progress) with me, I have a limited number of free consultation spots available for the people reading my blog. But do it fast, because I have a couple other projects on the horizon and I’ll be closing the door on the free sessions shortly.
** Why yes, I did scan that document to save it. I’m still not ready to let COMPLETELY go.
]]>After stumbling across this rather ancient guide, I thought of how it could be updated for today. Assisting family, especially non-technical seniors, with mobile phones and tablets can be a challenge, but it’s essential as so much of our world has migrated online. Here’s a guide based on what I’ve learned about aiding people in navigating their mobile devices:
Following these principles, some key rules stand out:
As the video progresses, you see the process, all the steps, and even imagine that just maybe you could watch this video and duplicate the process to fix your own hole.
I submit… you could not. At least, you could not create such a seamless fix in such a short time. You could not even do it if you had a long time. Your first attempt probably wouldn’t work at all. And your next few attempts might fail or they might succeed and just look… awful.
You would need more guidance, and lots and lots of practice, probably on much simpler projects, before you were able to duplicate this feat.
So when people ask, why does it cost so much to create a mobile app, I have to remind them… You aren’t paying for the app.
You are paying for the years or decades of training and experience that make building your app look simple.
For me, a seasoned developer with three decades of experience under my belt… I can create apps. I can create web apps, and I can create native mobile apps.
I can create apps using frameworks and tools I’ve spent years collecting and learning. And more years collecting and learning entire new technologies, because the world of computers and applications reinvents itself every 5-8 years.
No-Code is simply another tool we use today, to create apps. And I can use it too. And I can make it look simple.
My years of experience tell me the fact that No Code services use no code makes them simpler in many ways. But that simplicity comes with a cost. Simplicity also makes them infinitely less flexible.
Make no mistakes… creating and launching a No Code app is still LAUNCHING AN APP! And it may be, for your particular project, the right way to go. But that doesn’t mean it will be simple to create FOR YOU. Or for your brother-in-law’s niece who’s “good at that computer stuff” 🙄
So… my last FREE live session on the topic of No Code was cancelled… after no one showed up to participate.
Since there were quite a few people who expressed interest, I’ve rescheduled it to this month. If you are interested, hit the button below to register, and I’ll send you reminders about the session one day and one hour before it starts. Please do make an effort to attend, if you sign up.
This month’s live session is in two weeks on Monday, Dec 18th (FINE, that’s 12 days from today) on Zoom and it’s called No Code - Can you build an app in an hour (Part 2)?. Register to join, and come and watch me turn the app prototype I created a few months ago into a “working” app (again). This time, I’ll be using Bubble.io. I’m curious as to how it is different from Adalo (Part 1!).
]]>And the idea of Grandma and gaming brought to mind an important point. The games we build aren’t just for young people, they are for everyone, and everyone includes older people.
For instance my mom - she’s 88 and she has an iPad and she plays games on her iPad. In fact, she played Solitaire SO MUCH that she actually ran out of games to play. She got to the END of SOLITAIRE, and that is a LOT of games of solitaire and a lot of hours of gameplay. So last month I had to find some new games for her to play.
When picking out games for an older person, who’s not really 100% comfortable looking for apps for herself, there are some important considerations. Older folks need to start thinking about cognitive health. For cognitive health (helping to ward off memory loss and early dementia) older folks need games that actually use some brain power. The two new games that mom is playing now are word search and crossword type games. She is just as addicted to her word search game now as she has been to her solitaire game! Game addiction isn’t just for young people.
Apparently she played until 12:30 am 🤷♀️
So the next time you’re trying to come up with a cool new game idea, think about what kind of games different people would like to play, and NEED to play, not just games for people like you. Think about younger people, small children, older people, seniors, people with disabilities. All of these people want and need games to play.
Next week (on Monday, November 27) I’ll be hosting my next live session on Zoom called No Code - Can you build an app in an hour (Part 2)?. Register to join, and come and watch me turn the app prototype I created a few months ago into a “working” app (again). This time, I’ll be using Bubble.io. I’m curious as to how it is different from Adalo (Part 1!).
]]>We are making leaps and bounds in ML, but at what price? Right now, we are in the middle of the “Wild West” of ML and LLM - Large Language Models. People are applying ML to EVERYTHING. It remains to be seen how a lot of these applications are going to work in the future, as we grapple with the implications for privacy, copyright, intellectual property, and personal rights.
At this moment in time, all the online services are rushing to add ML features to their product offerings. But some of those offerings come with a steep price in privacy, where you must agree to make all your information stored or accessible to the service available to the ML algorithms, in order to opt-in to the service. I anticipate mega-corporations locking down these features to protect corporate secrets and intellectual property. But individuals should be thinking about these implications as well. Artist rights are under siege, affecting not only high-profile figures in Hollywood but also cartoonists, caricature artists, fiction writers, and copywriters, among others.
And we have code being created by ML. Github Copilot was just the beginning, and the controversies around Copilot abusing some of the license terms in open source projects is unlikely to go away either. Should the developers of software be worried? At this point in time, ML code is looking at lot like the ML image generation (do you have 6 fingers?). ML can generate code that appears good at first glance, but upon closer inspection, it’s riddled with bugs. I wouldn’t rely on it for anything I care about.
Are there good uses for ML and LLMs? Sure. Some of the new tools I’m using (the Arc browser, the Warp terminal) are starting to REALLY make an impact on my day to day work. Speeding things up, making annoying things easier. And how about… no code solutions? I’ve been digging into those, for a series of training videos I’m producing for my 6 Pack Apps for Entrepreneurs program. There are some really interesting “so called” AI features that make pretty intelligent assumptions about what you are trying to do, and help… fill in the blanks. Sometimes they do it wrong, but mostly they are getting it right.
This week (in fact, tomorrow) I’ll be hosting a live session on Zoom called “No Code - Can you build an app in an hour?”. Come and watch me turn the app prototype I created a few months ago into a “working” app… in an hour? I guess you’ll have to sign up to find out if I can!
]]>