Search results: personal learning environment

Thinking about my personal learning environment

I was thinking about what I learn and how I learn it.

  Experience Blogs Books Communities Mentors Classes
Life High Medium Medium Medium Medium  
Web 2.0 Medium High High High Medium  
Presentation High Medium High Medium Medium  
Drupal High Low   Medium    
Emacs High Low   Medium    
Organizational knowledge Medium Medium   High High  
Drawing High Low Medium      
Personal finance Medium Medium Medium      
Productivity High High High      
Sewing High Low Medium     Low
Leadership Low Medium High   Medium  
Delegation Medium          

Looking at this, I can see that I’m really not keen on sitting in classes (especially for things I’ve mostly taught myself off the Internet). I learn the most from getting in there and playing around with things. I read a lot about Web 2.0, presentation skills, personal finance, productivity, drawing, and leadership, but I haven’t found many good blogs or resources for delegation. When it comes to technical topics like Drupal or Emacs, I learn the most by getting into the source code and by helping the community solve problems. I mostly turn to mentors for help in navigating IBM and understanding the organization, although we also talk about life, Web 2.0, and communication and leadership skills.

That made me think about what I primarily read about, what I talk to lots of people about, and what I talk to specific mentors about.

 

learning

That makes me think of things I might want to move to different parts of the Venn diagram, like productivity… Hmm.

The imperfect fungibility of time: thinking about how to use money to accelerate learning

2015-01-30 Leaving money on the table -- index card #consulting #experiment #balance

2015-01-30 Leaving money on the table – index card #consulting #experiment #balance

Any time I want to, I could spend more time consulting. This would make my clients happy. It would help me create much more value, and they would get more value from me than from other ways they could spend their budget. I would improve my skills along the way, especially with people’s requests and feedback. And to top it all off, I would earn more money that I could add to my savings, exchange for other people’s time or talents, or use to improve our quality of life.

How hard is it to resist the temptation to work on other people’s things? It’s like trying to focus on cooking lentils when there’s a pan of fudge brownies right there, just waiting to for a bite. It’s like wandering through the woods in hope of coming across something interesting when you know you can go back to the road and the road will take you to an enormous library. It’s like trying to build something out of sand when there’s a nifty LEGO Technic kit you can build instead. It’s probably like Odysseus sailing past Sirens, if the Sirens sang, “We need you! You can help us! Plus you can totally kit out your ship and your crew with the treasures we’ll give you and the experience you’ll gain!”

Maybe I can use this temptation’s strength against it.

2015-02-02 What if I use the lure of work to help me grow -- index card #consulting #experiment

2015-02-02 What if I use the lure of work to help me grow – index card #consulting #experiment

Maybe I can treat client work (with its attendant rewards and recognition) as a carrot that I can have if I make good progress on my personal projects. If I hit the ground running in the morning, then I can work on client stuff in the afternoon. A two-hour span is probably a good-sized chunk of time for programming or reporting. It’s not as efficient as a four-hour chunk, but it’ll force me to keep good notes, and I know I can get a fair bit done in that time anyway.

The other part of this is making sure that I don’t give myself too-low targets so that I can get to client work. It’ll be tempting to pick a small task, do it, and say, “There, I’m done. Moving on!” But I have to sit with uncertainty and figure things out. I expect that learning to work on my own things will mean encountering and dealing with inner Resistance. I expect that my anxious side will whisper its self-doubt. So I lash myself to the mast and sail past the Sirens, heading towards (if I’m lucky!) years of wandering.

Part of this is the realization that even after my experiments with delegation, I’m still not good at converting money back into time, learning, ability, or enjoyment. Time is not really fungible, or at least I haven’t figured out how to convert it efficiently. I can convert time to money through work, but I find it difficult to convert money back to time (through delegation) or use it to accelerate learning.

2015-01-07 What am I happy to pay for in money or time -- index card

2015-01-07 What am I happy to pay for in money or time – index card

