*Coder Blog

Life, Technology, and Meteorology

Distributing load across multiple volumes

When it was time to implement a new online service to store observations for tens of thousands of weather stations and make that data available to Seasonality users, I had a lot to think about with respect to the hardware configuration of the weather servers. The observations service requires a lot of disk I/O (not to mention storage space), but it’s pretty light on processor and memory requirements. I had spare cycles on the current weather servers, so I didn’t see the need to buy all new equipment. However, I wanted to be careful because I didn’t want the increased disk load to slow down the other services running on the servers.

Let’s back up a bit and talk about what kind of setup I currently have on the weather servers for Seasonality. I have a couple of servers in geographically diverse locations, each running VMware ESX with multiple virtual machines. Each virtual machine (VM) handles different types of load. For instance, one VM handles dynamic data like the weather forecasts, while a different VM serves out static data like the websites and map tiles. These VMs are duplicated on each server, so if anything goes down there is always a backup.

One of the servers is a Mac Mini. It had an SSD and a hard drive splitting the load. With the new observations service in the pipeline, I replaced the hard drive with a second SSD to prepare for the upgrade. With this particular server being marked as a backup most of the time, I didn’t have any load issues to worry about.

The other server is a more purpose-built Dell rack mount, with enterprise hardware and SAS disks, and this is the box that I lean on more for performance. Before the observations server I had two RAID mirrors setup on this server. One RAID was on a couple of 15K RPM disks and handled all the dynamic VMs that needed the extra speed, like the forecast server and the radar/satellite tile generator. The other RAID was on a couple of more typical 7200 RPM disks and hosted VMs for the base map tiles, email, development, etc. There were two more disk bays that I could put to use, but I had to decide the best way to use them.

One option was to fill the extra two disk bays with 7200 RPM disks, and expand the slower RAID to be a bit more spacious, and probably increase the speed a reasonable amount as well. The other option was to add two disks that didn’t match any of the other RAIDs, effectively adding a 3rd mirrored RAID to the mix.

I decided on the later option, because I really wanted to make sure any bottlenecks would be isolated to the observations server. For the price/performance, I settled on 10K RPM disks to get some of the speed of the faster spindles, while not breaking the bank like 15K or SSDs. The observations service would be run completely on the new RAID, so it wouldn’t interfere with any of the current services running on the other volumes. So far it has worked beautifully, without any hiccups.

My point here is that it’s not always the best idea to create a single big volume and throw all your load at it. Sometimes that setup works well because of its simplicity and the extra speed you might get out of it. However, with most server equipment having enough memory and CPU cycles to create several virtual machines, usually the first limitation you will run into is a disk bottleneck. When splitting the load between multiple RAID volumes, you not only make it easier to isolate problem services that might be using more than their fair share, but you also limit the extent of any problems that do arise while still retaining the benefit of shared hardware.

Fixing BufferBloat

For years I’ve had issues with with my internet connection crapping out whenever I’m uploading data. The connection will be fine when browsing the web and downloading data at the rated speed of 60 mbps. However, whenever I tried to upload a large file, it would saturate my upload link and slow every other network connection to a crawl. Websites wouldn’t load, DNS wouldn’t resolve, and ping times would be measured in seconds.

My theory for a long time was that the upload bandwidth was becoming so saturated, that TCP ACKs for incoming data wouldn’t get sent out in a reasonable amount of time. So for a long time I was looking for a way to prioritize TCP SYN/ACK packets. However, I never ended up figuring out how to do this.

A few nights ago while looking for a different solution, I stumbled across the idea of BufferBloat causing issues when saturating an internet link. Apparently, modern networking equipment has a lot more connection buffer memory than older equipment. This seems like a good thing, with memory prices being so cheap it makes sense to include a large buffer to help keep the network link saturated. The increased buffer could be in your router, cable modem, or any number of components at your ISP. Unfortunately, this can cause problems when your link is slow enough to fill the buffer quickly.

