Kudos to the Austin .Net User Group for organizing another Code Camp! I have submitted a very interesting talk (in my opinion). It is Onion Architecture for Distributed Systems.
Abstract:
Onion Architecture is an architectural pattern for keeping libraries and dependencies on the extremities of a software system while building a strong and cohesive system core. Distributed systems like those that leverage NServiceBus and Enterprise Service Bus (ESB) products have characteristics that challenge layering principles of non-distributed systems. This session will show how to properly structure and layer a .Net/C# software system that makes use of Onion Architecture, NServiceBus, and ASP.NET MVC. The target audience for this session is: C#, architect, senior engineer, team leads/lead developers.
We are gearing up another team for an exciting new software project. Working with some industry veterans, we are building a new product for a financial-sector company. We are coming on board as their software engineering department providing everything from the architecture, development, QA, and ongoing operations, maintenance, and support.
The technology platform is great, too. This system is going to have some of everything: ASP.NET MVC, some SPA, some NServiceBus, some SQL Server, some BI/big data, plenty of Azure, and rock-solid SCM/continuous delivery practices built on a bed rock of test automation.
You’ll work co-located in Austin at Clear Measure headquarters in Plaza 7000, a great, class A office building with blazing-fast internet, as many computer monitors as you want, and the latest Windows 8 machines. Ok, big company benefits, too (United Healthcare, 401k, training, etc, etc – we cover 100% health/dental/vision for employee & small premium for family)
This is one of the projects that I’ll be personally setting in motion, so let’s work on the architecture together. Give me a comment, email at jeffrey [at clear-measure.com. Maybe you are good where you are, but this is a competitive job market. If you recommend & introduce me to someone I hire, I will pay you $1,000!!
AzureAustin is a new user group that meets at the Microsoft office. It is dedicated to the mutual benefit and learning of its members. The group is sponsored by Microsoft, Clear Measure, Team Venti, Veeam, and many others.
Microsoft has been strengthening its Azure platform for quite a while now, and the capabilities are astonishing. It seems like every few months, Scott Guthrie comes out with a new blog post outlining the new capabilities that have come online.
Come to the June 17th meeting where Joe Reynolds from EPS Software will discuss Integrating source control with an azure project.
Joe Reynolds is a Senior Developer at CODE Consulting. When not working in the office, or at home, Joe can generally be found at St. Jonah Orthodox Church, or at one of the many User Groups in which he regularly participates. Recently, he accepted a board position with the North Houston .NET User’s Group and is the Chair of the IT advisory board for Lonestar College.
Since around 2005, I, and teams I’ve led, have been using the Tortoise flavor of source control clients. TortoiseSVN, TortoiseHg, and TortoiseGit. Each came with the command-line client as well for specific use cases, but most of the time, we used the Windows explorer shell integration. To this day I’m using TortoiseGit with GitHub, BitBucket, and Team Foundation Service+Git. It works well with all of them. I’m not sure why it took so long for me to figure out that Atlassian has a Git and Hg client called SourceTree. Here is what it looks like, and it seem to work seamlessly with my existing repositories and working copies. In addition, it integrates diffs very well so that it’s obvious right off the bat what has changed in the file.
One feature that SourceTree does not provide is explorer shell integration so that I can right-click on the repository working copy and perform functions directly from there. It will remain to be seen how often I reach for TortoiseGit with the new slick interface that SourceTree has. I’m not sure, but I don’t think it will take long to see.
Jean-Rene Roy has graciously helped to sponsor a Party with Palermo at DevTeach in Toronto. If you are not yet signed up for the conference, please head on over to www.devteach.com.
If you have already signed up, make sure to RSVP for Party with Palermo on 5/29 at 6:30PM. Also on the schedule for that evening is a .Net Rocks show just for the 10th anniversary of the DevTeach conference!
GIT works great with the new Team Foundation Service (TFSvc?). I’m an old school Tortoise guy (SVN, Hg, GIT), but I had to laugh at the little branding touch they through in when doing a pull.
Notice the Visual Studio logo in ASCII art. I’ve actually been using it for some time, but I hadn’t notice that until today.
The good news is that this is just GIT. Not some Microsoft GIT build, but it’s regular old GIT hosted for me and integrated with the other TFS features like work items, story boards, etc. All I have to have is Microsoft accounts for my team members, and it all works. We have three systems hosted here now, both code and work tracking. One is an HTML5 smart client, one is a C++ system including some MFC as well as driver code, and the third is an ASP.NET Web API system with NServiceBus back end. In short, it doesn’t matter. It’s just GIT.
I do like the work item tracking at the story level and at the task level. And the visualization works well also.
The stories are the rows on the left, and the sticky notes are the tasks that are what needs to be done for this story to be completed.
In short, they did a good job with Team Foundation Service.
On May 13, 2013, I’m launching a new user group, AzureAustin (please RSVP so we can plan food accordingly).
For those who know me, you know that I led the Austin .Net User Group for 5 years, that I was on the founding board of directors for AgileAustin, and that I co-founded AgileATX (now known as ATX Code Lunch – and superbly facilitated by Chad Myers). I’m launching this new group because the nature of the data center is changing rapidly, and Microsoft is one of the big 3 lending momentum behind the trend.
I also see the Microsoft technologist having a key role to play in the new DevOps world, and this group will be central in bringing together developers and technologist responsible for running critical software systems for their companies. By coming to together, sharing successes, and discussing challenges, we can mutually sharpen each other and learn from each other. This group is sponsored by Microsoft and will be held at the Austin Microsoft office. In addition, each month will have a food/drink sponsor for dinner.
At 5:30, please arrive for 30 minutes of networking and getting started with the food. The business meeting/presentation will begin at 6PM. We will conclude at 7:30 and have final announcements and a give away drawing.
Please share this with all you know: managers, executives, developers, I/T admins, and anyone who has a hand in developing and running business software systems. Along with Windows Azure, we will discuss all relevant topics around the technologies used to build and operate systems that can run in Windows Azure.
I look forward to seeing you there. Please contact me if you have any questions about the group, or if you would like to volunteer to help make the group better!
Today, I am here at the Xamarin Evolve worldwide developer conference. Xamarin has employees in many countries, and as far as I can tell, the company has flown most of its research & development department in to Austin to serve as speakers and staffers for the conference.
The conference has two parts, training, and lectures. The first two days are hands-on training sessions with two tracks: fundamentals, and advanced. Essentially, the fundamentals track appears to be full of long-time C# programmers who are new to the Xamarin tool and developing for iOS, Android, and Mac. The advanced track are targeted topics for folks already intimately familiar with the popular mobile operating systems.
For readers not familiar with Xamarin, this company, run by Miguel de Icaza and Nat Friedman of Mono fame, produces a stand-alone IDE for development of cross-platform native mobile apps on the Mac, and a Visual Studio extension for developing these within the Visual Studio project system.
For many years, the consumer markets have driven the mobile development technologies. The market demanded mobile applications, and the industry used the tools available to serve those customers. The cost of developing multiple code bases for the different platforms almost forced some enterprises to give HTML5 a look for cross-platform apps. There are some interesting HTML5 approaches to this, but Xamarin brings the promise of native applications to the C# developer using Visual Studio. Moreover, after researching and playing around with the product, it now appears feasible for enterprise developers to take native mobile applications in-house. The ability to use C# and Visual Studio to target iOS, and Android as well as WP8 is a game changer.
I will continue to watch this technology closely, but this is a transformative moment.
Over the weekend, I upgraded my Lenovo Yoga ultrabook/tablet to 8GB RAM and added a second SSD hard drive. First, I must give credit where credit is due. I watched this great video on YouTube that demonstrated how to do it all.
Video demonstration of second SSD install
The following was my experience, and I had a bit of difficulty in a few areas. First, in December, I purchased a Lenovo Yoga 13 from Best Buy for $999 + tax. I looked at Amazon, and Lenovo.com, but Best Buy had them for the same price and ready to go. The i7 machines were on back-order, so I took a chance on the Core i5. I have not been disappointed, actually (and I run LOTS of stuff). The base model had 4GB RAM and 128GB SSD. This laptop is super-thin, and coming from an Apple Retina MacBook Pro, I can say with a straight face that I love this laptop way more than the Apple. First, if you are going to run Windows (which I do), this thing does it better. And it’s a touch screen. And it’s a tablet convertible. And it’s light. And it’s thin. And the battery lasts all day for me.
I used a razor blade to carefully pull up the top right corer of the keyboard. There is double-stick tape under both corners, and there are small plastic catches across the top of the keyboard frame. Use something small, like a straight-head computer screw-driver to pull the top edge of the keyboard up just slightly. Don’t pull up, just release the catches. Then, as you see in the image to the right, you need to slide the keyboard up and toward the screen. There are several slides that will slide in the same direction. After you have slid the keyboard up, it will be completely released. Watch out for the cable.
Replacing the RAM
This is the easy part because if you have ever done it on any computer before, it’s exactly the same. The picture on the left shows the keyboard flipped upside down. I don’t have to detach the keyboard for the RAM upgrade. The picture on the right shows the RAM and the SSD. Note that the RAM is 1600 MT/s, and the SSD is a 1.8” chip mSATA drive. This is my first time using a hard drive that is the same size as my camera’s compact flash memory chip. It’s amazing. Everything is now a computer chip, and the fan is now the only moving part. Next, they will just figure out how to induce air flow, and then there will be no moving parts at all!
Installing the second SSD
In order to get to the slot for the second SSD (or the first), you will need to separate the top of the case from the bottom. The first step is to remove the keyboard ribbon cable. This is a very delicate cable. The black catch holds the cable in place. Use a small screwdriver to flip it up. Then, with the tiny screwdriver, ease it away using the side tabs. I took care not to touch anything metal. Then, take out all the black screws on the top that hold the aluminum plate down to the motherboard. After this step, nothing will be lose. Turn it over and using a T5 TORX screwdriver, take out all the screws on the under-side of the computer. I had to go to buy a T5 TORX driver because I didn’t have one.
With all the screws out, I started at the bottom right corner and pulled the case apart. Magnets hold this part together. There is plastic catches along the side, so you just have to give it a tug. Don’t separate it too far because there are two cables still connected. These do not have to be removed to install the SSD. Notice that the second hard drive bay is right next to the power plug. You can’t see it in this picture, but the primary hard drive “bay” is just to the left of the photo frame. I was able to twist the frame a bit to install the new SSD. Just like RAM, you insert it at a slight angle and make sure it is fully seated. My mSATA drive came with two screws. I only had to use one of them to keep it down.
Performance
The Yoga has a built-in GPU, but I don’t do gaming, so I wasn’t concerned about this. The RAM turned out to be faster than the one provided. Here were my scores before the upgrade.
Moving files to the new drive
The reason I needed a new drive was because I was out of disk space. Literally. With Visual Studio (and add-ons), SQL Server, lots of GIT and HG repositories, I didn’t have much space left. I was already using a 64GB SD card in the external slot for glacial-speed extra storage. I immediately moved my Desktop, Documents, Downloads, Pictures, and Videos folders to this new drive, along with my working folder for code repositories.
As you can see, I chose the B: drive for the new guy. I was pretty sure I would not be connecting more than one floppy disk in the future, and some older software has some hard-coded weirdness around the A: drive, so I ignore that letter.
How did I move these things, you ask? With a few clicks. When you right click on c:usersYOUMy Documents, and go to properties, you can get here and move it. Windows will automatically copy all your stuff.
This isn’t so easy with the SkyDrive and Google Drive folders. I may have to reinstall them! I don’t know yet.
Another tip on drive space is that Lenovo has a hotfix for the wonky default partitioning of the main drive. I was able to capture 6GB storage back after running this tool that sucks free space from the recovery and driver partitions. Get it here.
As many of you know, I helped start a new company at the beginning of 2013. Clear Measure is a custom software company, and we work directly with CEO/COO/President/GM types to solve business problems where custom software will be a help. To do this, we are building the company around software architects. If you have read my blog for a while, then you know my stance on non-coding architects (need not apply). If you started your career as a programmer and have progressively moved closer to the business and are currently leading custom software projects and supervising or otherwise mentoring other developers, then you might be interested in taking a look at our careers page.
We need architects across a spectrum of skills and experience ranges. If you have always been a continuous learner, you might fit right in here.
If this sounds interesting, I look forward to meeting you. Please feel free to comment here or on twitter.