Extra money tends to go into projects, tools or cooking experiments. Gardening is one of my luxuries: a few bags of dirt, some seeds and starters, and an excuse to be outside regularly. Paying someone to do the first draft of a transcript gets around my impatience with listening to my own voice. Aside from these regular decisions, I tend to think carefully about what I spend on. Often a low-cost way of doing something also helps me learn a lot – sometimes much more than throwing money at the problem would.

2015-01-27 Financial goals -- index card #finance

2015-01-27 Financial goals – index card #finance

But there are things that money can buy, and it’s good for me to learn how to make better decisions about that. For example, a big savings goal might be “buying” more of W-‘s time, saving up in case he wants to experiment with a more self-directed life as well. House maintenance projects need tools, materials, and sometimes skilled help. Cooking benefits from experimentation, better ingredients, and maybe even instruction.

2015-02-01 Accelerating my learning -- index card #learning #accelerating

2015-02-01 Accelerating my learning – index card #learning #accelerating

What about accelerating my learning so that I can share even more useful stuff? Working with other people can help me:

  • take advantage of external perspectives (great for editing)
  • organize my learning path into a more effective sequence
  • learn about adjacent possibilities and low-hanging fruit
  • bridge gaps
  • improve through feedback
  • create scaffolds/structures and feed motivation
  • set up and observe deliberate practice
  • direct my awareness to what’s important

In order to make the most of this, I need to get better at:

  • identifying what I want to learn
  • identifying who I can learn from
  • approaching them and setting up a relationship
  • experimenting
  • following up

How have I invested money into learning, and what have the results been like?

Tools? Yup, totally worth it, even for the tools I didn’t end up using much of (ex: ArtRage). Do more of this. How can I get better at:

  • keeping an eye out for potentially useful tools:
    • Emacs packages
    • AutoHotkey scripts/ideas
    • Windows/Linux tools related to writing, drawing, coding
  • evaluating whether a tool can fit my workflow
  • supporting people who make good tools
    • expressing appreciation
    • contributing code
    • writing about tools
    • sending money

Books? Some books have been very useful. On the other hand, the library has tons of books, so I have an infinite backlog of free resources. Buying and sketchnoting new books (or going to author events) is good for connecting with authors and readers about the book du jour, but on the other hand, I also get a lot of value from focusing on classics that I want to remember.

Conferences? Mostly interesting for meeting people and bumping into them online through the years. Best if I go as a speaker (makes conversations much easier and reduces costs) and/or as a sketchnoter (long-term value creation). It would be even awesomer if I could combine this with in-person intensive learning, like a hackathon or a good workshop…

Courses? Meh. Not really impressed by the online courses I’ve taken so far, but then again, I don’t think I’m approaching them with the right mindset either.

Things I will carve out opportunity-fund space for so that I can try more of them:

Pairing/coaching/tutoring? Tempting, especially in terms of Emacs, Node/Javascript, Rails, or Japanese. For example, some goals might be:

  • Learn how to improve Emacs Lisp performance and reliability: profiling, code patterns, tests, etc.
  • Define and adopt better Emacs habits
    • Writing
    • Organization
    • Planning
    • Programming
  • Write more elegant and testable Javascript
  • Set up best-practices Javascript/CSS/HTML/Rails environment in Emacs
  • Learn how to take advantage of new features in WordPress
  • Write more other-directed posts
  • Get better at defining what I want to learn and reaching out to people

Actually, in general, how does one accelerate learning?

  • General learning techniques: spaced repetition, skill breakdowns, deliberate practice…
  • Structure and motivation: personal trainers, courses
  • Instruction and perspective: expert, peer, or external
  • Higher-quality resources: original research, well-written/organized resources, richer media, good level of detail, experience/authority
  • Better tools: things are often much easier and more fun
  • Experimentation: learning from experience, possibly coming up with new observations
  • Feedback, analysis: experience, thoroughness
  • Immersion: languages, retreats
  • Outsourcing: research, summaries, scale, skills, effort
  • Relationships: serendipity, connection, conversation, mentoring, sponsorship
  • Community: premium courses or membership sites often offer this as a benefit
  • Freedom: safety net that permits experimentation, time to focus on it instead of worrying about bills, etc.