When TCP connections are created, the networking hardware starts spooling up the connection speed by gauging the TCP ACK packet response times. The faster the ACK packets arrive, the faster the network connection appears to be to the network interface, so the interface tries to send data even faster until the link is saturated.

The problem is that networking equipment between the network interface on your computer and your destination may be buffering a lot of network packets. In my case, I have a 5 mbps upload link, so either my modem or router is buffering enough data while I’m uploading a large file that TCP ACK packets are taking several seconds to arrive back. During that time, the packets are just sitting in the buffer waiting to be sent. Once the bandwidth to send the packets is available, they transmit relatively quickly, but from the standpoint of my computer the response time is very slow. This kills the connection.

The fix is to limit the amount of outgoing bandwidth on your router using QoS. What you want to do is to limit your bandwidth to about 0.5 – 1 mbps less than your connection can handle. On the ZyXel ZyWALL 110, this is done through the BWM (bandwidth management) screen in the configuration. First, enable BWM with the checkbox at the top of the page. Then add a new rule:

Configuration
Enable: checked
Description: Outgoing Bandwidth Limit
BWM Type: Shared

Criteria
User: any
Schedule: none
Incoming Interface: lan1
Outgoing Interface: wan1
Source: any
Destination: any
DSCP Code: any
Service Type: Service Object
Service Object: any

DSCP Marking
Inbound Marking: preserve
Outbound Marking: preserve

Bandwidth Shaping
Inbound: 0 kbps (disabled), Priority 4, Maximum 0 kbps (disabled)
Outbound: 4000 kbps, Priority 4, Maximum 4000 kbps

802.1P Marking
Priority Code: 0
Interface: none

Log: no

The key above is in the Bandwidth Shaping section. Set your outbound guaranteed bandwidth and bandwidth limit to 0.5 – 1 mbps below your maximum upload speed. Here I set mine to 4000 kbps, which is a megabit less than my internet upload speed of 5 mbps.

Once I did this, my connection improved dramatically. I take a slight hit in upload rate for the single upload connection, but overall my internet connection is a lot more responsive for other connections and devices while uploading. If you think you might be experiencing this same issue, try running a speed test over at DSL Reports on your internet connection. Their speed test will check and give you a report on BufferBloat. Before the fix, my upload BufferBloat was around 600 ms. After the fix the BufferBloat is down to only 20 ms.

Best rated Ten Strategies for Writing a college Essay

Best rated Ten Strategies for Writing a college Essay

