How to Close a NetSuite SalesOrder Using SuiteTalk

Many things in NetSuite’s SuiteTalk XML API are not intuitive or obvious: closing a SalesOrder is one of them.

When you create a SalesOrder using upsert or add you can set the order_status to _pendingFulfillment or _pendingApproval directly through the order_status field. However, you can’t simply update the order_status field on a SalesOrder to close the record, you need to set is_closed field on each line item in the SalesOrder.

ns_order.item_list.items do |item| item.is_closed = true end ns_order.update({ item_list: ns_order.item_list })

Other SalesOrder states work in a similar way: _partiallyFulfilled, _fulfilled, etc are only achieved by modified the item_list sublist or by creating a separate record (ItemFulfillment, Invoice, etc).

Continue Reading

How to Save Hundreds on Your Next MacBook Purchase

When it comes to something which requires a lot of my time on a day-to-day or week-to-week basis, I purchase the best tools for the job.

I’m a designer & software engineer: my computer is the most important tool in my craft and I make sure I have the best. However, the best doesn’t mean the most expensive: to me, it means the most utility for the dollar.

I’ve always bought every mac I’ve owned used. A couple of people have asked me recently how to find the best price on a replacement MacBook. Here is the process I’ve used to save hundreds of dollars when I’m getting a new computer.

Determine what you need. Most likely, unless you work in tech, 11″ or 13″ MacBook Air will work just fine. Hard drive space is not important. You can easily buy a huge amount of external storage for under $50 for music, movies, and videos. You can always leverage unlimited photo storage via Amazon Prime, or cheap cloud storage via Google Drive to expand your storage capacity without buying an external hard drive. Processing speed isn’t as important as RAM. If you have the choice between 4GB and 8GB of RAM, and a 2.0 or 2.2GHZ processor, get more RAM. Determine the maximum price for the model you need using the AppleInsider price guide. For instance, a brand new 11″ MacBook Air is $800. This will be the price you are going to negotiate and make decisions against – it’s your “worst case scenario” price. Search craigslist for a MacBook that is less than a year old. Every MacBook comes with a year warranty that is applicable to the current owner of the device. If you buy a used MacBook that is less than a year old and it breaks the next day, it’s covered under warranty. This mitigates the risk of buying a used machine. Craigslist is the best marketplace for finding a great deal. There are no transaction fees, there are less buyers (local vs the entire internet), and people are willing to negotiate. This logic applies for any high-priced item. Determine your minimum price. This is the lowest price you can get for the device on craigslist, minus 10-20% depending on how much you want to negotiate and how long you are willing to wait. If the lowest price you can find on craigslist is close to the sale price on AppleInsider, you may just want to buy the machine new. For lower cost machines (like the MacBook air) the amount saved is often not worth the hassle. Email every listing your found on craigslist with an identical email offering your minimum price. Increase your minimum amount if no one accepts your minimum offer.

Continue Reading

Interrogate Your Reactions, Change Your Perspective

It’s easy to be negative, to feel busy, to perceive the current situation as mundane. Part of the reason that people that are consistently positive are often so enlivening is because it’s hard to be positive over the long term. It’s refreshing to meet those who are able to remain positive and magnanimous.

My internal response to situations and tasks that arise can often expose thinking that needs to change. My reaction to when a client doesn’t understand a concept “yet again”, or when I feel like I just have to “deal with” a flaw in a friendship work relationship is a key indicator of where and what I need to change.

I’ve been attempting to interpret those reactions through a lens that forces me to act intentionally in situations rather than run off a knee jerk reaction. I believe strongly that altering my perspective and response to situations can have enormous effects in all aspects of my life. Here’s an example of how I’m challenging myself:

Looking at a frustrating situation as a challenge in how to navigate it with ease and effectiveness Looking at an extensive task list as an opportunity to sharpen skills and achieve a goal Approaching every challenge as an opportunity for character growth Viewing character growth as an adventure in learning Approaching any coaching, or repeated conversations as an opportunity in learning to speak & teach Looking at life as an adventure full of opportunity rather than a list of tasks, requirements, and frustrations.

Continue Reading

How to Transfer a Car Title in Pennsylvania

I recently purchased a new car and needed to transfer the title from the previous owner.

For anyone else who hates digging through state and government websites or wasting time on the phone trying to determine the correct process, here is the cliff notes of how to transfer ownership of a car in Pennsylvania:

How it works:

You and the current owner of the car need to go to a tag/title notary service. Interestingly enough, you can transfer title without getting new license plates if the transfer is mother/son or father/son, but not between siblings. You must pay state & local sales tax based on the recorded sale price for the vehicle They will take the current title, give you a temporary title, and mail you a new title for the vehicle Most notary services are old-school. They accept check and cash, but not debit or credit cards.

Information you’ll need:

Current title Proof of insurance Odometer reading License


$50 title transfer fee $36 yearly registration fee 6% of recorded sale price ~$40 service fee to the notary

Continue Reading

Call Your Old Friends: Four Reasons Why It’s Worth It

I’m horrible at keeping in touch with people who aren’t in my immediate daily life. If someone isn’t involved in my work or my local social circle, I generally won’t remember to give them a call. It’s easy for the busyness of life to eat away at the time available to keep in touch with old friends.

Old friendships are worth fighting for. Yes, it’s impossible to maintain all your old friendships, but it is possible to cultivate a intentional few.

For me, although the time is definitely a limiting factor, the real blocker is the fear of loss. To be frank, for me, time is just an excuse. It’s these questions and thoughts that create the real resistance:

What if the conversation isn’t as good as I remember it? We haven’t talked in a while, what if it’s awkward? What if they aren’t interesting in keeping in touch? I don’t feel like putting out to make this work, it’s easier just to give up.