Hmm. I have some experience in investing in better tools, higher-quality resources, experimentation, feedback/analysis, delegation, and freedom. I’d like to get better at that and at investing in relationships and outsourcing. Come to think of it, that might be more useful than focusing on learning from coaching/instruction, at least for now.

Let me imagine what using money to accelerate learning would be like:

  • Relationships
    • Get to know individuals faster and deeper
      • Free: Build org-contacts profiles of people who are part of my tribe (people who comment/link/interact); think about them on a regular basis
      • Free: Proactively reach out and explore shared interests/curiosities
      • $: Figure out digital equivalent of treating people to lunch or coffee: conversation + maybe investing time into creating a good resource for them and other people + sending cash, donating to charity, or (best) cultivating reciprocal learning
      • $: Sign up for a CRM that understands Gmail, Twitter, and maybe even Disqus
    • Identify things to learn about and reach out to people who are good role models for those skills
      • Free: Be specific about things I want to learn
      • Free: Find people who know how to do those things (maybe delegate research)
      • $: Possibly buy their resources, apply their advice
      • $: Reach out with results and questions, maybe an offer to donate to their favourite charity
    • Help the community (like Emacs evil plans; rising tide lifts all boats)
      • $: Invest time and money into creating good resources
      • Be approachable
      • $: Bring the community together. Invest in platforms/organization. For example, I can use whatever I would have spent on airfare to create a decent virtual conference experience, or figure out the etiquette of having an assistant set up and manage Emacs Hangouts/Chats.
  • Outsourcing
    • Identify things that I want to do, regardless of skills
    • $: Experiment with outsourcing parts that I don’t know how to do yet (or even the ones I can do but want external perspectives on)
    • Use the results to determine what I actually want and what to learn more about; iterate as needed

Huh, that’s interesting. When I start thinking about investing in learning, I tend to fixate on finding a coach because I feel a big gap around directly asking people for help. But I can invest in other ways that might be easier or more effective to start with. Hmm… Thoughts?

25 Tips for Totally Rocking Your Drupal Development Environment: pre-session notes

When I beta-tested this talk with an IBM audience, I realized that there was no way in heck I could fit all the generally useful tips I wanted to share into the session, much less go into the joys of Eclipse, vi, or Emacs. (Especially Emacs. I could spend hours sharing what I’ve learned about Emacs.) Besides, editor choice is such a personal thing. So I’m not going to try to braindump all the cool things you can do with your development environment. Instead, find me at DrupalCon 2009 and pick my brain.

In the meantime, here are some tips that most people might find useful.

  1. Meta tips
  2. Browser tips and plugins
  3. Drupal modules
  4. Source code and configuration management
  5. Automation and regression testing

Meta tips

1. Be lazy.

We will encourage you to develop the three great virtues of a programmer: laziness, impatience, and hubris.

Larry Wall, Programming Perl (1st edition), Oreilly and Associates

Minimize your total effort and the total effort of your team. Learn more so that you spend less time looking. It’s amazing how much of a pay-off you can get from an hour or two just flipping through the Drupal API or the lists of Drupal modules – you’ll get a sense of where things are and what they’re called, and you’ll spend less time reinventing the wheel too. If you can invest thirty minutes in building a tool that’ll save you ten hours of work over the course of the project, do it.

2. Learn from others.

Join a users’ group. Read the Drupal forums. Hang out in #drupal, #drupal-support, and other channels on irc.freenode.net. You’ll learn so much from other people’s questions and answers, and even their approaches for figuring out what’s going on. And you’ll learn quite a lot by helping other people, too.

3. Know your tools inside out.

Read the documentation for your editor and development environment. Read the Drupal handbook and the API. Read the source code, even. Practice your editor’s shortcuts until they’ve been burned into your brain. Know your tools inside out, because they will save you lots of time and effort.

4. Know what’s out there.

One of Drupal’s strengths is the sheer number of third-party packages out there that you can just drop in and customize. Keep an eye out for interesting things. Browse through the available modules or view all the modules in a category. Subscribe to the Drupal Modules news feed in order to find out about new releases. Subscribe to Planet Drupal for interesting blogs. You’ll get lots of inspiration, too.