Start out early. The more time you’ve, the considerably less emotional tension you might have. You are going to have a lot of time to offer the essay your best energy. ? Be you. Take a minute to think about what passions you, what you love to speak about, what will make you sit up and just take observe if it happens to be talked about in school or on Tv set. Then craft about it. An individual within the greatest problems students make is “writing what they think that other people plan to listen to, rather than about a problem, event, or particular person that basically experienced importance for them,” says an admission and economic support officiat at a The big apple school. An essay like that isn’t just mundane to write, it can be monotonous to scan. Be straightforward. You happen to be jogging late, you cannot contemplate of what to put in writing, and someone e-mails you a heartwarming story. With only a tweak right here and there, it may be an ideal essay, you think. It happens to be what you would have composed if you’d just had good enough time. Will not be fooled! University admission officers have examine hundreds, even countless numbers of essays. They really are masters at finding any form of plagiarism. Adapting an e-mail story, deciding to buy an essay from some World-wide-web web site, obtaining someone else to write down your essay, admission many people have observed everything. Will not hazard your college or university career by getting the easy way out. ? Take a possibility. On the other hand, some challenges can pay off. Please don’t accept the essay that everyone else is crafting. Picture an admission officer up late, looking at the fiftieth essay within the working day, yours. Are you interested in that individual to nod off for the reason that they has by now browse through 10 essays on that matter? “The risk lies not in composing lousy essays but in producing typical essays, the an individual that admission officers will read through dozens of,” says an associate director in a Pennsylvania highschool. “My recommendation? Consult your buddies what they are crafting, and after that will not write about that!” Hold in aim. This can be your chance to tell admission officers particularly why they need to confess you. Sad to say, some college students endeavor to checklist each and every cause, their stellar tutorial record, their athletic prowess, their local community provider, all inside a webpage or two. When that occurs, the essay appears like a grocery listing. Check out the essay problem meticulously and jot down a number of ideas. Then opt for the one that appears much like the most amusing to write about. Follow that key theme all the way through the essay. You do not have to list your achievements, that is just what the rest belonging to the application is for. Use the essay in a very innovative technique to assist the admission officers get to know you as being a person. Generate and rewrite. You shouldn’t make an attempt to craft a masterpiece with your primary try. It is really impossible, and everything pressure is probably going to present you writer’s block. For your primary draft, create something that comes to brain regarding your matter. Never fear much too substantially about grammar or spelling. Just get it down on paper (or laptop display). Then permit it “rest” for the handful of hrs or maybe a few times. Once you come back on the draft, find strategies to enable it to be significantly more centered and greater prepared. Many people are “fat” writers: they create longer, wordy earliest drafts that should be shortened afterwards. Some people are “skinny” writers: they write brief and simple 1st drafts and afterwards should incorporate info or examples to “flesh out” the skeleton. In either case, never be scared to help make serious improvements at this time. Are there particulars that don’t truly relate to the topic? Minimize them. Do you want a further instance? Put it in. Right here are two other items to test, proposed by one college counselor. • Clear away the introductory and concluding paragraphs, and then find out if your essay seems stronger. These paragraphs are sometimes just about the most possible to own unnecessary detail. ? • Undergo the essay and lower out every “very” and each “many.” Words and phrases like they are imprecise, along with your writing is often much better lacking them. Get yourself a second point of view. Even best-selling novelists check with other individuals to scan their manuscripts prior to when they’re despatched for the publisher. When you’ve rewritten the essay towards your fulfillment, identify someone who can give you hints and tips regarding how to enable it to be a lot better. Determine anyone you respect and who knows an item about producing, a favorite English teacher, a dad or mum, or perhaps mate who writes for your faculty paper. Talk to them to inform you what they like very best regarding your essay, and that which you can do to further improve it. Criticism within your writing can certainly be robust to listen to, but make sure to listen with an open up intellect. You do not have to help make just about every alter recommended, in fact, it’s your essay and no person else’s, however , you have to seriously think about every single recommendation. ? Proofread. As a final point, you’re willing to send out your essay. Not so speedily! Check out it more than just one way more time, searching for people modest errors that will creep in as you be able to write or edit. For anybody who is choosing a pc, also operate a spell check out. On occasion, it might be challenging to capture minor typos-you’ve browse through the essay numerous situations that you see what will be there relatively than precisely what is there. To make convinced you capture all sorts of things, try out reading through your essay out loud or owning some other person look at it out loud to you personally. One additional methodology is to look at the essay backward, from your very last sentence into the earliest. Which makes it just unfamiliar ample for faults to face out. ? Be exact. Making use of on the internet may perhaps experience like you’re sending e-mail, but you’re not. Strive no to employ casual e-mail language, incorrect capitalization or abbreviations this sort of as BTW or termpapers-for-sale.com “thanx,” that happen to be not best suited into a formal document. Make sure that your web based essay represents one of the best of you. ? Do not be expecting also very much from an essay. The application essay is significant, but it can be not the only thing that could be thought of as. “Can the essay produce a distinction in acquiring the ‘thin versus thick’ envelope? Absolutely,” claims the brand new York director. “But that is the exception instead than the rule.” Which is due to the fact that admission officers investigate the full package, your lecturers, extracurricular actions, standardized checks, along with reasons. A perfect essay hardly ever can make up for just a weak educational record. About the other hand, a mediocre essay will not always consign your application towards “deny” listing. So make your essay as well-written while you can, but you should not place a great deal of force on oneself that the relaxation of the application fades in great importance.

It’s been a hell of a week

