tag:blogger.com,1999:blog-65549295684411548472024-03-08T04:37:32.756-08:00Blog - StewART WhaleyA Digital Nomad.Stewarthttp://www.blogger.com/profile/16462979654570677707noreply@blogger.comBlogger753125tag:blogger.com,1999:blog-6554929568441154847.post-68630618469974738982018-08-18T08:04:00.002-07:002018-08-18T08:04:44.679-07:00Piece and sadness a story of a couple<div style="color: #1d2129; font-family: Helvetica, Arial, sans-serif; font-size: 14px; margin-bottom: 6px;">
<br /></div>
<div style="color: #1d2129; font-family: Helvetica, Arial, sans-serif; font-size: 14px; margin-bottom: 6px;">
"<i>But today feels like a really big day. I've spent almost seven years—seven years—going to the same place at the same time on the same days of the week. Those seven years have been pretty lovely, and I feel so fortunate to have had what was really a pretty great job. The people were wonderful, the work was service-oriented, the hours were flexible, the salary was good. I got health insurance and paid time off and a whole lot of autonomy. I had some patient bosses who put up w<span class="gmail-text_exposed_show" style="display: inline; font-family: inherit;">ith me taking three-month-long sabbaticals every year, who let me bend the rules just to their breaking point.</span></i></div>
<div class="gmail-text_exposed_show" style="color: #1d2129; display: inline; font-family: Helvetica, Arial, sans-serif; font-size: small;">
<div style="font-family: inherit; font-size: 14px; margin-bottom: 6px;">
<i>I'm grateful for the opportunity, and I'm anxious to turn my back on what was really a good thing. But getting too cozy is dangerous. Inertia is a stealthy predator. I've learned a lot from these seven years, and I enjoyed plenty, but with each passing year I feel I learned a little less. The days have blended into weeks, the weeks into months, the months into years. I've grown tired of meetings, of teleconferences, of timesheets and password changes and Monday morning elevator commiseration. I've grown tired of spending the best hours of my day in front of a glowing rectangle, of coloring the best years of my life in swaths of grey and beige. I've missed too many sunsets while my back was turned. Too many thunderstorms went unwatched, too many gentle breezes unnoticed. There's magic out there, in this great big beautiful world, and I've long since scooped up the last of the scraps to be found in my cubicle.</i></div>
<div style="font-family: inherit; font-size: 14px; margin-bottom: 6px; margin-top: 6px;">
<i>I know there's another way to live. I've dabbled in it. But now it's time to commit. To go all-in. I'm thankful for this privilege. The privilege to commit. The privilege to walk away from a well-paying life of comfort. To charge headlong into indulgence, rough but ultimately temporary. To make this choice. I recognize it's not a choice everyone has. I don't intend to be flippant, ungrateful. I am deeply appreciative.</i></div>
<div style="font-family: inherit; font-size: 14px; margin-bottom: 6px; margin-top: 6px;">
<i>I quit my job today. I'm terrified. I'm thrilled.</i>” -- <a href="http://www.simplycycling.org/blog/2017/6/8/i-quit-my-job-today" style="color: #1155cc;">Jay Austin</a></div>
<div style="font-family: inherit; font-size: 14px; margin-bottom: 6px; margin-top: 6px;">
<br /></div>
<div style="font-family: inherit; margin-bottom: 6px; margin-top: 6px;">
On July-29/2018 he and his friend were killed while bike riding thru Tajikistan by ISIS.</div>
</div>
Stewarthttp://www.blogger.com/profile/16462979654570677707noreply@blogger.com0tag:blogger.com,1999:blog-6554929568441154847.post-60102968910429119312018-05-22T20:18:00.002-07:002018-05-22T20:18:24.000-07:00Wouldn't it be great?<span data-offset-key="2ds43-0-0" style="background-color: white; color: #1d2129; font-family: Helvetica, Arial, sans-serif; font-size: 14px; white-space: pre-wrap;"><span data-text="true" style="font-family: inherit;">Wouldn't it be great to be hugged by a large foreign woman? You can't understand what shes says but she greets you with a hug. At first you are somewhat withdrawn.Tentative at best. But then over the years you squeeze her like she is your best friend. You embraced her like a child with a teddy bear. You are held for just a moment but will remember it for a life time. Wouldn't it be great?</span></span><span blockkey="2ds43" class="_3gl1 _5zz4" contentstate="k { "entityMap": [object Object], "blockMap": OrderedMap { "2ds43": a { "key": "2ds43", "type": "unstyled", "text": "Wouldn't it be great to be hugged by a large foreign woman? You can't understand what shes says but she greets you with a hug. At first you are somewhat withdrawn.Tentative at best. But then over the years you squeeze her like she is your best friend. You embraced her like a child with a teddy bear. You are held for just a moment but will remember it for a life time. Wouldn't it be great?😔", "characterList": List [ j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null }, j { "style": OrderedSet {}, "entity": null } ], "depth": 0, "data": Map {} } }, "selectionBefore": h { "anchorKey": "2ds43", "anchorOffset": 0, "focusKey": "2ds43", "focusOffset": 0, "isBackward": false, "hasFocus": false }, "selectionAfter": h { "anchorKey": "2ds43", "anchorOffset": 0, "focusKey": "2ds43", "focusOffset": 0, "isBackward": false, "hasFocus": false } }" data-offset-key="2ds43-1-0" decoratedtext="😔" end="393" offsetkey="2ds43-1-0" size="16" start="391" style="background-color: white; background-image: url("https://www.facebook.com/images/emoji.php/v9/f71/1/16/1f614.png"); background-position: center center; background-repeat: no-repeat; background-size: 16px 16px; caret-color: rgb(0, 0, 0); color: #1d2129; display: inline-block; font-family: Helvetica, Arial, sans-serif; font-size: 14px; height: 16px; margin: 0px 1px; text-align: center; vertical-align: middle; white-space: pre-wrap; width: 16px;"><span class="_ncl" style="display: inline-block; font-family: inherit; opacity: 0; transform: translateY(-3px);">😔</span></span>Stewarthttp://www.blogger.com/profile/16462979654570677707noreply@blogger.com0tag:blogger.com,1999:blog-6554929568441154847.post-78120173040316182272018-05-18T15:25:00.001-07:002018-05-18T15:25:35.887-07:00Spotify: 3 month Trial for 0.99<a data-link="dealDetail:Description Link" data-outclick-typeofoutclick="Frontpage Deal Post" data-product-exitwebsite="spotify.com" data-product-forum="Hot Deals" data-product-products="11602063" href="http://bit.ly/spotify3months99cents" rel="nofollow" style="background: rgb(255, 255, 255); box-sizing: border-box; color: #0072bc; font-family: "Open Sans", Arial, sans-serif; font-size: 14px; font-weight: 600; outline: 0px;" target="_blank">Spotify.com</a><span style="background-color: white; color: #333333; font-family: "Open Sans", Arial, sans-serif; font-size: 13px;"> is offering an </span><b style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Open Sans", Arial, sans-serif; font-size: 13px;">Introductory Trial Promotion</b><span style="background-color: white; color: #333333; font-family: "Open Sans", Arial, sans-serif; font-size: 13px;">: </span><b style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Open Sans", Arial, sans-serif; font-size: 13px;">Get 3-Months of Spotify Premium</b><span style="background-color: white; color: #333333; font-family: "Open Sans", Arial, sans-serif; font-size: 13px;">for </span><b style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Open Sans", Arial, sans-serif; font-size: 13px;">$0.99</b><span style="background-color: white; color: #333333; font-family: "Open Sans", Arial, sans-serif; font-size: 13px;">. If you have subscribed to the Premium or Unlimited service or have taken a 30-day free trial offer or 60-day free trial offer previously, you are ineligible for this introductory trial offer. This is a trial and </span><b style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Open Sans", Arial, sans-serif; font-size: 13px;">after your first 3 months</b><span style="background-color: white; color: #333333; font-family: "Open Sans", Arial, sans-serif; font-size: 13px;">, you will be </span><b style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Open Sans", Arial, sans-serif; font-size: 13px;">charged full price</b><span style="background-color: white; color: #333333; font-family: "Open Sans", Arial, sans-serif; font-size: 13px;"> unless you </span>cancel.<br />
<br />
<br />Stewarthttp://www.blogger.com/profile/16462979654570677707noreply@blogger.com0tag:blogger.com,1999:blog-6554929568441154847.post-28637656901538710822018-01-07T12:30:00.001-08:002018-01-07T12:32:29.897-08:00SQL: Finding an assistant using a recursive CTEWas looking for SQL that would allow me to find an Employee's assistant. It requires a somewhat recursive function:<br />
<br />
create table EMPLOYEES<br />
(EmpID int unique Not null,<br />
Name varchar(10),<br />
AssistantID int,<br />
Primary key(EmpID));<br />
<br />
insert into EMPLOYEES values (1,'Bob', NULL);<br />
insert into EMPLOYEES values (2,'Susan', 3);<br />
insert into EMPLOYEES values (3,'John', 4);<br />
insert into EMPLOYEES values (4,'Mary', 6);<br />
insert into EMPLOYEES values (5,'Bill', NULL);<br />
insert into EMPLOYEES values (6,'Fred', NULL);<br />
insert into EMPLOYEES values (7,'Anderson', 1);<br />
insert into EMPLOYEES values (8,'Gill', 9);<br />
--insert into EMPLOYEES values (9,'Jerry', 8);<br />
<br />
I wanted to for example find Mary's assistant (e:g Fred). There's a recursive case where to find Susan's assistant we go: Susan -> John -> Mary -> Fred. I also want Bob's assistant which is himself.<br />
Here's one solution:<br />
<br />
WITH RCTE AS<br />
(<br />
SELECT * , EmpID AS TopEmp<br />
FROM EMPLOYEES c<br />
<br />
UNION ALL<br />
SELECT c.* , r.TopEmp<br />
FROM dbo.EMPLOYEES c<br />
INNER JOIN RCTE r ON c.EmpID = r.AssistantID<br />
)<br />
select EmployeeName,Assistant from<br />
(<br />
SELECT<br />
e.EmpID AS EmployeeId,<br />
e.Name AS EmployeeName,<br />
r.Name AS Assistant,<br />
r.EmpID AS AssistantId<br />
FROM RCTE r<br />
inner join EMPLOYEES e ON r.TopEmp = e.EmpID<br />
where r.AssistantID is null<br />
) Records<br />
<br />
<a href="http://sqlfiddle.com/#!6/e7cd5/4/0">Result</a>:<br />
<br />
<pre class="results" style="background-color: whitesmoke; border-radius: 4px; border: 1px solid rgba(0, 0, 0, 0.15); color: #333333; font-size: 10pt; line-height: 20px; margin-bottom: 10px; padding: 9.5px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">| EmployeeName | Assistant |
|--------------|-----------|
| Bob | Bob |
| Bill | Bill |
| Fred | Fred |
| Anderson | Bob |
| Mary | Fred |
| John | Fred |
| Susan | Fred |</pre>
Stewarthttp://www.blogger.com/profile/16462979654570677707noreply@blogger.com0tag:blogger.com,1999:blog-6554929568441154847.post-70834812079871884862016-12-13T14:52:00.001-08:002016-12-13T14:52:52.080-08:00Article: Meet John Knoll, the Creative Genius Who Brought Rogue One to LifeMeet John Knoll, the Creative Genius Who Brought Rogue One to Life<br /><br />In
one corner of John Knoll’s office at Lucasfilm stand three racks of
imposing black computer servers. The sleek 6-foot-tall towers, complete
with mechanical switches and fans, flash blue LEDs. Each bears the
insignia of the Galactic Empire from Star Wars and a name—Death Star
748, Death Star 749. Imperial computers, these are.<br /><br />As impressive
and menacing as the machines appear, they aren’t real. They’re just
faceplates wired with Arduino controllers to make the lights blink and
flutter like actual computers. They are, in other words, visual
effects—and a look into the mind of Knoll, the 54-year-old chief
creative officer of Industrial Light & Magic, Lucasfilm’s famed VFX
arm.<br /><br />A museum’s worth of movie props and models decorate
Lucasfilm’s labyrinthine halls—the flotsam of Star Wars, Star Trek, E.T.
… a half century of iconic cinema. But Knoll’s servers (or, rather,
faceplates) aren’t from a movie. They’re what made the movies. They come
from the machines that spent roughly 13,000 hours rendering digital
effects for the three Star Wars prequels, on which Knoll was a lead
effects supervisor. The march of Moore’s law turned the server farm that
created those movies into scrap. Or, for Knoll, a project.<br /><br />“It took a few weeks,” Knoll says, shrugging. “I play around with a lot of different things.”<br /><br /><br />Sure,
Knoll has the demeanor, appearance, and excitable gee-whizziness of a
STEM-obsessed, garage-full-of-half-built-projects dad. But unlike most
of those dads, when Knoll takes on a hobby, he gets so good at it that
he sometimes changes entire industries.<br /><br />Like the time Knoll got
interested in using computers to edit pictures. He and his brother ended
up creating Photoshop—maybe you’ve heard of it? Or when he started
tinkering with commercial computer software and incidentally reinvented
how moviemakers use it to generate images for film. Or when he got so
good at making Star Wars movies that he—well, that brings us to his most
recent hobby.<br /><br />In a darkened conference room outfitted with a big
flatscreen monitor and speakers, a team of effects specialists is
sitting at the center table. One starts typing into a keyboard, pulling
up movie scenes. In the first, a tight grouping of TIE fighters chases
an X-wing as it skims the surface of a Star Destroyer—familiar players
in the Star Wars spaceship armada. The shot is part of an epic battle
between the Empire and the Rebel Alliance that’s a key sequence in Rogue
One, the newest entry in the Star Wars universe. It’s a prequel again.
Knoll is running VFX again. And more.<br /><br />The X-wing pulls up as it
approaches the battle cruiser’s conning tower. “So are we going to have
him blow up that dome on his way over?” asks Vick Schutz, the CG
supervisor, pointing to one of the Epcot-looking polyhedrons that for
reasons no one in the room is quite sure of sit atop all Star
Destroyers.<br /><br />Rogue One, the first of the non-“saga” Star Wars
films (which is to say, it doesn’t focus on Luke Skywalker’s bloodline),
comes out on December 16. Knoll is not just supervising the 1,600-plus
effects shots. He is also responsible for the movie’s existence. In his
free time, Knoll came up with the plot.<br /><br />“People are usually good
from a technical side or a creative side, but not both,” says Gareth
Edwards, the movie’s director. “John Knoll is definitely a filmmaker.”
Edwards should know; before he became a director, he spent years doing
visual effects. “When it comes to Star Wars, some people get excited
about meeting Harrison Ford,” Edwards says. “For me, it was John Knoll.”<br /><br />When
he was a kid, Knoll built models—World War II fighters, spaceships, and
vehicles of his own invention. And like most kids building models in
the 1970s, he bit hard on the effects in the original Star Wars.
Suddenly, model builders (model builders!) were moviemaking heroes, and
Knoll obsessed over articles on their work in American Cinematographer
and Cinefantastique. But then he did something most kids wouldn’t do.<br /><br /><br />In
1978, Knoll’s dad, Glenn Knoll, a nuclear engineer at the University of
Michigan, was scheduled to speak at a conference in Anaheim,
California, and he took John and his other two sons along. Thrilled to
be near Hollywood, John checked the hotel-room phone book to see if it
had a listing for Industrial Light & Magic. There it was. A minute
later John was actually talking to Grant McCune, the head of ILM’s model
shop. In as professional a voice as he could muster, John explained
that he was a model maker and talked his way into a tour. McCune
realized he had been talking to a 15-year-old only when John’s dad
dropped him off at ILM in Van Nuys the next morning.<br /><br />Knoll ended
up hanging out for the entire day, watching the team construct models
and choreograph the camerawork for the original Battlestar Galactica TV
show. It was the first time he’d ever seen people—average people, people
like him—designing special effects for a living.<br /><br />Knoll went back
to LA for film school at USC, the alma mater of George Lucas and Robert
Zemeckis, and while still a student started showing his portfolio
around Hollywood. One of his first gigs was for Greg Jein, who built the
miniatures for Close Encounters of the Third Kind and Star Trek: The
Motion Picture. “I was impressed by the fact that he could cut and draw a
straight line,” Jein says, “not something all model makers can do with
complete accuracy.” Freelancing for Jein, Knoll built things like
alien-spaceship landing gear for the TV miniseries V.<br /><br />By the
time he graduated in 1984, Knoll was finding steady work. Which was its
own kind of problem. “As soon as you take your hobby and make it into
your profession, it sort of kills it as a hobby,” he says.<br /><br />But
his Star Wars obsession came through for him again. Knoll remembered
reading about the computer-controlled camera that visual effects pioneer
John Dykstra invented for the first movie in ILM’s early days. The
“Dykstraflex” shot precise, repeatable sequences that helped make
miniatures look real and allowed effects makers to composite multiple
shots—critical for creating convincing space battles.<br /><br />Knoll decided to build his own.<br /><br />He
took a three-year-old Apple II computer and connected it to a
controller for a milling machine that could drive four stepper motors.
Then he attached an adjustable camera stand. It was cheap and it worked:
Knoll used the camera to create a two-minute cartoon that became his
senior thesis.<br /><br />It also landed him his dream job: A year later
ILM—the company Knoll had cold-called as a kid—hired him to work in its
camera department, moving him to the company’s new offices in the San
Francisco Bay Area. “My very first day, I was working on the original
Dykstraflex camera,” Knoll says. “Even being next to it was a thrill.”<br /><br />Once
again Knoll’s hobby had become his profession. But that meant he needed
something else to do with his free time. So he started coding.<br /><br /><br />Knoll
calls the photo “Jennifer in Paradise.” It shows his then-girlfriend
(now wife) on a beach in Bora Bora, facing away from the camera, her
hair draped over one shoulder. She looks off at an island in the
distance. The picture is a historic artifact in the annals of
photography and software: It’s the first color image ever Photoshopped.<br /><br />In
1986, Knoll, still just a camera operator, asked for a tour of ILM’s
fledgling computer graphics group and the machine it had built: the
Pixar. Inspired by the device’s ability to digitally manipulate large
images, Knoll went home and started trying to write his own graphics
programs on his Mac. “I wrote a little ray tracer and some processing
code,” he says. You know, for fun.<br /><br />By coincidence, Knoll’s
brother Tom was working on the same thing. For his PhD in computer
vision at the University of Michigan, Tom was writing software that
could do things like adjust the brightness of a digital image or detect
the edge of an object in a photo. After a visit, John took a copy of
Tom’s software home and started playing with it. In a few weeks, John
was pretty sure they were onto something.<br /><br />“We should sell this,”
he eventually said. “Are you crazy?” Tom responded. “Do you have any
idea how much work writing a commercial application is?” Tom started
writing one anyway.<br /><br />Still young and unmarried, Knoll was on the
night crew at ILM, working from 7 pm to 5 am. That meant he had his days
free to shop their hobby project to software companies. While visiting
Apple, Knoll asked to borrow a flatbed scanner, which he used to upload a
photograph of Jennifer.<br /><br />In front of techies up and down Silicon
Valley, Knoll cloned an onscreen Jennifer, then cloned her again. He
created a new island in the background, shrouded in mist. It was
astonishing. Finally Adobe, maker of the application Illustrator and the
printer language PostScript, signed up to license and distribute the
software. After trying and failing for months to come up with a good
name, they defaulted to simply calling it Photoshop.<br /><br /><br />Around
this time, partially because of his work on the program, Knoll got his
first chance to work in computer graphics for a movie—James Cameron’s
The Abyss.<br /><br />The biggest CG project ILM had done up to that point
was a knight made of stained glass in Young Sherlock Holmes. It was
roughly six shots. “This was like 16 shots,” says famed visual effects
supervisor Dennis Muren. “Jim didn’t know if it was going to work.”
Knoll had a reputation for problem-solving; Muren asked him to look into
The Abyss.<br /><br />The CG scenes centered on what the team called the
pseudopod: a liquescent, tentacle-like creature that could morph its
surface into faces. “We were in new territory,” Cameron says. “But John
was unflappable.”<br /><br />Knoll figured he’d better cover all the
angles—literally. He brought a still camera to the set and captured the
scene from every possible light and camera location. “For reflections, I
needed to photograph the whole environment all the way around,” Knoll
says. Almost by accident, he had invented a fundamental approach to
compositing. “Now it’s become standard practice to have still cameras
photograph the environments of every setup we do.” Knoll pasted the
photos together using Photoshop.<br /><br />“We managed to get it done on time and on budget,” Muren says. “And it looked really good.”<br /><br />Meanwhile,
Photoshop took off. By version 3, Adobe decided it needed to own the
software. “So they made us a really good offer and just bought us,”
Knoll says. Tom went to work for Adobe, which now has more than 10
million Photoshop users. John stayed at ILM.<br /><br />“In high school and
college, I’d set a bunch of goals for myself,” Knoll says. “I wanted to
be the lead effects supervisor on one of these really big, innovative
visual effects productions, something on the scale of a Star Wars movie.
And I wanted to work on a project that wins the Academy Award for best
visual effects.”<br /><br />That is what moviemakers call foreshadowing.<br /><br /><br />In
1995, George Lucas announced that he wanted to clean up and rerelease
the Star Wars trilogy. Originally he just wanted to create new
prints—the negatives were in terrible shape. But while cleaning and
digitizing them … why not polish up some of the effects?<br /><br />The
project, which would become known as the Special Editions, happened to
line up with Knoll’s latest hobby: over-the-counter graphics software.
Knoll knew something the rest of ILM didn’t. He could replicate—even
improve—many of the effects, cheaply and easily, on his Mac.<br /><br />Knoll’s
engineer mindset and DIY attitude can seem more attuned to Star Trek
than the more fantastical mysticism of Star Wars. (Ask him about this
and all he’ll say is, “Well, I came from a family of scientists and
engineers …”) And as it happened, while working on the Star Trek: The
Next Generation TV show, Knoll was the one who had figured out how to
take the starship Enterprise to warp speed. He used a classic technique
called slit-scan, filming models of the Enterprise with a moving camera
and long exposure through a partially blocked lens. The result: The
Enterprise appears to stretch and then snap! Boldly going.<br /><br />In
1993, Paramount Pictures started making the first TNG movie,
Generations. ILM did the effects; Knoll was the supervisor. He asked the
computer graphics department what it would cost to create a better warp
effect. “The numbers that I got back were so high I didn’t think I
could even turn them in to Paramount,” Knoll says. “So I decided, all
right, I’m going to do this myself.”<br /><br />He went home and sat down in front of his Mac. Five weeks later, the shot was done. Snap!<br /><br />That’s
why, two years later, when ILM started working on the Star Wars Special
Editions, Knoll asked Tom Kennedy, a VFX producer on the project, if he
could try the same thing—rebuilding the space-battle scenes with
off-the-shelf software. Kennedy was skeptical. He set up a bake-off,
Knoll versus the entire ILM computer graphics department: They would
work on similar shots of X-wings and compare the results.<br /><br />Four days later, Knoll was done.<br /><br />“This
was in addition to John’s day job,” says Kennedy, who left ILM in 1999.
“I had this mental image of him at home with his children hanging off
him competing with an entire CG team.”<br /><br />After a month, the
computer graphics department still hadn’t finished. Kennedy pulled the
plug. “John took on as many of those battle shots as George wanted him
to do.”<br /><br /><br />Star Wars fans still fret about the Special Editions.
The space battles are better, but changes like the shock wave rings in
the explosions of Alderaan and the Death Star? Pass. (Oh—spoiler alert.)<br /><br />Lucas
thought the revisions looked great, though. So when he came up with his
next big movie, he called Muren—and Knoll. In 1996 they drove to Lucas’
Marin County retreat, Skywalker Ranch, to see 3,600 storyboard panels
laying out Star Wars: Episode I—The Phantom Menace. “Every couple of
boards there was something we’d never done before,” Knoll says. There
were shots with hundreds of CG objects onscreen at one time (the most
ILM had attempted was 16), shots that would require the graphics team to
simulate soft, believable cloth, shots that would require them to build
rigid robots that would blow apart convincingly.<br /><br /><br />It wasn’t
just that Knoll’s team would have to invent new software—it was the
sheer volume of effects they would have to create. Most blockbusters at
the time had something on the order of 360 effects shots. Phantom Menace
needed more than 2,000. And Lucas wanted to make three prequels.
“George’s attitude was just: You’ll figure it out,” Knoll says.<br /><br />He
was now officially a visual effects supervisor on something as big and
ambitious as the original Star Wars. “It was five times bigger than the
biggest show I’d ever been involved in,” Knoll says. “What I kept
telling myself was ‘This has gotta be how the guys on the original Star
Wars films felt.’”<br /><br />While many people in the company were
panicking over the scope of the project, Knoll calmly laid out a plan
that involved ramping up full-scale effects production for 18 months
instead of the typical two. “They would listen to that speech and then
go, ‘OK, sounds reasonable.’ And they would leave, and I’d go, ‘Whew, I
hope that works!’”<br /><br />That can-do attitude was typical. “I have
never heard John say ‘No, that can’t be done,’” says producer Jon
Landau, who worked with Knoll on Avatar. “John takes on a challenge and
finds a way to solve that challenge.”<br /><br />And solve it, he did.
Inside ILM the prequels were recognized as a heroic feat—something that
fundamentally changed what the company felt it was capable of. The
project also managed to get Knoll close to his other goal. Phantom
Menace and Attack of the Clones were both nominated for VFX Academy
Awards. (Knoll finally won, two years later, with Pirates of the
Caribbean: Dead Man’s Chest.)<br /><br />In 2012, Disney bought Lucasfilm,
ILM, and Skywalker Sound from Lucas for $4 billion. The company then
announced that Lucasfilm would begin a slate of new Star Wars movies.<br /><br />Knoll
had, over the years, daydreamed his own fan fiction. And early word on
the plots of the new movies didn’t impress him. “The first couple were
kind of backstory,” Knoll says. “How Han and Chewie got to be the
characters that we know in Episode IV. And I thought, ‘Yeah, but what I
really want to see is more of an action-adventure story—something that
has some of the Star Wars themes, maybe it touches on things that we
know, but it’s all-new characters.’”<br /><br />Like what? Knoll kept coming back to this:<br /><br />It is a period of civil war.<br />Rebel spaceships, striking<br />from a hidden base, have won<br />their first victory against<br />the evil Galactic Empire.<br /><br />During the battle, Rebel<br />spies managed to steal secret<br />plans to the Empire’s<br />ultimate weapon, the DEATH<br />STAR, an armored space<br />station with enough power to<br />destroy an entire planet.<br /><br />You
recognize it—it’s the Opening Crawl, the setup kicking off Star Wars
(OK, OK, A New Hope). Knoll wondered, who were these spies? We don’t
hear anything more about them. Maybe they were a SEAL Team 6 in the Star
Wars universe on a Mission: Impossible–style caper. That’s a movie
Knoll would like to see.<br /><br />He couldn’t let it go. For weeks he
buttonholed friends in ILM’s spaceship-and-monster-filled hallways with
the words “Picture this …” In the company’s cafeteria at lunch, he’d
refine the story, live. People loved it. “It would get a little more
elaborate in each telling,” Knoll says. “We have this annual trivia
night, where we raise money for charity. And I sat down at one of these
tables with a bunch of friends of mine, and we had about a half hour
before the thing was going to begin, and somebody said, ‘Hey, tell me
your Star Wars idea.’ So I did like a half-hour version of it.”<br /><br />The response? Pitch this to Kathy.<br /><br /><br />Kathleen
Kennedy had become president of Lucasfilm when Disney took over. She’d
known Knoll for decades. Like everyone, Kennedy had first heard about
Knoll as the coinventor of Photoshop. But then, on a company retreat,
she was on a Trivial Pursuit team with him. “There’s something about
John’s ability to retain detailed and complex information that is really
on a genius scale,” she says.<br /><br />Still, when Knoll came to pitch a
movie, Kennedy felt trepidation. “Is everyone at the company going to
come at me with Star Wars movies?” she thought.<br /><br />But she listened.
And she liked what she heard. “You hear a lot of pitches, and they are
pretty convoluted,” Kennedy says. “When you hear something that at its
core is a simple but big idea—that is really rare.” Green light.<br /><br />Back
in the dark conference room at ILM, Knoll’s effects gang still has to
decide whether to blow up those troublesome polyhedrons. Rogue One will
be in theaters in a little over nine weeks. All Knoll’s team wants is
for the boss to look at a shot and say the magic word: final. Then they
can move on.<br /><br />“So the reference from Jedi is, it’s just a giant
fireball,” says Hal Hickel, the animation supervisor. “There’s nothing
even in it.”<br /><br />“Like it’s made of gasoline?” Knoll asks.<br /><br />“Maybe it feeds into the generator that runs the shield,” someone else jokes.<br /><br />Scripts often don’t answer issues like this, offering little more than an elaborate version of “spaceships fight.”<br /><br />“Storywise,
the battle wants to be broken up into seven or eight beats,” Knoll
says. One of the beats is that the Rebels have to annihilate two Star
Destroyers. It’s up to Knoll and ILM to figure out how.<br /><br /><br />So … explode the polyhedron? “Fine with me,” Knoll says. Half the room groans. The shot had been close to complete. Not anymore.<br /><br />Knoll’s
job also requires painful, almost microscopic scrutiny. At one point he
reviews a Star Destroyer torn in half in battle—the reflections, the
textures, the realism of the bent metal. The model maker is working from
the book Incredible Cross-Sections of Star Wars: The Ultimate Guide to
Star Wars Vehicles and Spacecraft to make sure that what an audience
sees inside the ship matches what’s known about Star Destroyers. No one
wants to be the subject of a subreddit dedicated to power converters and
the jerks who put them in the wrong place.<br /><br />And it’s not just
space battles. In one scene Jyn Erso, the Rebel hero played by Felicity
Jones, has a conversation with Rebel captain Cassian Andor, played by
Diego Luna. They’re on an alien planet, and Knoll spots a problem. “I’m
detecting a little too much magenta on his face.” You might not have
seen it, but it could have made the world seem less visceral, less real.<br /><br />They
watch every shot over and over. Knoll sends most of them back for
revisions—some minor, some substantial. Everyone is slumping in their
chairs. They just want a final.<br /><br />Next up: a sequence of two Star
Destroyers about to collide, part of the beat that ILM had to solve. The
shot is impressive—the immensity of the cruisers overwhelming, the
cinematography stunning. Knoll smiles.<br /><br />“Final,” he says. The room cheers.<br /><br />Then a scene of a droid walking down a hall.<br /><br />“Final.” Another cheer. They’re getting there.<br /><br />Rogue One is almost done. And John Knoll needs a new hobby.<br />
<br />
-- https://www.wired.com/2016/11/john-knoll-rogue-one-star-wars/<br />Stewarthttp://www.blogger.com/profile/16462979654570677707noreply@blogger.com0tag:blogger.com,1999:blog-6554929568441154847.post-54734186332134660352015-05-30T14:43:00.001-07:002015-05-30T14:43:38.962-07:00Sale: XBox Live - $59.99 -> $44.99<a href="http://accessories.dell.com/sna/products/XBOX/productdetail.aspx?c=ca&l=en&s=dhs&cs=cadhs1&sku=A8044544" target="_blank">XBox Live sale: $59.99 -> $44.99</a>Stewarthttp://www.blogger.com/profile/16462979654570677707noreply@blogger.com0tag:blogger.com,1999:blog-6554929568441154847.post-36814820455667850232015-01-24T10:28:00.004-08:002015-01-24T10:28:59.574-08:00Success: Simon RichGreat to see <a href="http://splitsider.com/2015/01/from-books-to-snl-to-pixar-to-a-sitcom-with-simon-rich/" target="_blank">success: with Simon Rich</a><br />
<br />Stewarthttp://www.blogger.com/profile/16462979654570677707noreply@blogger.com0tag:blogger.com,1999:blog-6554929568441154847.post-44889581905865449872015-01-19T11:41:00.000-08:002015-05-19T12:28:54.666-07:00News: Ontario 01/19/2015<a href="http://news.nationalpost.com/2015/01/19/parents-billed-24-for-a-no-show-fee-after-5-year-old-son-misses-birthday-party/" target="_blank">Five year old wants to go see his Grandparents but it's going to cost $29</a>. Perhaps he should <a href="http://news.nationalpost.com/2015/01/19/claire-cameron-the-answer-to-why-target-is-closing-lies-in-the-question-where-do-you-buy-a-broom/" target="_blank">Target</a> <a href="http://news.nationalpost.com/2015/01/19/public-opinion-finally-turns-on-the-beer-store-as-lobbyists-influence-on-queens-park-exposed/" target="_blank">local beer brewers who can't compete against the Beer store</a> in Ontario. But that doesn't matter because <a href="http://news.nationalpost.com/2015/01/19/billy-crystal-thinks-gay-scenes-on-tv-are-pushing-it-too-far-and-hopes-shows-dont-shove-it-in-our-face/" target="_blank">Billy Crystal thinks gays go too far</a>. And if you're dating a gay person perhaps the <a href="http://news.nationalpost.com/2015/01/18/ontario-court-throws-out-20m-suit-alleging-ashley-madison-employee-injured-typing-up-1000-fake-profiles/" target="_blank">online profiles were simply made up as Ashley Madison</a> had employees make fake profiles. After you get some dating <a href="http://news.nationalpost.com/2015/01/19/infected-and-undocumented-thousands-of-canadians-dying-from-hospital-acquired-bugs/" target="_blank">disease don't go to the hospital</a> because you might get a flesh eating disease. ;-)Stewarthttp://www.blogger.com/profile/16462979654570677707noreply@blogger.com0tag:blogger.com,1999:blog-6554929568441154847.post-81792491517744326292014-12-26T17:23:00.000-08:002014-12-26T17:23:24.957-08:00Basic Comparison of C# and Apple Swift Programming Language Syntax<div class="PostBody text">
Recently, Apple announced and released a beta version of the new <a href="https://developer.apple.com/swift/">Swift programming language</a>
for building iOS and OSX applications. Swift is a modern language with
the power of Objective-C without the "baggage of C." While we can't
argue that Objective-C has it's difficulties being tied closely to C,
but the real question is... How does Swift compare to a modern language
like C#?<br />
Please, keep in mind that this post is not supposed to be an Apple vs
Microsoft post. There are a lot of developers that use C# every day and
the purpose of this post is to help them understand what Swift offers
at a language level compared to C#. And, before you start the "apples
and oranges" arguments, it's worth pointing out that using <a href="http://xamarin.com/">Xamarin </a>you can develop iOS and OSX apps using C#.<br />
Now let the code mostly speak for itself...<br />
<h3>
Code Comments</h3>
Both languages support the same syntax for code comments; the familiar C-style comments.<br />
<div>
<div class="syntaxhighlighter c-sharp" id="highlighter_899465">
<table border="0" cellpadding="0" cellspacing="0"><tbody>
<tr><td class="gutter"><div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
</td><td class="code"><div class="container">
<div class="line number1 index0 alt2">
<code class="c-sharp comments">// code comment</code></div>
<div class="line number2 index1 alt1">
</div>
<div class="line number3 index2 alt2">
<code class="c-sharp comments">/* multi line</code></div>
<div class="line number4 index3 alt1">
<code class="c-sharp comments">code comment */</code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
<h3>
Declaring Constants and Variables</h3>
Swift, like C#, is a type safe language. It also supports type
inference so you don't have to specify the type when declaring the
variables as the compiler can infer (or detect) the type by evaluating
the assignment of the variable. While C# is slightly more verbose when
declaring constants; both languages are just as elegant at declaring
variables using type inference.<br />
<div>
<div class="syntaxhighlighter c-sharp" id="highlighter_247896">
<table border="0" cellpadding="0" cellspacing="0"><tbody>
<tr><td class="gutter"><div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
</td><td class="code"><div class="container">
<div class="line number1 index0 alt2">
<code class="c-sharp comments">// Declare Constant</code></div>
<div class="line number2 index1 alt1">
<code class="c-sharp comments">// C#</code></div>
<div class="line number3 index2 alt2">
<code class="c-sharp keyword">const</code> <code class="c-sharp keyword">int</code> <code class="c-sharp plain">legalAge = 18;</code></div>
<div class="line number4 index3 alt1">
</div>
<div class="line number5 index4 alt2">
<code class="c-sharp comments">// Swift</code></div>
<div class="line number6 index5 alt1">
<code class="c-sharp keyword">let</code> <code class="c-sharp plain">legalAge = 18</code></div>
<div class="line number7 index6 alt2">
</div>
<div class="line number8 index7 alt1">
<code class="c-sharp comments">// Declare Variable</code></div>
<div class="line number9 index8 alt2">
<code class="c-sharp comments">// C#</code></div>
<div class="line number10 index9 alt1">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">legalAge = 18;</code></div>
<div class="line number11 index10 alt2">
</div>
<div class="line number12 index11 alt1">
<code class="c-sharp comments">// Swift</code></div>
<div class="line number13 index12 alt2">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">legalAge = 18</code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
While type inference is nice, but when you don't immediately assign a
value to the variable you may need to explicitly specify the type of
the variable.<br />
<div>
<div class="syntaxhighlighter c-sharp" id="highlighter_357867">
<table border="0" cellpadding="0" cellspacing="0"><tbody>
<tr><td class="gutter"><div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
</td><td class="code"><div class="container">
<div class="line number1 index0 alt2">
<code class="c-sharp comments">// Type Annotation</code></div>
<div class="line number2 index1 alt1">
<code class="c-sharp comments">//C#</code></div>
<div class="line number3 index2 alt2">
<code class="c-sharp keyword">string</code> <code class="c-sharp plain">firstName;</code></div>
<div class="line number4 index3 alt1">
</div>
<div class="line number5 index4 alt2">
<code class="c-sharp comments">// Swift</code></div>
<div class="line number6 index5 alt1">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">firstName: String</code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
You may notice the lack of the semi-colon in Swift. Yes, Swift is a
mostly C-style syntax without requiring semi-colons. Swift does support
and require the use of semi-colons if you want to have multiple code
statements on the same line.<br />
<h3>
Variable Names and Unicode</h3>
Both languages support the use of Unicode characters as variable
names. Basically, you could use Emoticons or other non-ASCII characters
as variable names if you want, but who does that anyway?<br />
<h3>
Integer Bounds</h3>
Both languages have static constants for accessing the minimum and maximum bounds for the different Integer types.<br />
<div>
<div class="syntaxhighlighter c-sharp" id="highlighter_442933">
<table border="0" cellpadding="0" cellspacing="0"><tbody>
<tr><td class="gutter"><div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
</td><td class="code"><div class="container">
<div class="line number1 index0 alt2">
<code class="c-sharp comments">// Integer Bounds</code></div>
<div class="line number2 index1 alt1">
<code class="c-sharp comments">// C#</code></div>
<div class="line number3 index2 alt2">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">a = Int32.MinValue;</code></div>
<div class="line number4 index3 alt1">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">b = Int32.MaxValue;</code></div>
<div class="line number5 index4 alt2">
</div>
<div class="line number6 index5 alt1">
<code class="c-sharp comments">// Swift</code></div>
<div class="line number7 index6 alt2">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">a = Int32.min</code></div>
<div class="line number8 index7 alt1">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">b = Int32.max</code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
<h3>
Type Inference</h3>
Both languages, as mentioned above, support type inference where the
compiler is able to detect what type the declared variable is from it's
immediate assignment.<br />
<div>
<div class="syntaxhighlighter c-sharp" id="highlighter_778987">
<table border="0" cellpadding="0" cellspacing="0"><tbody>
<tr><td class="gutter"><div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
</td><td class="code"><div class="container">
<div class="line number1 index0 alt2">
<code class="c-sharp comments">// Type Inference</code></div>
<div class="line number2 index1 alt1">
<code class="c-sharp comments">// C#</code></div>
<div class="line number3 index2 alt2">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">a = 3; </code><code class="c-sharp comments">// integer</code></div>
<div class="line number4 index3 alt1">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">b = 0.14 </code><code class="c-sharp comments">// double</code></div>
<div class="line number5 index4 alt2">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">c = a + b; </code><code class="c-sharp comments">// double</code></div>
<div class="line number6 index5 alt1">
</div>
<div class="line number7 index6 alt2">
<code class="c-sharp comments">// Swift</code></div>
<div class="line number8 index7 alt1">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">a = 3 </code><code class="c-sharp comments">// integer</code></div>
<div class="line number9 index8 alt2">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">b = 0.14 </code><code class="c-sharp comments">// double</code></div>
<div class="line number10 index9 alt1">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">c = a + b </code><code class="c-sharp comments">// double</code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
Also in the above type inference example you'll notice that when you
declare a variable and immediately assign a value that is the result of 2
other variables it will still infer the type.<br />
<h3>
String Comparison</h3>
Both have similar methods of comparing strings.<br />
<div>
<div class="syntaxhighlighter c-sharp" id="highlighter_946370">
<table border="0" cellpadding="0" cellspacing="0"><tbody>
<tr><td class="gutter"><div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
</td><td class="code"><div class="container">
<div class="line number1 index0 alt2">
<code class="c-sharp comments">// String Comparison</code></div>
<div class="line number2 index1 alt1">
<code class="c-sharp comments">// C#</code></div>
<div class="line number3 index2 alt2">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">a = </code><code class="c-sharp string">"One"</code><code class="c-sharp plain">;</code></div>
<div class="line number4 index3 alt1">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">b = </code><code class="c-sharp string">"One"</code><code class="c-sharp plain">;</code></div>
<div class="line number5 index4 alt2">
<code class="c-sharp keyword">if</code> <code class="c-sharp plain">(a == b) {</code></div>
<div class="line number6 index5 alt1">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// both variables are considered equal</code></div>
<div class="line number7 index6 alt2">
<code class="c-sharp plain">}</code></div>
<div class="line number8 index7 alt1">
</div>
<div class="line number9 index8 alt2">
<code class="c-sharp comments">// Swift</code></div>
<div class="line number10 index9 alt1">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">a = </code><code class="c-sharp string">"One"</code></div>
<div class="line number11 index10 alt2">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">b = </code><code class="c-sharp string">"One"</code></div>
<div class="line number12 index11 alt1">
<code class="c-sharp keyword">if</code> <code class="c-sharp plain">a == b {</code></div>
<div class="line number13 index12 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// both variables are considered equal</code></div>
<div class="line number14 index13 alt1">
<code class="c-sharp plain">}</code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
The both also have similar methods of detecting if the beginning or ending of the string match's a specified string.<br />
<div>
<div class="syntaxhighlighter c-sharp" id="highlighter_145743">
<table border="0" cellpadding="0" cellspacing="0"><tbody>
<tr><td class="gutter"><div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
<div class="line number15 index14 alt2">
15</div>
<div class="line number16 index15 alt1">
16</div>
<div class="line number17 index16 alt2">
17</div>
</td><td class="code"><div class="container">
<div class="line number1 index0 alt2">
<code class="c-sharp comments">// C#</code></div>
<div class="line number2 index1 alt1">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">s = </code><code class="c-sharp string">"Some Value"</code><code class="c-sharp plain">;</code></div>
<div class="line number3 index2 alt2">
<code class="c-sharp keyword">if</code> <code class="c-sharp plain">(s.StartsWith(</code><code class="c-sharp string">"Some"</code><code class="c-sharp plain">)) {</code></div>
<div class="line number4 index3 alt1">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// the string starts with the value</code></div>
<div class="line number5 index4 alt2">
<code class="c-sharp plain">}</code></div>
<div class="line number6 index5 alt1">
<code class="c-sharp keyword">if</code> <code class="c-sharp plain">(s.EndsWith(</code><code class="c-sharp string">"Value"</code><code class="c-sharp plain">)) {</code></div>
<div class="line number7 index6 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// the string ends with the value</code></div>
<div class="line number8 index7 alt1">
<code class="c-sharp plain">}</code></div>
<div class="line number9 index8 alt2">
</div>
<div class="line number10 index9 alt1">
<code class="c-sharp comments">// Swift</code></div>
<div class="line number11 index10 alt2">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">s = </code><code class="c-sharp string">"Some Value"</code></div>
<div class="line number12 index11 alt1">
<code class="c-sharp keyword">if</code> <code class="c-sharp plain">s.hasPrefix(</code><code class="c-sharp string">"Some"</code><code class="c-sharp plain">) {</code></div>
<div class="line number13 index12 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// the string starts with the value</code></div>
<div class="line number14 index13 alt1">
<code class="c-sharp plain">}</code></div>
<div class="line number15 index14 alt2">
<code class="c-sharp keyword">if</code> <code class="c-sharp plain">s.hasSuffix(</code><code class="c-sharp string">"Value"</code><code class="c-sharp plain">) {</code></div>
<div class="line number16 index15 alt1">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// the string ends with the value</code></div>
<div class="line number17 index16 alt2">
<code class="c-sharp plain">}</code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
You may notice from the above example that parenthesis are not required with IF statements in Swift.<br />
<h3>
String Upper or Lower Case</h3>
Both languages support similar methods of converting strings to Upper or Lower Case.<br />
<div>
<div class="syntaxhighlighter c-sharp" id="highlighter_568353">
<table border="0" cellpadding="0" cellspacing="0"><tbody>
<tr><td class="gutter"><div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
</td><td class="code"><div class="container">
<div class="line number1 index0 alt2">
<code class="c-sharp comments">// String Upper and Lower Case</code></div>
<div class="line number2 index1 alt1">
<code class="c-sharp comments">// C#</code></div>
<div class="line number3 index2 alt2">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">s = </code><code class="c-sharp string">"some Value"</code><code class="c-sharp plain">;</code></div>
<div class="line number4 index3 alt1">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">upperS = s.ToUpper();</code></div>
<div class="line number5 index4 alt2">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">lowerS = s.ToLower();</code></div>
<div class="line number6 index5 alt1">
</div>
<div class="line number7 index6 alt2">
<code class="c-sharp comments">// Swift</code></div>
<div class="line number8 index7 alt1">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">s = </code><code class="c-sharp string">"some Value"</code></div>
<div class="line number9 index8 alt2">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">upperS = s.uppercaseString</code></div>
<div class="line number10 index9 alt1">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">lowerS = s.lowercaseString</code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
<h3>
Declaring Arrays</h3>
Both languages support declaring and assigning Arrays using a single line of code.<br />
<div>
<div class="syntaxhighlighter c-sharp" id="highlighter_73797">
<table border="0" cellpadding="0" cellspacing="0"><tbody>
<tr><td class="gutter"><div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
<div class="line number15 index14 alt2">
15</div>
</td><td class="code"><div class="container">
<div class="line number1 index0 alt2">
<code class="c-sharp comments">// Declare Arrays on single line</code></div>
<div class="line number2 index1 alt1">
</div>
<div class="line number3 index2 alt2">
<code class="c-sharp comments">// String Array</code></div>
<div class="line number4 index3 alt1">
<code class="c-sharp comments">// C#</code></div>
<div class="line number5 index4 alt2">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">arr = </code><code class="c-sharp keyword">new</code> <code class="c-sharp keyword">string</code><code class="c-sharp plain">[] { </code><code class="c-sharp string">"One"</code><code class="c-sharp plain">, </code><code class="c-sharp string">"Two"</code> <code class="c-sharp plain">};</code></div>
<div class="line number6 index5 alt1">
</div>
<div class="line number7 index6 alt2">
<code class="c-sharp comments">// Swift</code></div>
<div class="line number8 index7 alt1">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">arr = [</code><code class="c-sharp string">"One"</code><code class="c-sharp plain">, </code><code class="c-sharp string">"Two"</code><code class="c-sharp plain">]</code></div>
<div class="line number9 index8 alt2">
</div>
<div class="line number10 index9 alt1">
<code class="c-sharp comments">// Integer Array</code></div>
<div class="line number11 index10 alt2">
<code class="c-sharp comments">// C#</code></div>
<div class="line number12 index11 alt1">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">arr = </code><code class="c-sharp keyword">new</code> <code class="c-sharp keyword">int</code><code class="c-sharp plain">[] { 1, 2 };</code></div>
<div class="line number13 index12 alt2">
</div>
<div class="line number14 index13 alt1">
<code class="c-sharp comments">// Swift</code></div>
<div class="line number15 index14 alt2">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">arr = [1, 2];</code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
<h3>
Working with Arrays</h3>
Working with Arrays have slight differences between the languages.<br />
<div>
<div class="syntaxhighlighter c-sharp" id="highlighter_189699">
<table border="0" cellpadding="0" cellspacing="0"><tbody>
<tr><td class="gutter"><div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
<div class="line number15 index14 alt2">
15</div>
<div class="line number16 index15 alt1">
16</div>
<div class="line number17 index16 alt2">
17</div>
<div class="line number18 index17 alt1">
18</div>
<div class="line number19 index18 alt2">
19</div>
<div class="line number20 index19 alt1">
20</div>
<div class="line number21 index20 alt2">
21</div>
<div class="line number22 index21 alt1">
22</div>
<div class="line number23 index22 alt2">
23</div>
<div class="line number24 index23 alt1">
24</div>
<div class="line number25 index24 alt2">
25</div>
<div class="line number26 index25 alt1">
26</div>
<div class="line number27 index26 alt2">
27</div>
<div class="line number28 index27 alt1">
28</div>
<div class="line number29 index28 alt2">
29</div>
<div class="line number30 index29 alt1">
30</div>
<div class="line number31 index30 alt2">
31</div>
<div class="line number32 index31 alt1">
32</div>
<div class="line number33 index32 alt2">
33</div>
<div class="line number34 index33 alt1">
34</div>
<div class="line number35 index34 alt2">
35</div>
<div class="line number36 index35 alt1">
36</div>
<div class="line number37 index36 alt2">
37</div>
<div class="line number38 index37 alt1">
38</div>
<div class="line number39 index38 alt2">
39</div>
<div class="line number40 index39 alt1">
40</div>
<div class="line number41 index40 alt2">
41</div>
<div class="line number42 index41 alt1">
42</div>
<div class="line number43 index42 alt2">
43</div>
<div class="line number44 index43 alt1">
44</div>
<div class="line number45 index44 alt2">
45</div>
<div class="line number46 index45 alt1">
46</div>
<div class="line number47 index46 alt2">
47</div>
<div class="line number48 index47 alt1">
48</div>
<div class="line number49 index48 alt2">
49</div>
<div class="line number50 index49 alt1">
50</div>
<div class="line number51 index50 alt2">
51</div>
<div class="line number52 index51 alt1">
52</div>
<div class="line number53 index52 alt2">
53</div>
<div class="line number54 index53 alt1">
54</div>
<div class="line number55 index54 alt2">
55</div>
<div class="line number56 index55 alt1">
56</div>
<div class="line number57 index56 alt2">
57</div>
<div class="line number58 index57 alt1">
58</div>
</td><td class="code"><div class="container">
<div class="line number1 index0 alt2">
<code class="c-sharp comments">// Iterating Over Array</code></div>
<div class="line number2 index1 alt1">
<code class="c-sharp comments">// C#</code></div>
<div class="line number3 index2 alt2">
<code class="c-sharp keyword">foreach</code> <code class="c-sharp plain">(</code><code class="c-sharp keyword">var</code> <code class="c-sharp plain">item </code><code class="c-sharp keyword">in</code> <code class="c-sharp plain">arr) {</code></div>
<div class="line number4 index3 alt1">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// do something</code></div>
<div class="line number5 index4 alt2">
<code class="c-sharp plain">}</code></div>
<div class="line number6 index5 alt1">
</div>
<div class="line number7 index6 alt2">
<code class="c-sharp comments">// Swift</code></div>
<div class="line number8 index7 alt1">
<code class="c-sharp keyword">for</code> <code class="c-sharp plain">item </code><code class="c-sharp keyword">in</code> <code class="c-sharp plain">arr {</code></div>
<div class="line number9 index8 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// do something</code></div>
<div class="line number10 index9 alt1">
<code class="c-sharp plain">}</code></div>
<div class="line number11 index10 alt2">
</div>
<div class="line number12 index11 alt1">
</div>
<div class="line number13 index12 alt2">
<code class="c-sharp comments">// Get Item at Index</code></div>
<div class="line number14 index13 alt1">
<code class="c-sharp comments">// C#</code></div>
<div class="line number15 index14 alt2">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">item = arr[0];</code></div>
<div class="line number16 index15 alt1">
<code class="c-sharp comments">// Swift</code></div>
<div class="line number17 index16 alt2">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">item = arr[0]</code></div>
<div class="line number18 index17 alt1">
</div>
<div class="line number19 index18 alt2">
</div>
<div class="line number20 index19 alt1">
<code class="c-sharp comments">// Set Item at Index</code></div>
<div class="line number21 index20 alt2">
<code class="c-sharp comments">// C#</code></div>
<div class="line number22 index21 alt1">
<code class="c-sharp plain">arr[0] = </code><code class="c-sharp string">"Value"</code><code class="c-sharp plain">;</code></div>
<div class="line number23 index22 alt2">
</div>
<div class="line number24 index23 alt1">
<code class="c-sharp comments">// Swift</code></div>
<div class="line number25 index24 alt2">
<code class="c-sharp plain">arr[0] = </code><code class="c-sharp string">"Value"</code></div>
<div class="line number26 index25 alt1">
</div>
<div class="line number27 index26 alt2">
</div>
<div class="line number28 index27 alt1">
<code class="c-sharp comments">// Is Array Empty?</code></div>
<div class="line number29 index28 alt2">
<code class="c-sharp comments">// C#</code></div>
<div class="line number30 index29 alt1">
<code class="c-sharp keyword">if</code> <code class="c-sharp plain">(arr.Length == 0) {</code></div>
<div class="line number31 index30 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// array is empty</code></div>
<div class="line number32 index31 alt1">
<code class="c-sharp plain">}</code></div>
<div class="line number33 index32 alt2">
</div>
<div class="line number34 index33 alt1">
<code class="c-sharp comments">// Swift</code></div>
<div class="line number35 index34 alt2">
<code class="c-sharp keyword">if</code> <code class="c-sharp plain">arr.isEmpty {</code></div>
<div class="line number36 index35 alt1">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// array is empty</code></div>
<div class="line number37 index36 alt2">
<code class="c-sharp plain">}</code></div>
<div class="line number38 index37 alt1">
</div>
<div class="line number39 index38 alt2">
</div>
<div class="line number40 index39 alt1">
<code class="c-sharp comments">// Add Item to Array</code></div>
<div class="line number41 index40 alt2">
<code class="c-sharp comments">// C#</code></div>
<div class="line number42 index41 alt1">
<code class="c-sharp plain">Array.Resize(</code><code class="c-sharp keyword">ref</code> <code class="c-sharp plain">arr, arr.Length + 1);</code></div>
<div class="line number43 index42 alt2">
<code class="c-sharp plain">arr[arr.Length - 1] = </code><code class="c-sharp string">"Three"</code><code class="c-sharp plain">;</code></div>
<div class="line number44 index43 alt1">
</div>
<div class="line number45 index44 alt2">
<code class="c-sharp comments">// Swift</code></div>
<div class="line number46 index45 alt1">
<code class="c-sharp plain">arr.append(</code><code class="c-sharp string">"Three"</code><code class="c-sharp plain">)</code></div>
<div class="line number47 index46 alt2">
<code class="c-sharp comments">// or</code></div>
<div class="line number48 index47 alt1">
<code class="c-sharp plain">arr += </code><code class="c-sharp string">"Three"</code></div>
<div class="line number49 index48 alt2">
</div>
<div class="line number50 index49 alt1">
</div>
<div class="line number51 index50 alt2">
<code class="c-sharp comments">// Remove Item at Index</code></div>
<div class="line number52 index51 alt1">
<code class="c-sharp comments">// C#</code></div>
<div class="line number53 index52 alt2">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">list = arr.ToList();</code></div>
<div class="line number54 index53 alt1">
<code class="c-sharp plain">list.RemoveAt(0);</code></div>
<div class="line number55 index54 alt2">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">newArr = list.ToArray();</code></div>
<div class="line number56 index55 alt1">
</div>
<div class="line number57 index56 alt2">
<code class="c-sharp comments">// Swift</code></div>
<div class="line number58 index57 alt1">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">newArr = arr.removeAtIndex(0)</code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
<h3>
Declaring Dictionaries</h3>
Both languages support similar methods of declaring dictionaries.<br />
<div>
<div class="syntaxhighlighter c-sharp" id="highlighter_599955">
<table border="0" cellpadding="0" cellspacing="0"><tbody>
<tr><td class="gutter"><div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
</td><td class="code"><div class="container">
<div class="line number1 index0 alt2">
<code class="c-sharp comments">// Declaring Dictionaries</code></div>
<div class="line number2 index1 alt1">
<code class="c-sharp comments">// C#</code></div>
<div class="line number3 index2 alt2">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">dict = </code><code class="c-sharp keyword">new</code> <code class="c-sharp plain">Dictionary<</code><code class="c-sharp keyword">string</code><code class="c-sharp plain">, </code><code class="c-sharp keyword">string</code><code class="c-sharp plain">>();</code></div>
<div class="line number4 index3 alt1">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">dict2 = </code><code class="c-sharp keyword">new</code> <code class="c-sharp plain">Dictionary<</code><code class="c-sharp keyword">string</code><code class="c-sharp plain">, </code><code class="c-sharp keyword">string</code><code class="c-sharp plain">></code></div>
<div class="line number5 index4 alt2">
<code class="c-sharp plain">{</code></div>
<div class="line number6 index5 alt1">
<code class="c-sharp spaces"> </code><code class="c-sharp plain">{ </code><code class="c-sharp string">"TYO"</code><code class="c-sharp plain">, </code><code class="c-sharp string">"Tokyo"</code> <code class="c-sharp plain">},</code></div>
<div class="line number7 index6 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp plain">{ </code><code class="c-sharp string">"DUB"</code><code class="c-sharp plain">, </code><code class="c-sharp string">"Dublin"</code> <code class="c-sharp plain">}</code></div>
<div class="line number8 index7 alt1">
<code class="c-sharp plain">};</code></div>
<div class="line number9 index8 alt2">
</div>
<div class="line number10 index9 alt1">
<code class="c-sharp comments">// Swift</code></div>
<div class="line number11 index10 alt2">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">dict = Dictionary<String, String>()</code></div>
<div class="line number12 index11 alt1">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">dict2 = [</code><code class="c-sharp string">"TYO"</code><code class="c-sharp plain">: </code><code class="c-sharp string">"Tokyo"</code><code class="c-sharp plain">, </code><code class="c-sharp string">"DUB"</code><code class="c-sharp plain">: </code><code class="c-sharp string">"Dublin"</code><code class="c-sharp plain">]</code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
<h3>
Working with Dictionaries</h3>
Working with Dictionaries have slight differences between the languages.<br />
<div>
<div class="syntaxhighlighter c-sharp" id="highlighter_234541">
<table border="0" cellpadding="0" cellspacing="0"><tbody>
<tr><td class="gutter"><div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
<div class="line number15 index14 alt2">
15</div>
<div class="line number16 index15 alt1">
16</div>
<div class="line number17 index16 alt2">
17</div>
<div class="line number18 index17 alt1">
18</div>
<div class="line number19 index18 alt2">
19</div>
<div class="line number20 index19 alt1">
20</div>
<div class="line number21 index20 alt2">
21</div>
<div class="line number22 index21 alt1">
22</div>
<div class="line number23 index22 alt2">
23</div>
<div class="line number24 index23 alt1">
24</div>
<div class="line number25 index24 alt2">
25</div>
<div class="line number26 index25 alt1">
26</div>
<div class="line number27 index26 alt2">
27</div>
<div class="line number28 index27 alt1">
28</div>
<div class="line number29 index28 alt2">
29</div>
<div class="line number30 index29 alt1">
30</div>
<div class="line number31 index30 alt2">
31</div>
<div class="line number32 index31 alt1">
32</div>
<div class="line number33 index32 alt2">
33</div>
<div class="line number34 index33 alt1">
34</div>
<div class="line number35 index34 alt2">
35</div>
<div class="line number36 index35 alt1">
36</div>
</td><td class="code"><div class="container">
<div class="line number1 index0 alt2">
<code class="c-sharp comments">// Iterate over Dictionary</code></div>
<div class="line number2 index1 alt1">
<code class="c-sharp comments">// C#</code></div>
<div class="line number3 index2 alt2">
<code class="c-sharp keyword">foreach</code><code class="c-sharp plain">(</code><code class="c-sharp keyword">var</code> <code class="c-sharp plain">item </code><code class="c-sharp keyword">in</code> <code class="c-sharp plain">dict) {</code></div>
<div class="line number4 index3 alt1">
<code class="c-sharp spaces"> </code><code class="c-sharp keyword">var</code> <code class="c-sharp plain">key = item.Key;</code></div>
<div class="line number5 index4 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp keyword">var</code> <code class="c-sharp plain">value = item.Value;</code></div>
<div class="line number6 index5 alt1">
<code class="c-sharp plain">}</code></div>
<div class="line number7 index6 alt2">
</div>
<div class="line number8 index7 alt1">
<code class="c-sharp comments">// Swift</code></div>
<div class="line number9 index8 alt2">
<code class="c-sharp keyword">for</code> <code class="c-sharp plain">(key, value) </code><code class="c-sharp keyword">in</code> <code class="c-sharp plain">dict {</code></div>
<div class="line number10 index9 alt1">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// key variable contains key of item</code></div>
<div class="line number11 index10 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// value variable contains value of item</code></div>
<div class="line number12 index11 alt1">
<code class="c-sharp plain">}</code></div>
<div class="line number13 index12 alt2">
</div>
<div class="line number14 index13 alt1">
<code class="c-sharp comments">// Get Item in Dictionary by Key</code></div>
<div class="line number15 index14 alt2">
<code class="c-sharp comments">// C#</code></div>
<div class="line number16 index15 alt1">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">item = dict[</code><code class="c-sharp string">"TYO"</code><code class="c-sharp plain">];</code></div>
<div class="line number17 index16 alt2">
</div>
<div class="line number18 index17 alt1">
<code class="c-sharp comments">// Swift</code></div>
<div class="line number19 index18 alt2">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">item = dict[</code><code class="c-sharp string">"TYO"</code><code class="c-sharp plain">]</code></div>
<div class="line number20 index19 alt1">
</div>
<div class="line number21 index20 alt2">
</div>
<div class="line number22 index21 alt1">
<code class="c-sharp comments">// Set Item in Dictionary by key</code></div>
<div class="line number23 index22 alt2">
<code class="c-sharp comments">// or add if key doesn't exist</code></div>
<div class="line number24 index23 alt1">
<code class="c-sharp comments">// C#</code></div>
<div class="line number25 index24 alt2">
<code class="c-sharp plain">dict[</code><code class="c-sharp string">"LHR"</code><code class="c-sharp plain">] = </code><code class="c-sharp string">"London"</code><code class="c-sharp plain">;</code></div>
<div class="line number26 index25 alt1">
</div>
<div class="line number27 index26 alt2">
<code class="c-sharp comments">// Swift</code></div>
<div class="line number28 index27 alt1">
<code class="c-sharp plain">dict[</code><code class="c-sharp string">"LHR"</code><code class="c-sharp plain">] = </code><code class="c-sharp string">"London"</code></div>
<div class="line number29 index28 alt2">
</div>
<div class="line number30 index29 alt1">
</div>
<div class="line number31 index30 alt2">
<code class="c-sharp comments">// Remove Item in Dictionary by key</code></div>
<div class="line number32 index31 alt1">
<code class="c-sharp comments">// C#</code></div>
<div class="line number33 index32 alt2">
<code class="c-sharp plain">dict.Remove(</code><code class="c-sharp string">"LHR"</code><code class="c-sharp plain">);</code></div>
<div class="line number34 index33 alt1">
</div>
<div class="line number35 index34 alt2">
<code class="c-sharp comments">// Swift</code></div>
<div class="line number36 index35 alt1">
<code class="c-sharp plain">dict.removeValueForKey(</code><code class="c-sharp string">"DUB"</code><code class="c-sharp plain">)</code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
<h3>
For Loops</h3>
The above examples for Arrays and Dictionaries already showed
examples of using a For-In loop to iterate through the items in those
collections. Here are some additional methods of iterating using a For
Loop.<br />
<div>
<div class="syntaxhighlighter c-sharp" id="highlighter_770674">
<table border="0" cellpadding="0" cellspacing="0"><tbody>
<tr><td class="gutter"><div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
<div class="line number15 index14 alt2">
15</div>
<div class="line number16 index15 alt1">
16</div>
</td><td class="code"><div class="container">
<div class="line number1 index0 alt2">
<code class="c-sharp comments">// Iterate from 1 through 5</code></div>
<div class="line number2 index1 alt1">
<code class="c-sharp comments">// C#</code></div>
<div class="line number3 index2 alt2">
<code class="c-sharp comments">// using increment</code></div>
<div class="line number4 index3 alt1">
<code class="c-sharp keyword">for</code><code class="c-sharp plain">(</code><code class="c-sharp keyword">var</code> <code class="c-sharp plain">i = 1; i <= 5; i++) {</code></div>
<div class="line number5 index4 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// do something with i</code></div>
<div class="line number6 index5 alt1">
<code class="c-sharp plain">}</code></div>
<div class="line number7 index6 alt2">
</div>
<div class="line number8 index7 alt1">
<code class="c-sharp comments">// Swift</code></div>
<div class="line number9 index8 alt2">
<code class="c-sharp comments">// using range</code></div>
<div class="line number10 index9 alt1">
<code class="c-sharp keyword">for</code> <code class="c-sharp plain">i </code><code class="c-sharp keyword">in</code> <code class="c-sharp plain">1...5 {</code></div>
<div class="line number11 index10 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// do something with i</code></div>
<div class="line number12 index11 alt1">
<code class="c-sharp plain">}</code></div>
<div class="line number13 index12 alt2">
<code class="c-sharp comments">// using increment</code></div>
<div class="line number14 index13 alt1">
<code class="c-sharp keyword">for</code> <code class="c-sharp keyword">var</code> <code class="c-sharp plain">i = 0; i <= 5; ++i {</code></div>
<div class="line number15 index14 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// do something with i</code></div>
<div class="line number16 index15 alt1">
<code class="c-sharp plain">}</code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
The range example of Swift is rather interesting in the method of shorthand it uses for it's definition.<br />
<h3>
Conditional Statements</h3>
Both languages support If...Then conditional statements. Swift is a
little different that it doesn't require parenthesis around the match
conditions.<br />
<div>
<div class="syntaxhighlighter c-sharp" id="highlighter_12394">
<table border="0" cellpadding="0" cellspacing="0"><tbody>
<tr><td class="gutter"><div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
<div class="line number15 index14 alt2">
15</div>
<div class="line number16 index15 alt1">
16</div>
<div class="line number17 index16 alt2">
17</div>
<div class="line number18 index17 alt1">
18</div>
</td><td class="code"><div class="container">
<div class="line number1 index0 alt2">
<code class="c-sharp comments">// If Then Else Conditional Statement</code></div>
<div class="line number2 index1 alt1">
<code class="c-sharp comments">// C#</code></div>
<div class="line number3 index2 alt2">
<code class="c-sharp keyword">if</code> <code class="c-sharp plain">(i > 6) {</code></div>
<div class="line number4 index3 alt1">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// do something</code></div>
<div class="line number5 index4 alt2">
<code class="c-sharp plain">} </code><code class="c-sharp keyword">else</code> <code class="c-sharp keyword">if</code> <code class="c-sharp plain">(i > 3 && i <= 6) {</code></div>
<div class="line number6 index5 alt1">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// do something</code></div>
<div class="line number7 index6 alt2">
<code class="c-sharp plain">} </code><code class="c-sharp keyword">else</code> <code class="c-sharp plain">{</code></div>
<div class="line number8 index7 alt1">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// do something</code></div>
<div class="line number9 index8 alt2">
<code class="c-sharp plain">}</code></div>
<div class="line number10 index9 alt1">
</div>
<div class="line number11 index10 alt2">
<code class="c-sharp comments">// Swift</code></div>
<div class="line number12 index11 alt1">
<code class="c-sharp keyword">if</code> <code class="c-sharp plain">i > 6 {</code></div>
<div class="line number13 index12 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// do something</code></div>
<div class="line number14 index13 alt1">
<code class="c-sharp plain">} </code><code class="c-sharp keyword">else</code> <code class="c-sharp keyword">if</code> <code class="c-sharp plain">i > 3 && i <= 6 {</code></div>
<div class="line number15 index14 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// do something</code></div>
<div class="line number16 index15 alt1">
<code class="c-sharp plain">} </code><code class="c-sharp keyword">else</code> <code class="c-sharp plain">{</code></div>
<div class="line number17 index16 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// do something</code></div>
<div class="line number18 index17 alt1">
<code class="c-sharp plain">}</code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
<h3>
Switch Statement</h3>
Both languages support Switch statements.<br />
<div>
<div class="syntaxhighlighter c-sharp" id="highlighter_578477">
<table border="0" cellpadding="0" cellspacing="0"><tbody>
<tr><td class="gutter"><div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
<div class="line number15 index14 alt2">
15</div>
<div class="line number16 index15 alt1">
16</div>
<div class="line number17 index16 alt2">
17</div>
<div class="line number18 index17 alt1">
18</div>
<div class="line number19 index18 alt2">
19</div>
<div class="line number20 index19 alt1">
20</div>
<div class="line number21 index20 alt2">
21</div>
<div class="line number22 index21 alt1">
22</div>
<div class="line number23 index22 alt2">
23</div>
<div class="line number24 index23 alt1">
24</div>
<div class="line number25 index24 alt2">
25</div>
</td><td class="code"><div class="container">
<div class="line number1 index0 alt2">
<code class="c-sharp comments">// Switch statement</code></div>
<div class="line number2 index1 alt1">
<code class="c-sharp comments">// C#</code></div>
<div class="line number3 index2 alt2">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">word = </code><code class="c-sharp string">"A"</code><code class="c-sharp plain">;</code></div>
<div class="line number4 index3 alt1">
<code class="c-sharp keyword">switch</code><code class="c-sharp plain">(word) {</code></div>
<div class="line number5 index4 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp keyword">case</code> <code class="c-sharp string">"A"</code><code class="c-sharp plain">:</code></div>
<div class="line number6 index5 alt1">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// do something</code></div>
<div class="line number7 index6 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp keyword">break</code><code class="c-sharp plain">;</code></div>
<div class="line number8 index7 alt1">
<code class="c-sharp spaces"> </code><code class="c-sharp keyword">case</code> <code class="c-sharp string">"B"</code><code class="c-sharp plain">:</code></div>
<div class="line number9 index8 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// do something</code></div>
<div class="line number10 index9 alt1">
<code class="c-sharp spaces"> </code><code class="c-sharp keyword">break</code><code class="c-sharp plain">;</code></div>
<div class="line number11 index10 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp keyword">default</code><code class="c-sharp plain">:</code></div>
<div class="line number12 index11 alt1">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// do something</code></div>
<div class="line number13 index12 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp keyword">break</code><code class="c-sharp plain">;</code></div>
<div class="line number14 index13 alt1">
<code class="c-sharp plain">}</code></div>
<div class="line number15 index14 alt2">
</div>
<div class="line number16 index15 alt1">
<code class="c-sharp comments">// Swift</code></div>
<div class="line number17 index16 alt2">
<code class="c-sharp keyword">var</code> <code class="c-sharp plain">word = </code><code class="c-sharp string">"A"</code></div>
<div class="line number18 index17 alt1">
<code class="c-sharp keyword">switch</code> <code class="c-sharp plain">word {</code></div>
<div class="line number19 index18 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp keyword">case</code> <code class="c-sharp string">"A"</code><code class="c-sharp plain">:</code></div>
<div class="line number20 index19 alt1">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// do something</code></div>
<div class="line number21 index20 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp keyword">case</code> <code class="c-sharp string">"B"</code><code class="c-sharp plain">:</code></div>
<div class="line number22 index21 alt1">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// do something</code></div>
<div class="line number23 index22 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp keyword">default</code><code class="c-sharp plain">:</code></div>
<div class="line number24 index23 alt1">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// do something</code></div>
<div class="line number25 index24 alt2">
<code class="c-sharp plain">}</code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
Switch statements are rather similar in both languages except that in
Swift case statements don't automatically pass on to the next like in
C#. As a result C# requires the use of the break keywords to exit the
Switch statement, unless you want to fall through to the next case.
While in Swift you must use the "fallthrough" keyword to tell it to pass
on through to the next case statement. More information on this can be
found in the Swift documentation.<br />
An additional feature that Swift supports with Switch statements is
ranges within the Case statements. This is something that C# does not
support.<br />
<div>
<div class="syntaxhighlighter c-sharp" id="highlighter_332690">
<table border="0" cellpadding="0" cellspacing="0"><tbody>
<tr><td class="gutter"><div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
<div class="line number15 index14 alt2">
15</div>
<div class="line number16 index15 alt1">
16</div>
<div class="line number17 index16 alt2">
17</div>
<div class="line number18 index17 alt1">
18</div>
<div class="line number19 index18 alt2">
19</div>
<div class="line number20 index19 alt1">
20</div>
<div class="line number21 index20 alt2">
21</div>
<div class="line number22 index21 alt1">
22</div>
<div class="line number23 index22 alt2">
23</div>
<div class="line number24 index23 alt1">
24</div>
<div class="line number25 index24 alt2">
25</div>
</td><td class="code"><div class="container">
<div class="line number1 index0 alt2">
<code class="c-sharp comments">// Switch Case Ranges</code></div>
<div class="line number2 index1 alt1">
<code class="c-sharp comments">// C#</code></div>
<div class="line number3 index2 alt2">
<code class="c-sharp keyword">switch</code> <code class="c-sharp plain">(i) {</code></div>
<div class="line number4 index3 alt1">
<code class="c-sharp spaces"> </code><code class="c-sharp keyword">case</code> <code class="c-sharp plain">1:</code></div>
<div class="line number5 index4 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp keyword">case</code> <code class="c-sharp plain">2:</code></div>
<div class="line number6 index5 alt1">
<code class="c-sharp spaces"> </code><code class="c-sharp keyword">case</code> <code class="c-sharp plain">3:</code></div>
<div class="line number7 index6 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// do something</code></div>
<div class="line number8 index7 alt1">
<code class="c-sharp spaces"> </code><code class="c-sharp keyword">break</code><code class="c-sharp plain">;</code></div>
<div class="line number9 index8 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp keyword">case</code> <code class="c-sharp plain">4:</code></div>
<div class="line number10 index9 alt1">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// do something</code></div>
<div class="line number11 index10 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp keyword">break</code><code class="c-sharp plain">;</code></div>
<div class="line number12 index11 alt1">
<code class="c-sharp spaces"> </code><code class="c-sharp keyword">default</code><code class="c-sharp plain">:</code></div>
<div class="line number13 index12 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// do something</code></div>
<div class="line number14 index13 alt1">
<code class="c-sharp spaces"> </code><code class="c-sharp keyword">break</code><code class="c-sharp plain">;</code></div>
<div class="line number15 index14 alt2">
<code class="c-sharp plain">}</code></div>
<div class="line number16 index15 alt1">
</div>
<div class="line number17 index16 alt2">
<code class="c-sharp comments">// Swift</code></div>
<div class="line number18 index17 alt1">
<code class="c-sharp keyword">switch</code> <code class="c-sharp plain">i {</code></div>
<div class="line number19 index18 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp keyword">case</code> <code class="c-sharp plain">1...3:</code></div>
<div class="line number20 index19 alt1">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// do something</code></div>
<div class="line number21 index20 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp keyword">case</code> <code class="c-sharp plain">4:</code></div>
<div class="line number22 index21 alt1">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// do something</code></div>
<div class="line number23 index22 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp keyword">default</code><code class="c-sharp plain">:</code></div>
<div class="line number24 index23 alt1">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// do something</code></div>
<div class="line number25 index24 alt2">
<code class="c-sharp plain">}</code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
<h3>
Functions</h3>
While Functions are a much bigger comparison to be made, here's a basic example:<br />
<div>
<div class="syntaxhighlighter c-sharp" id="highlighter_888996">
<table border="0" cellpadding="0" cellspacing="0"><tbody>
<tr><td class="gutter"><div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
</td><td class="code"><div class="container">
<div class="line number1 index0 alt2">
<code class="c-sharp comments">// Function with Parameter and Return Value</code></div>
<div class="line number2 index1 alt1">
<code class="c-sharp comments">// C#</code></div>
<div class="line number3 index2 alt2">
<code class="c-sharp keyword">string</code> <code class="c-sharp plain">sayHello(</code><code class="c-sharp keyword">string</code> <code class="c-sharp plain">name) {</code></div>
<div class="line number4 index3 alt1">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// do something</code></div>
<div class="line number5 index4 alt2">
<code class="c-sharp plain">}</code></div>
<div class="line number6 index5 alt1">
</div>
<div class="line number7 index6 alt2">
<code class="c-sharp comments">// Swift</code></div>
<div class="line number8 index7 alt1">
<code class="c-sharp plain">func sayHello(name: String) -> String {</code></div>
<div class="line number9 index8 alt2">
<code class="c-sharp spaces"> </code><code class="c-sharp comments">// do something</code></div>
<div class="line number10 index9 alt1">
<code class="c-sharp plain">}</code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
The post Basic Comparison of Functions in C# and Swift goes into much more depth on Functions; as that is a much bigger comparison that could fit into this post.<br />
<h3>
Conclusion</h3>
This concludes my basic comparison of C# and Apple Swift programming
languages. The two languages are rather similar in many respects; at
least in what I've compared thus far. More language feature comparisons
will have to wait for future posts.<br />
One of the bigger differences that's worth pointing out explicitly is
the difference in how each language handles Array's. Arrays in Swift
are extremely similar to the List<> class in C#; which is what
most developers use today in C# instead of arrays anyway (unless
performance requires it.)<br />
You can find more information about the Swift programming language on Apple's site at the following links:<br />
<a href="https://developer.apple.com/swift/">https://developer.apple.com/swift/</a><br />
<a href="https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/">https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/</a><br />
<br />
<br />
- Blog Post by: Chris Pietschmann<br />
<br />
<strong><br /></strong>
</div>
Stewarthttp://www.blogger.com/profile/16462979654570677707noreply@blogger.com0tag:blogger.com,1999:blog-6554929568441154847.post-37129510073475540722014-07-07T08:12:00.001-07:002014-08-04T15:09:16.908-07:00Office 365 - We have your data !Woke up to this today. An email from Microsoft regarding Office 365: "We hope you had an opportunity to explore all the rich features and
functionality of your Microsoft Office 365 Enterprise E3 (TechNet). You
can continue offering these services to your business by purchasing a subscription today. <b>If you buy within the next 30 days, all of the data and customizations made during your trial will be preserved.</b>"<br />
<br />
Can you imagine if I/we depended on this service? Do we OWN your data? Damn right Microsoft does !-( Stewarthttp://www.blogger.com/profile/16462979654570677707noreply@blogger.com0tag:blogger.com,1999:blog-6554929568441154847.post-58625782072170477752014-06-03T19:40:00.000-07:002014-06-03T19:49:09.115-07:00AppleTV & iOS 8"With iOS 8, you can wirelessly connect iPad, iPhone, or iPod touch to
<a href="http://www.apple.com/ios/ios8/enterprise/">Apple TV without first connecting to the organization’s network</a>. Which
means you can present or share your work even if you’re offline or the
organization has a complex network." - AppleStewarthttp://www.blogger.com/profile/16462979654570677707noreply@blogger.com0tag:blogger.com,1999:blog-6554929568441154847.post-26864597206599630112014-06-02T16:18:00.000-07:002014-06-02T16:18:30.310-07:00WWDC 2014: Apple introduces - Swift Programming LanguageApple introduces new programming language, "Swift".<br />
<br />
Swift is an innovative new programming language for Cocoa and Cocoa
Touch. Writing code is interactive and fun, the syntax is concise yet
expressive, and apps run lightning-fast. Swift is ready for your next
iOS and OS X project — or for addition into your current app — because
Swift code works side-by-side with Objective-C.<br />
<br />
More Information:<br />
<a href="http://bit.ly/swiftprogramminglanguage">The Swift Programming Language</a><br />
<br />Stewarthttp://www.blogger.com/profile/16462979654570677707noreply@blogger.com0tag:blogger.com,1999:blog-6554929568441154847.post-76758214614504870672014-05-20T15:20:00.001-07:002014-05-20T15:20:56.907-07:00Sale: Paragon NTFS (Mac)Paragon NTFS (Mac) - <a href="http://www.bitsdujour.com/software/paragon-ntfs-for-mac-os-x">On Sale ... 1 day ONLY ... $19.95 -> $9.95(US)</a>.
Stewarthttp://www.blogger.com/profile/16462979654570677707noreply@blogger.com0tag:blogger.com,1999:blog-6554929568441154847.post-38868713706589836542014-05-07T19:53:00.002-07:002014-05-07T19:53:27.063-07:00TV: Hello Ladies w/Stephan MerchantLife just ended for me ;-) Just found out today that Stephan Merchant did a show called, "<a href="http://www.imdb.com/title/tt2378794/?ref_=fn_al_tt_1" target="_blank">Hello Ladies</a>". Where he plays a nerdy IT character by the name of Stuart. Even worse, the show got cancelled.<br />
<br />Stewarthttp://www.blogger.com/profile/16462979654570677707noreply@blogger.com0tag:blogger.com,1999:blog-6554929568441154847.post-1281715512862233922014-05-07T13:32:00.001-07:002014-05-07T13:32:29.304-07:00Startup: Mink - Desktop printer for makeupGuaranteed that this company is bought within the next 48 hours:<br />
<br />
<a href="http://gracemink.com/" target="_blank">Mink</a> is a desktop printer that prints makeup.<br />
Stewarthttp://www.blogger.com/profile/16462979654570677707noreply@blogger.com0tag:blogger.com,1999:blog-6554929568441154847.post-17893335235507405612014-05-01T16:26:00.001-07:002014-05-01T16:27:46.103-07:00Interview: ThoughtWorks - We hate LGBT projects.Well I interviewed for <a href="http://www.thoughtworks.com/">ThoughtWorks</a>. After 1 hour of pretty much the most boring conversation I have ever had in my life it was over. The other person kept saying, "I am not listening". From one example, [the worst example] of interviewing he says, "We are an ethical company and only take on certain projects. That's why we didn't take on the LGBT project". WOW! There's a company you want to work for, NOT! Action-item ? Remove all ThoughtWorks software. Done.
Stewarthttp://www.blogger.com/profile/16462979654570677707noreply@blogger.com0tag:blogger.com,1999:blog-6554929568441154847.post-47451652181006275712014-04-23T15:27:00.001-07:002014-04-23T15:28:00.203-07:00Sale: Book - Adobe Premiere Pro CC Classroom in a Book -> eBook $51.99 -> $19.99(US) [1 week only]<a href="http://www.adobepress.com/">Adobe Press</a> has their, "Adobe Premiere Pro CC Classroom in a Book" on sale. The eBook is available <a href="http://www.adobepress.com/deals/">here</a>.
Stewarthttp://www.blogger.com/profile/16462979654570677707noreply@blogger.com0tag:blogger.com,1999:blog-6554929568441154847.post-57355538169469099112014-03-21T18:27:00.000-07:002014-03-21T18:27:15.206-07:00Died: David BrennerI was reading <a href="http://www.imdb.com/name/nm0001663/?ref_=nv_sr_3" target="_blank">Paul Riser</a>'s <a href="http://huff.to/NBnk4A" target="_blank">article</a> about how much he liked <a href="http://www.imdb.com/name/nm0107464/?ref_=nv_sr_1" target="_blank">David Brenner</a> and I was surprised that I didn't know this person. Being a huge fan of comedy I thought this was one of those behind the scene guys that only the comedians get to know. Turns out after looking up his photo I did know of the guy. And I was a huge fan. He was one of those guys that had, 'it'. He was a clean comedian as far as I knew. Was always on late night shows. And was just amazing. Sorry to see him pass so soon.<br />
<br />Stewarthttp://www.blogger.com/profile/16462979654570677707noreply@blogger.com0tag:blogger.com,1999:blog-6554929568441154847.post-45766018201859173182014-03-20T11:06:00.000-07:002019-03-25T05:58:45.829-07:00PhotoShop CC & Microsoft's JPEG XR pluginIf you are looking at using <a href="http://research.microsoft.com/en-us/um/redmond/groups/ivm/JPEGXR/" target="_blank">Microsoft's JPEG XR plugin</a> with PhotoShop CC [MAC] the install instructions do not mention PhotoShop CC.<br />
<br />
Here is the file location I used to get it working:<br />
<i>{Boot Drive}/Applications/Adobe Photoshop CC/Plug-ins/File Formats/</i><br />
<br />
<span style="background-color: #fff2cc;"><i>where {Boot Drive} is the name the hard drive your Mac starts-up from.</i></span><br />
<br />
<i>For example:</i><br />
<i>Macintosh HD/Applications/Adobe Photoshop CC/Plug-ins/File Formats/</i><br />
<br />
***NOTE: I had to create a folder called, "File Formats" as it is NOT created by the Adobe installer.<br />
<br />
<br />
<br />
<br />Stewarthttp://www.blogger.com/profile/16462979654570677707noreply@blogger.com0tag:blogger.com,1999:blog-6554929568441154847.post-7991575650882461522014-02-19T22:24:00.004-08:002014-02-19T22:24:56.716-08:00Sale: XBox Live $59 -> $39(US)<a href="http://www.microsoftstore.com/store/msusa/en_US/pdp/productID.288505400" target="_blank">XBox Live on sale $59 -> $39(US</a>)Stewarthttp://www.blogger.com/profile/16462979654570677707noreply@blogger.com0tag:blogger.com,1999:blog-6554929568441154847.post-71734360259816732912014-02-18T20:37:00.000-08:002014-02-18T20:39:14.764-08:00Sale: Little Snitch $19.95 (US)Mac network monitoring software <a href="http://bit.ly/littlesnitchsale" target="_blank">Little Snitch on sale for $19.95</a> (reg. $35 US).Stewarthttp://www.blogger.com/profile/16462979654570677707noreply@blogger.com0tag:blogger.com,1999:blog-6554929568441154847.post-46791657743959733922013-12-01T21:19:00.004-08:002013-12-01T21:19:53.547-08:00Sale: Tower - GIT client for MacTower - the GIT client for Mac on sale <a href="https://stacksocial.com/sales/tower-the-most-powerful-git-client-for-mac" target="_blank">here</a>.Stewarthttp://www.blogger.com/profile/16462979654570677707noreply@blogger.com0tag:blogger.com,1999:blog-6554929568441154847.post-37198357590308009132013-11-15T13:06:00.002-08:002013-11-15T13:06:50.078-08:003D Builder App - Windows 8.1Microsoft releases <a href="http://apps.microsoft.com/windows/en-us/app/3d-builder/75f3f766-13b3-45e9-a62f-29590d5781f2" target="_blank">3D Printing App</a> for Windows 8.1Stewarthttp://www.blogger.com/profile/16462979654570677707noreply@blogger.com0tag:blogger.com,1999:blog-6554929568441154847.post-64244353912437674302013-09-02T15:28:00.003-07:002013-09-02T15:28:46.761-07:00Photo: Valcourt car"Painting" of a old <a href="http://bit.ly/valcourtcar" target="_blank">Valcourt car</a>.Stewarthttp://www.blogger.com/profile/16462979654570677707noreply@blogger.com0tag:blogger.com,1999:blog-6554929568441154847.post-46443353070870342422013-09-02T15:15:00.000-07:002013-09-02T15:15:01.517-07:00TopStyle 5 - Going on Sale ..."<a href="http://www.topstyle4.com/" target="_blank"><b>TopStyle 5</b></a> is a powerful HTML5 and CSS3 editor with a variety of tools that will make your job better and easier. With <b>TopStyle 5</b>,
you’ll have access to all of the latest HTML5 and CSS3 tags and
properties, all with autocomplete. You’ll also enjoy Insight,
Inspectors, and Validators that work together to help you to master all
of the ins and outs of these new standards."<br />
<br />
<a href="http://bit.ly/topstyle5" target="_blank">Going on Sale - Soon -> $ 79 -> $39(US)</a><br />
<br />Stewarthttp://www.blogger.com/profile/16462979654570677707noreply@blogger.com0