5. Practice relentless improvement.

At least once a week, invest some time in thinking about about what you’re doing and one small way you could do it even more effectively. Lather, rinse, repeat. As you incorporate more of these improvements into the way you work, you’ll free up more time and energy to work even better. Share your improvements with your coworkers or on your blog for even more benefit.

Browser tips and plugins

These tips are for Mozilla Firefox, because that’s what I use. =)

6. Firebug

Firebug: http://getfirebug.com/

Probably the single most useful extension for web development. I love how you can examine your webpage structure and even change styles or HTML elements on the fly. The Javascript console is really handy for testing JQuery statements and other scripts.

7. firefox -ProfileManager -no-remote

This is how you start a separate session of Firefox, so you can test your site using, say, an admin account and a regular user account at the same time. Bonus: you can set up a test profile with very few add-ons, so that your add-ons don’t interfere with the site you’re testing.

Other ways to accomplish this: run a separate browser, or use the Devel module to switch back and forth. Not as convenient, though.

8. Tamper Data

Tamper Data: https://addons.mozilla.org/en-US/firefox/addon/966

The Tamper Data module is handy when you’re debugging form submits or page redirects, because you can step through the requests or change any of the submitted values.

Alternative: The Devel module for Drupal lets you intercept redirects too.

9. iMacros or another recorder

iMacros: https://addons.mozilla.org/en-US/firefox/addon/3863

Record and automate repetitive browser-based tasks or tests. Really handy for testing those pages where you have to log in, click on this link, click on that link, set this text field, and so on.

10. Drupal for Firebug

Drupal for Firebug: https://addons.mozilla.org/en-US/firefox/addon/8370

Comes in two parts: a Firefox add-on and a Drupal module. This extends Firebug to give you all sorts of Drupal-related goodness, such as a message log, variable dumps for users, nodes, and forms, and data about your views. Reduces the need to insert var_dump into random parts of your code to figure out what’s going on.

Drupal modules

11. Admin Menu

admin_menu: http://drupal.org/project/admin_menu

One of the first modules I install on a Drupal project, this module adds a much more usable dynamic administration menu along the top of the page.

12. Devel

devel: http://drupal.org/project/devel

Lots of goodies for developers and themers. I particularly like being able to view all the SQL queries run on the page, with slow queries highlighted. You may also want to set the SMTP library to Devel during testing, so that you can test e-mail without actually sending e-mail.

13. SimpleTest

simpletest: http://drupal.org/project/simpletest

You can use SimpleTest to test your system both at the source code level and at the web page level – it includes a simulated browser, so you can send GET and POST requests and test whether the results contain text or things like that. Tests are tremendously handy for improving your source code quality. You can also use this to generate lots of test data – just write a test case that creates the test data, and then call the tests you want.

14. Login Toboggan

logintoboggan: http://drupal.org/project/logintoboggan

Configure it to display a login form on every page. You’ll find this helpful when you’re testing various parts of your site, reloading the database from the backup, or generally doing things that involve logins and sessions. You might like it so much you’ll leave it on all the time. =)

15. Xdebug

Xdebug: http://www.xdebug.org/

Not a Drupal module, but a very useful extension for PHP. Use either this or the Zend debugger to pretty-print nice stack traces and variables, or even step through your code. Your debugging life will get so much easier when you figure out how to integrate this with your development environment.

Source code and configuration management

Tip 0: Use a source code control system. If you don’t, you’re inviting disaster. Trust me, you _really_ want to be able to revert to code that’s known to work.

16. Check in your entire Drupal source tree.

Don’t get tempted to just check in the sites/ directory. You might need to touch others, you might need to upgrade core… Anyway, things could get messy. Just check it all in at the beginning, and your development and deployment will be easier.

17. Organize your source code.

Use different site subdirectories for multiple environments, and use subdirectories to organize your modules. This can help you keep your testing modules separate.