Last year, I dropped a chunk of change on a Pegasus2 RAID box to store all my data on. It has been a great device since then, until earlier this week when a drive died in the RAID. Now, the Pegasus was configured as a RAID 5, so it should have just kept chugging away until I was able to replace the disk. That’s why I spent the money on it, after all, so a drive failure wouldn’t keep me from getting work done. Unfortunately, the Pegasus instead started to fail itself, throwing I/O errors to the system for days before finally failing the disk out of the volume. I can’t count how much time I spent trying to figure out where the hell the sporadic beach balls were coming from, including reinstalling the OS, twice.

I’ve been going back and forth with Promise about it, and we still haven’t gotten anywhere. The Pegasus did finally kick the drive, so now the volume is accessible again, but I have 0 confidence in the device itself or the content that is currently on there. I have backups, so at least that isn’t a problem.

But now I’m in the middle of damage control. Yesterday I ordered a new disk for the failed one in the Pegasus, shipping it next day air. Of course I ordered the 5900 RPM drive instead of the 7200 RPM one, which is partly my stupid mistake for not realizing and partly due to Seagate not being explicit with the spindle speed in their products anymore. Back that goes to Amazon today (which as the silver lining of this story actually refunded me the entire cost of the drive plus the extra I paid for next day shipping, amazing customer service and kudos to Amazon!). The correct drive is on its way to me and will be here tomorrow.

Beyond that, I ordered a new 6TB drive to store all my data until I’m satisfied that the Pegasus is back online and reliable again. That is set to arrive here tomorrow as well.

Like I said, a hell of a week. The Apple TV Dev Kit arrived in the middle of all this, but unfortunately I haven’t had a development Mac or the time to work with it yet. In the end, here’s how I’m seeing the score:

Me: -1 (for purchasing the wrong drive)
Apple: +1 (for shipping the Dev Kits so quickly)
Seagate: -5 (for no longer listing drive RPM in their product specs)
Amazon: +10 (for going above and beyond in customer service)
Pegasus: -20 (for dying in the exact situation I spent extra money to avoid)
Promise: ? (still don’t know how they are going to handle my Pegasus failure)

Waiting for Review

Pro_waitingreview

You have no idea how surreal it is for me to see this right now.  For non-developers, this is what you see after submitting an application to Apple to review for the App Store.  It always feels satisfying to click that final Submit button, but this time is a little more special for me.  You see, Seasonality Pro has been the longest project I have ever worked on.

The ideas for Seasonality Pro started spinning in my head before the iPad even came out.  In the fall of 2008, I was taking a synoptic meteorology course and thought how cool it would be to have an app that would show model data in a beautiful way that would be easy to use and offer completely customizable maps.  Over the following couple of years, iPhones got faster, the iPad came out, and the idea of what the app could be solidified in my mind.

But I didn’t work on it…  The task was just too large.  Where would the data come from?  What data formats would I have to parse?  Where could I get the necessary custom maps and how do I draw them?  How do you draw contours, and shaded layers, and calculate derived layers from several model data fields?  How would it perform?  There were just too many unknowns; I couldn’t start working on it.

And then I could…  Over time enough of the pieces fell into place that I started an Xcode project in September of 2013.  A month later, I had my first base map plotted.  And the pieces started coming together faster when I started working on it full time in 2014.  By the end of the summer, I had a pretty good app going (basic plots, etc), but there were still so many details left to be done.  I had to take a few weeks break and spend some time updating my other apps before I could finish up Pro.

A few weeks turned into a few months, but by November 2014 I was back on it.  I presented my work at the American Meteorological Society annual meeting in January 2015.  The reception was good.  It was a relief to finally show it to people who were in the target market and see their eyes light up.  The project was even closer to being finished, but I still hadn’t run a beta.

The beta started in late January.  Lots of bugs were squashed, and lots of adjustments were made to improve the feel of the app.   The beta stretched for months longer than a usual beta.  It was a complex app (close to 100,000 lines of code for even this first version), and finishing it felt like a big mountain to climb with the last 20% of the work taking 80% of the time.