This year I’m working on reconnecting with old relationships, even if it’s just for 15 minutes during a drive. Here’s what is motivating me:

They give you a fresh perspective. The majority of my old friends have spread out across the country, working in various industries, developing different hobbies, involved in different communities. They bring a unique perspective and help to interrogate your own thinking. They know you better than most, and can offer great advice. Old friends have a vantage point that is impossible to reconstruct with new relationships. They can offer advice that can cut through your bad thinking and enable you to make better decisions, faster. Networks create opportunity. The most successful people I know spend a large portion of their time just corresponding with people. The most valuable professionals are those who have a network they can tap into to get the job done. Keeping in touch with old friends keeps you connected to their networks in some capacity. It’s fun. My old buddies are some of the best people I know. I’d be a fool not to continue to share life when them, even if it’s just over a phone call.

Continue Reading

How to Tackle an Overwhelming List of Tasks

This last week I didn’t keep up with my task list. Some work with a client required all of my attention and the notification badges on my email, todo list, and Slack messages kept growing.

When Saturday rolled around I was buried. After dumping everything in my mind and organizing tasks into logical contexts I realized that there was no way I was going to get through everything. The glowing red double digit notification badges didn’t give me any hope or encouragement either.

I’m not in the clear, but here’s what helped me gain momentum and dig my way out of the hole:

Split tasks up – even if they are small. It’s helpful to break up tasks, even if they should take less than 30min, and schedule the pieces sequentially through the week. Defining the different steps will assist you in tackling them with the slices of spare time you may have throughout the week. Give yourself permissions to punt. In my case, there was no way I was going to get everything done. I scheduled some tasks for later in the week and notified anyone who was waiting on the task that it was going to be delayed. Prioritize. Give all of the items on your list of a priority, this helps give you some additional context about how to start attacking the list. Todoist has some great prioritization functions. Start outsourcing. There were a bunch of tasks that I could send to a VA Look at tasks as an opportunity, not a burden. All of the items on my list are things I’ve chosen to do, chosen to commit to. No one else has put these on my plate, which means they are opportunities that I’ve decided are worth the pain. This is a gift, not a burden!

Continue Reading

Workaround for Heroku Run Log Truncation

Many applications I host on Heroku have small utility or debugging scripts that are triggered via heroku run. Some of the scripts are used to debug issues with an external API, and copying the API request and response is often very helpful in determining what exactly is going wrong. For instance, if I’m debugging a NetSuite SuiteTalk SOAP request, I can pull out the XML and re-run it using curl.

However, heroku run will truncate data STDOUT randomly. This issue has been reported and only seems to happen when writes to STDOUT hit a certain threshold.

The work around to this problem is starting up an interactive shell using heroku run bash and then running your script inside that shell heroku run bundle exec ruby scripts/the_script.rb

Continue Reading

Working on Your Life vs In Your Life

I’m reading the E-Myth Revisited. One of the key concepts is the idea of working on your business instead of in your business. In other words, working on streamlining the process that you or your employees use to create the product or execute the service rather than actually performing the service or creating the product.

Without improving the system you can’t scale the outcome. You’ll be a slave to an undefined process that you can’t delegate.

The same principal applies to my personal life. I need to work on improving the systems an processes that I use to run my life. Working on my life, not just living it.

Here are a couple examples:

Where am I wasting time? What tasks or processes are time consuming but necessary? Automating the purchase of recurring consumables (like toothpaste) was one that fell into the category for me. Where is there a lack of a clear process? For me, my morning routine needed tweaking. Writing down an explicit morning routine has helped bring clarity and focus to what I want my mornings to look like. Is there a lack of focus? Define your goals. Create your own personal “job description” to give yourself the permission to say no to what doesn’t align with your personal mission.

Continue Reading

Results Follow Clarity

Clarity is hard. It takes effort to defined what you are looking for, why you are looking for it, and what you are going to do to get it.

Clarity creates results. It creates momentum. Opportunities appear with knowledge of exactly what you are looking for. Without precise goals you can’t adjust your time and energy to seek out opportunities that align with that vision.

Without a framework to interpret opportunities or situations from it’s hard to say no. It’s hard to choose between opportunities when all the opportunities are better-than-great.

Driving results requires saying no. It requires cutting out the good to make room for the great.

And, sometimes, it means cutting out the nearly-great for the extremely-great.

Create a plan: put pen to paper and create a written description of where you want to go and why in all aspects of your life.

Continue Reading

How to Get Clarity When Your Mind is Scattered or Distracted

When I have a week that is concentrated on a single project I often feel as though I loose focus. My mind can forget other projects or important tasks that were not contained within the context of the project I was working on.

If I don’t catch myself, there is the opportunity for things to fall through the cracks. I forget to respond to important emails, to close the loop on an important task, or push the ball forward on an important project.

Here’s a practice I use to recalibrate myself:

Organize all the paper with ideas or tasks in a single stack. Get a blank legal pad. When my mind seems scattered a blank piece of paper brings clarity. It’s important to get some distance from your phone or computer during this process – even if it’s just for five minutes. Write down everything that comes to mind. Don’t filter ideas or tasks. Don’t worry if you already have them written down. “Brain dump” everything onto paper. For me, it’s important that I write everything down and then move all of the items onto the computer. Open up Todoist, or favorite cloud based task management system. Review new written notes in addition to older notes from the week. Convert all notes into actionable tasks, then throw out all the paper notes. Important: ensure that all notes are translated into action items. If you leave ‘just a couple’ notes or abstract thoughts on paper it will clutter your mind and you’ll feel weighted down.

Continue Reading