I usually work with a local development environment (ex: local.example.com), a testing environment (ex: qa.example.com), and a production environment (ex: example.com). All of the modules that should be available to all those environments go in sites/all/modules. Sometimes I find it handy to put open source modules in sites/all/modules/oss/ and custom modules in sites/all/modules/custom, or another project-specific directory. Development modules that should never ever end up on the production server (such as simpletest and drush) go into sites/local.example.com/modules, and I use symlinks to make the modules available in other testing environments as well.

18. Check in clean source for third-party modules.

With Drupal’s hook and theme system, you can generally get away without directly modifying the source code of well-written modules. However, modules might not have the hooks you want. Before you make any modifications to third-party source code, make sure that a clean, unmodified copy is checked into your source tree. This makes it easier to upgrade the module later on: just get the difference between the current version and the last clean version, install the new version, and reapply the differences (correcting the patch when necessary). To be safe, commit the source code as soon as you unpack the module.

If you started with an already-modified version, don’t worry. It’s not impossible to correct, just tedious. Get the difference between the modified source code and the clean source code, commit the clean source code, and then apply those differences.

19. Test all upgrades against a copy of the production database.

This is related to configuration and change management for a live site. When developing improvements to a site that’s already in production, you’ll often find yourself needing to set variables, enable new modules, and make other changes. Resist the temptation to make these changes by hand as part of a manual upgrade process. You don’t want to do that. You can experiment with making changes through the web-based interface for sure, but any behavior-related changes should (and can!) be written as update functions in the relevant .install files. This allows you to test the upgrades against a copy of the production database as part of your quality assurance process.

CAVEAT: install functions are run in a certain order: alphabetically by module, and then numerically by update number. Keep that order in mind when writing update functions that interact with other modules that also have updates.

For more about this, come to the panel on staging and deployment at DrupalCon 2009 – I’ll be there too!

20. Manage your source code branches and track changes that need to be merged.

Once your website is in production, you’ll find yourself working on bugfixes for the current site and new features for the next version. Save yourself pain and suffering by learning how to use your source code management system’s branching commands to maintain at least two branches of the source code tree – one for the development version, and one for the current released versions. Also look for tools to help you remember which changes you’ve applied to both branches. For example, the svnmerge tool is handy for managing Subversion tries. That way, you can fix bugs on the release branch and merge them into the development branch, so that the next version won’t have those bugs either.

Automation and regression testing

21. Use build tools

You run lots of different commands as part of development. Refresh the database from the backup. Clear the cache. Enable development modules. Connect to the database. Instead of trying to remember or re-type all those commands, use a build tool like GNU Make or Apache Ant to simplify your work. For example, I have my Makefile set up so that no matter what project I’m currently working on or environment I’m currently working in, the following commands pick up project-specific settings and do the right thing:

make mysql connect to the database
make backup make a copy of the database
make backup-partial make a partial copy of the database, omitting accesslog data and other unnecessary information
make restore restore the database from the backup
make dev-restore restore the database from the backup, and enable all the development modules
make clearcache restore the database from the backup
make tags restore the database from the backup
make doc restore the database from the backup
make test run all my project-specific tests

You’ll enjoy not having to remember the command to type.

22. Learn or make tools to save yourself work.

This is an application of tip #1. A little scripting goes a long way. Learn how to write shell scripts and you can save yourself a lot of repetitive work. For example, my team members regularly need to deploy revisions of our source code to the QA testing server. In my team, I’m the most comfortable with Linux. Instead of doing all the deployments myself, I spent thirty minutes writing a script that lets any of the team members start a build. (For a while, I even integrated all the unit tests into it!). The whole system is a bubble-gum-and-string contraption involving PHP, a shell script, a Makefile, and SSH, but it works.

23. Make the most of the Drupal shell (drush)

drush: http://drupal.org/project/drush

Drush totally rocks. Drush makes it easy to run Simpletest tests, SQL queries, even evaluate PHP statements within the Drupal context. I modified mine to make it easy to upgrade modules, too, which means that I can restore from a backup of the production database and run all the update functions within a minute. Learn how to use the different commands built into Drush, and add your own. You can save a lot of mouse clicks and time that way, and you’ll find it easier to automate things (including testing!) and integrate that into your workflow.