So now we’re into May, but it’s done.  Seasonality Pro 1.0 has been submitted.  A labor of love for so many years, finally being realized.  Will I make back the investment put into it?  It’s hard to say.  A lot of people think it would be crazy to work on an app longer than a few months, not knowing if it was going to make it in the App Store.  For me though, these are the types of projects worth working on.  Bringing a product like this to market advances the field of meteorology, and it’s not something that just anyone (or any company) can do.  With millions of apps on the store, there is nothing else like it.

Here’s hoping for a speedy app review…

Setting up a Small Desktop RAID System

With the exodus of mass internal storage hitting even the top end of the line in the 2013 Mac Pro, a lot more people are going to start looking for external solutions for their storage needs. Many will just buy an external hard drive or two, but others like myself will start to consider larger external storage arrays. One of the best solutions for people who need 5-15GB of storage is a 4 disk RAID 5 system. As I mentioned in a previous post, I went with a Pegasus2, and set it up in a RAID 5. This brings up a lot of questions about individual RAID settings though, so I thought I would put together a primer on typical RAID settings you should care about when purchasing a Pegasus or comparable desktop RAID system.

Stripe Size
Stripe size is probably the setting that has one of the biggest impacts on performance of your RAID. A lot of people will run a benchmark or two with different stripe sizes and incorrectly determine that bigger stripe sizes are faster, and use them. In reality, the best performing stripe size highly depends on your workload.

A quick diversion to RAID theory is required before we can talk about stripe sizing. With RAID 5, each drive is split up into blocks of a certain size called stripes. In a 4 disk RAID 5, 3 disks will have real data in their stripes, and the 4th disk will have parity data in it’s stripe (in reality, the parity stripes in a RAID 5 alternate between drives, so not all the parity is on the same disk). The parity stripe allows a disk to fail while still keeping your array online. You give up 25% of the space to gain a certain amount of redundancy.

When you read data from the volume, the RAID will determine which disk your data is on, read the stripe and return the requested data. This is pretty straightforward, and the impact of stripe size during reading is minimal.

However, when writing data to the disk, stripe size can make a big performance difference. Here’s what happens every time you change a file on disk:

  1. Your Mac sends the file to the RAID controller to write the change to the volume.
  2. The RAID controller reads the stripe of data off the disk where the data will reside.
  3. The RAID controller updates the contents of the stripe and writes it back to the disk.
  4. The RAID controller then reads the stripes of data in the same set from the other disks in the volume.
  5. The RAID controller recalculates the parity stripe.
  6. The parity slice is written to the final disk in the volume.

This results in 3 stripe reads, and 4 stripe writes every time you write even the smallest file to the disk. Most RAIDs will default to a 128KB stripe size, and will typically give you a stripe size range anywhere from 32KB to 1MB. In the example above, assuming a 128KB stripe size, even a change to a 2KB file will result in almost 1MB of data being read/written to the disks. If a 1MB stripe size is used instead of 128KB, then 7MB of data would be accessed on the disks just to change that same 2KB file. So as you can see, the stripe size greatly determines the amount of disk I/O required to perform even simple operations.

So why not just choose the smallest stripe size? Well, hard drives are really good at reading contiguous blocks of data quickly. If you are reading/writing large files, grouping those accesses into larger stripe sizes will greatly increase the transfer rate.

In general, if you use mostly large files (video, uncompressed audio, large images), then you want a big stripe size (512KB – 1MB). If you have mostly very small files, then you want a small stripe size (32KB – 64KB). If you have a pretty good mix between the two, then 128KB – 256KB is your best bet.

Read Ahead Cache
A lot of RAID systems will give you the option of enabling a read ahead cache. Enabling this can dramatically increase your read speeds, but only in certain situations. In other situations, it can increase the load on your hard drives without any benefit.

Let’s talk about what happens in the read cache when read ahead is disabled. The read cache will only store data that you recently requested from the RAID volume. If you request the same data again, then the cache will already have that data ready for you on demand without requiring any disk I/O. Handy.