24. SimpleTest

Introduced this previously (#13), but it’s well worth repeating. If you implement other tips (such as #19: check all upgrades against a copy of the production database), your tests will become incredibly useful. Write lots of tests using SimpleTest and associate them with a group. Restore your copy of the database using the production backup. Run all of your updates. Use Drush to run the group of your project-related tests, or individual tests. A good test doesn’t display anything if the test passes. If everything passes, hooray! If a test has broken, find out what’s wrong–the code or the test–and fix it. Lather, rinse, repeat.

25. … What’s your favorite tip?

Leave it in the comments below, or share it with everyone during the DrupalCon 2009 session on Totally Rocking Your Development Environment, from 11:30 – 12:30 on on March 4 in the Trellon Room.

Can you see why I’m going to have a hard time fitting all of that into the 60 minutes I have? ;) Particularly if I’m showing things. And I really don’t want to talk _all_ the time, because I’d love to hear people’s tips too. Come and join us on a whirlwind tour. Ask questions. Share your tips. It’ll be fun. =)

Related sessions you might be interested in:

Drupal Patterns: Managing and Automating Site Configurations: ChrisBryant, March 5, 3:00-4:00
Staging and Deployment – A Panel Discussion: Greg Dunlap, Kathleen Murtagh, Shaun Haber, and me: March 5, 5:15-6:30
Drush, Command Line Drupal Productivity: Moshe Weitzman and Owen Barton, March 5, 5:15-5:45  (conflict!)
Drupal Process Management: Drew Gorton, March 6, 9:00-10:00

What do I want to learn?

Inspired by Michele Martin’s post on personal learning environments, I started working on a mindmap and a blog post about how I learn. Before I got far into it, though, I realized that I wanted to first share what I want to learn – the why, not just the how.

So here are a few things that I want to learn more about, why I want to learn more about them, and how I’m currently learning about them. I’d appreciate your suggestions, and I’d love to hear about what you’re learning!

Telling stories with words and images

A good story can make a point so much more effectively than charts or data can. I love listening to stories and showing people that they’ve learned something other people will find useful. I love collecting stories so that I can pick an appropriate story later. I love telling stories in my presentations, blog posts, and conversations, and I want to get better at it.

I want to get better at finding and telling stories because I believe it’s a remarkably effective way to understand people’s experiences and to communicate.

I practice telling stories with words and images by writing blog posts
and by including stories in my presentations. So far, I’m doing well,
but there’s still so much more I can learn. When I grow up, I want to
be Dan Pink. ;)

I want to get better at listening for hints of a story and bringing it out. I think I’ve read as much as I could about this, so it’s really just a matter of getting out there and talking to people.

I want to improve my visual literacy. I often have a hard time thinking of a good image that can illustrate an abstract idea, and an even harder time finding an image that fits. I’ve used Creative Commons-licensed pictures from Flickr and stock photography from low-cost photo sites, and I’ve seen how they can make presentations much richer. I want to develop my ability to think of illustrations and either sketch them myself or find good stock photos. In order to improve that, I:

  • read books about presentation design and cartooning
  • flip through graphic novels and compilations of comic strips
  • browse presentations on SlideShare.net
  • sketch on my Nintendo DS

I think I just need to expose myself to a whole lot of images so that I can start making associations in my brain. =)

Helping new hires connect with the rest of the organization (and vice versa) through Web 2.0

Yes, that’s pretty specific. =) I’m also curious about how individual employees can use social media to grow their networks and provide more value, how communities can use social media to support their activities, and how companies can incorporate social technologies into their strategies, but I’m particularly passionate about helping new hires connect. I think it’ll not only make a big difference in employee retention and satisfaction, it’ll also help companies get more value from what new hires know and what new hires are learning.

I want to get better at communicating the benefits and needed actions to experienced people. To practice this, I’ve joined a community that helps colleagues learn about Web 2.0 and use our internal tools effectively.

I want to improve my ability to show new hires the benefits and help them get started.
I’m working on some materials for new hires, and I’ve gotten involved with our local new hire network.