Now how is it different when read ahead caching is enabled? Well, with read ahead caching, the RAID controller will try and guess what data you’ll want to see next. It does this by reading more data off the disks than you request. So for example, if your Mac reads the first part of a bigger file, the RAID controller will read the subsequent bytes of that file into cache, assuming that you might need them soon (if you wanted to read the next part of the big file, for example).

This comes in handy in some situations. Like I mentioned earlier, hard drives are good at reading big contiguous blocks of data quickly. So if you are playing a big movie file, for instance, the RAID controller might read the entire movie into cache as soon as the first part of the file is requested. Then as you play the movie, the cache already has the data you need available. The subsequent data is not only available more quickly, but the other disks in your RAID volume are also free to handle other requests.

However, the read ahead results in wasted I/O. A lot of times, you won’t have any need for the subsequent blocks on the disk. For instance, if you are reading a small file that is entirely contained in a single stripe on the volume, there is no point in reading the next stripe. It just puts more load on the physical disks and takes more space in the cache, without any benefit.

Personally, I enable read ahead caching. It’s not always a win-win, but it can greatly speed up access times when working with bigger files (when the speed is needed most).

Write Back Cache
There are two write cache modes: write through, and write back. Your choice here can have a dramatic impact on the write speed to your RAID. Here’s how each mode works.

Write Through: When writing data to the disk, the cache is not used. Instead, OS X will tell the RAID to write the data to the drive, and the RAID controller waits for the data to be completely written to the drives before letting OS X know the operation was completed successfully.

Write Back: This uses the cache when writing data to the disk. In this case, OS X tells the RAID to write a given block of data to the disk. The RAID controller saves this block quickly in the cache and tells OS X the write was successful immediately. The data is not actually written to the disks until some time later (not too much later, just as soon as the disks can seek to the right location and perform the write operation).

Enabling the write back cache is “less safe” than write through mode. The safety issue comes into play during a power outage. If the power goes out between the time that the RAID told OS X the data was written, and the time when the data is actually on the disks themselves, data corruption could take place.

More expensive RAID systems, like the Pegasus2, have a battery-backed cache. The benefit here is that if a power outage happens as described above, the battery should power the cache until the power goes back on and the RAID controller can finish writing the cache to disks. This effectively overcomes the drawback of enabling write back caching.

Another potential drawback for enabled write back caching is a performance hit to the read speed. The reason for this is that there is less cache available for reading (because some is being used for writes). The hit should be pretty minor though, and only applicable when a lot of write operations are in progress. Otherwise, the amount of data in the write back cache will be minimal.

The big advantage of using a write back cache is speed though.  When write back caching is enabled, OS X doesn’t have to wait for data to be written to the disks, and can move on to other operations.  This performance benefit can be substantial, and gives the RAID controller more flexibility to optimize the order of write operations to the disks based on the locations of data being written.  Personally, I enable write back caching.

Wrap-up

That about covers it.  Small desktop RAID systems are a nice way to get a consolidated block of storage with some a little redundancy and a lot more performance than just a stack of disks can provide.  I hope this overview has helped you choose the options that are best for your desktop RAID system. In the end, there is no right answer to the settings everyone should use. Choose the settings that best fit your workload and performance/safety requirements.

Apple’s Rumored 12″ Notebook

The rumors are growing for a new 12 inch MacBook Air.  According to MacRumors, this laptop would be slimmer than the current MacBook Airs, fanless, and come in the same silver/gold/space gray color variations as the iPhone.

Sounds like an clamshell iPad with a keyboard to me.

The new notebook has a much thinner design the appears to sacrifice many of the usual ports seen on Apple’s current notebooks and may adopt the new reversible USB Type C connector that has seen its specifications recently finalized.

The MacBook Air has very few ports to begin with (video, USB, headphone and an SD card slot on the 13″).   If you are sacrificing many of the usual ports, you end up with no ports at all, like the iPad.

Interestingly, the report raises some questions about charging on the notebook, indicating that the usual MagSafe port has been removed in favor of a new, unspecified charging method.

Hmm, like a Lightning cable?  It’s reversible too.

In line with previous rumors, the machine is reportedly fanless, suggesting it will adopt an ultra low-power processor such as the Broadwell-Y Core M processors recently announced by Intel.

The A8 is another ultra low-power processor…

Many people prefer the iPad as a productivity machine.  With a standard keyboard attached, you can definitely get some serious work done.  A 12″ iPad with a permanent keyboard attached sounds like a great little mobile computer.

First Impression of the iPhone 6

I’m one of the 4 million people who pre-ordered a new iPhone 6 this past weekend. It arrived earlier today, and I wanted to share some observations after using it for the first couple of hours.

This is a big upgrade for me. I’m upgrading from an iPhone 4, which feels absolutely ancient. At one point, I’m sure it felt amazingly quick, but not anymore. (I have to remind myself that someday this iPhone 6 is going to feel just as slow.) To give you an example, sometimes my iPhone 4 was so slow that it missed incoming calls because sliding to answer wouldn’t happen before voicemail picked up the call. Needless to say, the new iPhone 6 is crazy quick in comparison.

Like most people, I was torn between ordering the iPhone 6 or the 6+, sight unseen. There is a pretty big size difference between the two, and some functionality is lost by choosing the 6. I made some cardboard cutouts to help make my decision easier. The cutout for the 6+ felt way too big in my pocket, so I decided to go with the more comfortable 6. Now that I’m using it, I’m really glad I didn’t order the 6+. The 6, even as the smaller option, is so much bigger than previous iPhones. This is especially true coming from an iPhone 4. I have space for 2 more rows of app icons on each home screen, which is great.

One-handed operation is pretty tough though. My first instinct when trying to reach the top of the screen with my thumb was to shimmy it down in my hand. Well, that’s a big mistake, because I almost dropped it while doing this. So then I tried using the new action that Apple built-in, to double-tap the home button to shift the screen contents downward. This helps a lot, but it’s going to take some time before I have the muscle-memory to do this without thinking about it. I’ll probably use it two-handed most of the time.

As an app developer, I think we are in a bit of a transition when it comes to choosing the best location to place often-used buttons in the user interface. Up until now, the top navigation bar was a good location to put navigation controls. However, with devices becoming larger, that may no longer be the case. Instead, it might make more sense to have a more prominent toolbar on the bottom of the screen. I know I’ll be spending a lot of time thinking about this over the coming months.

One last note on the size I would like to bring up is with respect to the depth. It’s amazing to physically grasp just how thin the iPhone 6 is as a phone. It’s almost difficult to pick up off a table because there isn’t much depth to hold onto. Once you are holding it though, it feels very solid and comfortable.

Moving on, this morning was the first time I’ve used TouchID. I don’t know how I lived without it. Actually I do: I would avoid the inconvenience of a delayed unlock process by not setting a password on my devices. TouchID makes security easy by reading your fingerprint on the home button to unlock the device, and I can’t wait for more 3rd party apps to make use of it in iOS 8.

Speaking of buttons, the power button is now on the side rather than the top of the device. My first impression of this change isn’t good. More than once I’ve tried to tap that button to turn off the phone, and instead did a combo press with the volume button on the other side. The OS gives the volume button priority (which is probably the best choice) and the device stays on. Taking screenshots using the home/power button combination is more difficult too. Aesthetically, the power button placement is nice (both with respect of having a clean top panel, and also having the side buttons laid out symmetrically), but usability would be greatly improved if the button wasn’t directly across from the volume buttons.

Finally, I was originally going to use the iPhone 6 without a case, but due to a few of my observations above I think I might change my mind. The device will be easier to pick up off a table if it has a little bit more depth, which a case would add. And with the almost-drop due to using it one-handed, I would feel more comfortable if I had some protection if the worst was to happen and I actually did drop it on a concrete floor or other hard surface. I’ve never really dropped a phone in the past, but I’m not sure my luck will hold with this model. The third reason buying a case is a good idea is due to the extended camera lens on the back of the device. When setting the iPhone 6 down on a table, it is resting on the camera lens. That invites the possibility of scratching the glass, which as a photographer I would hate to have happen. I will use it for a few weeks before making a final decision, but I expect I’ll be plunking some money down for a case in the near future.