Experience will help me learn a lot, and I’ll also get to provide a lot of value along the way. =)

Sharing what I’m learning

I want to get better at figuring things out and sharing what I’ve learned. I’m practicing this by blogging and by talking to people. I can improve this in several ways:

  • I can learn about more things
  • I can improve my writing skills to help me write faster, clearer, and more effectively
  • I can make it easier for you to find other things you might be interested in.

I want to get better at mapping what I know. If you know what I know, then you can make better use of it. I’ve got too many blog posts for someone to go and read all of them, but a good map of that – and a map of things I’ve learned but haven’t written about yet – can help you find things you might find interesting.

Helping people change

The thing I enjoy about technology evangelism isn’t convincing people to change, it’s helping people who already want to change. I want to get better at helping people understand their options, figure out how to get started, and learn how to be more effective. I’m practicing by helping people at work and on my blog, and I’m learning more by talking to other people who have a similar urge to help others learn and grow.

Nurturing relationships over a distance

I’m here in Canada because my significant other is here and he can’t move to the Philippines with me. My family and my old friends are half a world away. Being split between worlds is the biggest source of pain in my life. It’s hard to stay in touch when you don’t get to share as many experiences. It’s hard to deal with expectations – both mine and other people’s. It hurts because I don’t want to go for either extreme. I don’t want to give up on this wonderful relationship and focus instead on my duty to my family and my country. I don’t want to focus only on this relationship and forget my roots.

I need to connect with other young first-generation folks. How do other people manage it?

I’d also like to nurture my old friendships, because I’d gotten to know some really incredible people over there. Some friends are easier to keep in touch with than others–they blog, they chat… Through them, I get to hear about other friends, too. I still need to think about how I can do this better.

I also want to learn how to nurture connections with people around the world – coworkers, acquaintances, people I’ve gotten to know through blogs… I currently practice that by responding to mail and by reading other people’s blogs.

Learning how to nurture relationships over a distance is difficult, but I need to learn.

Being more practical

There are a lot of little things in life that I still need to learn. Driving, sewing, gardening, stuff like that. No substitute for experience – I just have to do it.

So those are a few of the things I’m working on learning these days. I’d love to hear your tips. How about you? What are you learning?

Weekly review: Week ending March 10, 2017

Following up on last week’s recommendation to go see a dentist for A-, I took A- to her first dentist appointment. It turns out that she has enamel hypoplasia, a developmental defect that results in incomplete enamel. It’s associated with a higher risk of cavities, so we’ll be extra careful about brushing her teeth and minimizing sweets. It may or may not affect her permanent teeth. We’ll see. Anyway, it’s just something to deal with.

The first session of the parent advocacy workshop was an overview of the 6-week series, definitions of advocacy, and group sharing. It got me thinking about what A- could learn from how I advocate for her. I don’t know what kinds of accommodations we might need, but I hope to be able to take a collaborative approach to continuous improvement. I’d love it if A- absorbed the message “We’re all different, and it’s good to adapt our environment to reduce barriers and help us” rather than “I have to be treated specially because of my limits”. I’m still going to tap all the resources I can, but that’s because I like learning. :)

The Let’s Get Started session focused on visual routines, and I posted a few notes on that and previous sessions. I’ve been making an effort to use more visual props when talking to A- or transitioning between activities: a diaper, the potty, her high chair, the sleep sack…

We’ve been working on pointing, too, as I realized we hadn’t emphasized that and it’s usually a 12-month milestone. She’s starting to get the hang of it, gesturing towards things she’s interested in and sometimes even sort of pointing with a finger.

A- practised crawling up and down the carpeted stairs to the second floor. She sometimes needs a reminder at the top of the staircase to go down legs-first, but is otherwise surprisingly capable. We decided to skip installing baby gates for now since I’m with her, and she seems to like having stair practice time. She works so hard!

We went to the Junction Family Resource Centre and the Parenting and Family Literacy Centre. A- is getting better at playing independently. I had a bit of time to chat with the facilitators and the other parents, and even to flip through the red flags guide by the City of Toronto.

A- figured out a new sound (“Nai”) and seemed to recognize the words “crumple” and “cat”.

I did a little consulting, too. I added a categorization feature, wrote a tutorial, and helped transfer some more of my code.

I replaced my credit card and reactivated my library card, so that’s all sorted out now. I also updated my Ledger to correctly tally up my investments, explored tools for converting bank data, and created a net worth summary report. I needed the investment records in order to double-check the book value for my taxes, which I started preparing in a VM. I also set up incremental backups with borgbackup and a VM for testing my blog backups, yay!

It’s great to have focused time for process improvement. Looking forward to more tweaking!

Blog posts

Sketches

Focus areas and time review

  • Business (1.0h – 0%)
    • Earn (0.9h – 93% of Business)
    • Build (0.1h – 6% of Business)
  • Relationships (1.5h – 0%)
  • Discretionary – Productive (11.4h – 6%)
    • Drawing (1.5h)
    • Emacs (0.8h)
      • ☑ [#A] Do another Emacs News review
      • ☐ [#A] Do another Emacs News review
    • Coding (3.2h)
      • ☑ Set up WordPress inside a VM
    • Tracking
      • ☑ Add prices
      • ☑ Report in nwi-style
      • ☑ Fix locked in RRSP
      • ☑ Try out Studiotax in a VM
      • ☑ Pivot my accounts for easier balance checking
      • ☑ Update TFSA
      • ☑ Fix GIC balance
      • ☑ Set up combined ledger
      • ☑ Update A-‘s ledger
    • Writing (0.3h)
  • Discretionary – Play (0.1h – 0%)
  • Personal routines (12.9h – 7%)
  • Unpaid work (87.4h – 52%)
    • Childcare (76.2h – 45% of total)
  • Sleep (53.7h – 31% – average of 7.7 per day)

Getting coding back into my life

Now that I have a decent workflow for writing, coding would be the next good thing to reintegrate into my life.

I get about an hour or two of discretionary time a day, late at night once A-‘s asleep. It’s not a solid chunk, since A- often wants to nurse, but I can usually get back to what I was doing without losing too much context. Sometimes A- takes a while to settle down, or wakes up midway. Sometimes I’m too sleepy to do much after A- goes to sleep. Still, I usually get a little time to update my journal, do some consulting, or even play video games with my husband.

How does coding fit into the picture? It’s fun. I learn stuff. Sometimes I even build tools that make my life a little easier. It gives me non-baby things to talk about with W- and other people, too.

The time needs to come from somewhere. What are the trade-offs I might make?

  • Fewer drawings of non-journal thoughts, balanced by more writing time on phone. Can I figure out a good workflow for drawing on my phone? Not index cards, but maybe I can move my drawing practice to my phone for extra skill-building and mental variety.
  • Less consulting, but more personal benefits to code; might also use this to expand my comfortable range for consulting
  • Real-life kaizen vs virtual kaizen: shift by doing real-life kaizen while A- is awake
  • Other tasks: still do as needed

What could a good setup be like?

  • I spend some reading time going through documentation, Q&A, research, etc. This helps me improve my skills and work more efficiently.
  • I have a dev environment set up for risk-free experimentation.
  • I have a to-do list with prioritized ideas and notes.
  • I work on tasks that might be 15-30m in size, ideally with tests.

I think it’ll be worth learning how to properly set things up with Vagrant. Frequent rebuilds will force me to make sure all my dev environment assumptions are documented.

It’ll also be worth cleaning up my technical notes and writing more things down, so I can get back up to speed after months or even years away.

Then I’ll want to sort out my testing environment and get back to writing tests. I wonder if I can set things up so that I can even write tests on my phone. Maybe cucumber cases? It’ll be easier to write behaviour-driven tests than regular tests, since I don’t have to mess with punctuation.

Then I can code, one small chunk at a time. Maybe I can even write pseudo code on my phone.

I’d also like to get back to tweaking my environment and tools, since that pays off multiple ways for me: enjoyment, learning, efficiency, and notes to share.

I can start by sorting out my dev environment and notes. We’ll see how that goes, or if this is something that will be mostly on the back burner until A- grows a little more. =)