Overall, the iPhone 6 is an awesome upgrade and I couldn’t be happier right now. It’s just going to get better as HealthKit comes online and Apple Pay starts rolling out to commercial locations next month.

10 Years

Today is the 10th anniversary of Gaucho Software.  I registered the domain gauchosoft.com on April 1, 2004 and after moving to Michigan a couple months later, I started building the website and getting to work on product development.

Since then I’ve developed several apps, writing hundreds of thousands of lines of code and creating hundreds of graphics in the process.  I can’t begin to count how many press releases I’ve sent out.  And I’m proud to say Gaucho Software has participated in a number of fundraising efforts for worthy causes, from supporting the recovery after Hurricane Katrina and the earthquake in Haiti, to raising money to bring clean water to developing countries.

It’s hard to believe it’s been so long.  Thinking back, my first development box was the then-brand-new liquid-cooled 2.5Ghz PowerMac G5.  It was running OS X 10.3 Panther, and Xcode had just come out (previously it was called Project Builder, which I used to develop the first versions of XRG back in 2002).  I suppose this is telling of the time that has passed.

I wanted to thank everyone who has supported Gaucho Software.  Thanks to the companies who have trusted me with their contract work.  A big thanks to everyone who has purchased my apps.  And a very special thanks to my wife, Katrina, and the rest of my family for their endless help and support.

Here’s to the next 10…

Flooding Moby Dick

This weekend, a pretty heavy storm hit the California coast. One city hit particularly hard was Santa Barbara, where two restaurants at different beaches several miles apart were flooded by waves. Luckily, there were only minor injuries. The event caught me by surprise because of the coastal layout of that region.  You see, the Santa Barbara coast in general faces south.  So you don’t get a whole lot of big waves hitting the region.  That makes an event like this especially rare.  Even during the El Nino year of 1997-98, when strong storms battered the coast all winter, we never saw anything quite like this.

The most surprising incident of the two was the Moby Dick restaurant at Sterns Wharf. Here’s a frame from a YouTube video taken by someone in the restaurant as it hit.  Click the image to see the full video on YouTube.

And a news article talking about what happened at (KEYT.com).

The interesting thing about this destruction is where it happened. Sterns Wharf is actually on a beach facing southeast, so for swells coming in from the Pacific along the west to be strong enough to wrap around the coast and strike a beach facing southeast this hard is quite astounding.

Let’s take a look at the swell map from that morning to see what was actually happening. CDIP has a nice view of the swell state that morning:

Swell Map from CDIP

I’ve marked Sterns Wharf on that map. As you can see, the swell was coming from directly west, which is just about the worse possible case. Any northwestern component to a swell would force it to not only wrap around the peninsula in Santa Barbara but also around Point Conception. Any southwestern component to the swell would result in the Channel Islands blocking Santa Barbara from getting hit. A swell coming from exactly west can slot right through to the Santa Barbara area, perhaps even resulting in a higher tide because of the channeling of the water between the coast and the islands off shore.

You may think a westerly swell direction would be normal, but usually the swell in this area of California comes from the northwest.  This is due to the strongest winds of storms like these typically being further north, off the coast of Oregon and Washington.

From the video, it sounds like this event happened at an abnormally high tide of 6 feet (high tides are usually between 3-5 feet), and a 12 foot swell was actually reaching the coast in downtown Santa Barbara. Whenever you have a combined effect of high tide and high swells like this, disaster is sure to follow.

Hopefully Moby Dick can get things cleaned up there before too long. There are definitely a few restaurant patrons who will have a story to tell for quite some time.

« Older posts

© 2016 *Coder Blog

Theme by Anders NorenUp ↑