The GitHub repo used in this article can be found here.
One of the lesser known features of Docker is its ability to do cloud builds based on WebHooks from GitHub and Bitbucket. Bitbucket and GitHub integration works in Docker natively so that when code is pushed to a repository, Docker will download and deploy the code and build the image on Docker hub automatically with Docker Automated Builds.
Setting it up is easy. Logon to Docker Hub, and you can select from the Create menu, select Create Automated Build.
This will take you to a page with two big buttons – one for Github and one for Bitbucket. Both work the same way – You first link your Github account with the Docker Hub account. This process is pretty straight forward. Once you link the accounts, you can now select the GitHub or Bitbucket repository you want to use. Once you select the repository, you can now create the build integration. Name the Docker Hub repository whatever you want then click Create.
Now, you can git push your app to GitHub or Bitbucket with git, and it will then trigger a build on Docker Hub. The push will need to include a Dockerfile in the root of the git repo.… Read more
I have been interested in mobile development for several years now. I have dipped my toes into the waters of mobile development here and there. Recently, I have completed my Xamarin certification exam; so now I am legit. I would just like to highlight a bit of that journey.
My interest for mobile development started after I bought my first smartphone, the Motorola DROID. Does the LG Voyager count?? Anyway, once I bought my DROID, I was in love. Besides having access to a whole app ecosystem finally, I could also create apps for my phone. So with stars in my eyes and the sky as the limit, I started digging into Android development. Android apps would require that I say hello again to my old friend Java, which I had not touched since college. Given I had been working with C# for the last few years, switching back to Java would require a bit of a mental shift especially since I would need to learn Android concepts. The end all, be all was that I read a few books, did some tutorials but honestly, I couldn’t see myself getting into doing Java development for creating Android applications.… Read more
One of the most anticipated announcements in the Docker space when it comes to building images is Multi-Stage builds because of the huge benefits it gives to CI/CD pipelines in DevOps. Before this announcement, building software in a container usually involved creating a container with all the SDK’s and compilers in the container, uploading code into the container, compiling it, creating a drop, then building another container with just the runtime that sucks in the compiled code to run. This pattern required an external tool and storage to build the container image so it was more burdensome.
Multi-Stage builds on Docker though provide a mechanism for moving the output of a build from a builder container into another container that can be used for running. Consider the following the example. This Dockerfile builds a .NET core app in one container then packages it in another.
#Builder FROM microsoft/dotnet:1.1.2-sdk-jessie COPY /myapp /myapp RUN dotnet restore ./myapp && \ dotnet build -c release ./myapp && \ dotnet publish -c release -o pubdir ./myapp #Final Build FROM microsoft/dotnet:1.1.2-runtime COPY --from=0 /myapp/pubdir /myapp ENV ASPNETCORE_URLS http://+:80 ENTRYPOINT ["dotnet", "/myapp/myapp.dll"] EXPOSE 80
This file has two FROM instructions, which in a traditional Dockerfile only one is a allowed.… Read more
With two jam-packed days in the books, only one day remained. The format for the final day of ng-conf was another single room, all day series of sessions. Much like the first day, the range of topics was both broad as they were relevant and informative. Day 3 had a few major themes expressed in the speakers’ presentations.
Brad Green and Rob Wormald presented the keynote presentation. They talked about how Angular fits in at Google. And by fit in, it is more like Google runs on Angular. Google has hundreds of its major systems running on top of Angular including data center allocations, release management, product launch approvals, and bug tracking. Google demonstrates its commitment to Angular as well as its commitment to the ecosystem around Angular.
This series of posts is devoted to all the things I wish I knew, as a long-time Microsoft Enterprise developer, before I provisioned my first xPlatform solution: The 60+ tips, tricks, and lessons learned I’ve accumulated over the last couple of years using Xamarin Forms (in Visual Studio for Windows.)
Many of these things are things an Android or iOS developer (i.e.; college student) probably already knows, but not a Microsoft developer. Some of these things will seem ridiculous to even share, and some so obvious that perhaps some developers will pretend I am the only one who didn’t already know about it. Some of these things will be super-extra important, and some will be meaningless to almost everyone. If you “lean native” you might even argue with me about some of them. That being said, here is the second batch of TTLL:
If you haven’t heard of Visual Studio Mobile Center it’s understandable. Have you heard of HockeyApp? If you haven’t heard of HockeyApp, have you heard of a Sony Walkman? Visual Studio Mobile Center is one of the coolest (and most under-marketed) “almost” brand new offerings, from Microsoft for managing mobile app development and development lifecycles.… Read more
Okay, right off the bat, I’m going to admit I’m a Microsoft “bigot” or in less unfriendly terms, a Microsoft “super-enthusiast” with severe “Microsoft is actually better at everything” leanings. I’ve spent most of the last 30 years writing Microsoft-based solutions with Microsoft tools and technologies for clients who are Microsoft “shops.” Still, to this day, I never install any non-Microsoft products on my workstations, except the (still phenomenal) Adobe Fireworks. Yes, Fireworks.
For the last four years, as a weird twist of fate, I have been creating real apps for real clients using the Xamarin platform, and more often than not, Xamarin Forms (or is it Xamarin.Forms? …I can never figure out why we need a dot although it does look cooler that way.) One thing I have noticed is that almost every blog, every post, every slice of documentation that exists for Xamarin Forms seems to be written by someone who “skews native” and not by someone in the actual Microsoft development world. I know why this is, of course, but am not going to write it out loud.
Over the last couple of years I also started to notice (mostly) Microsoft developers struggling with the same issues, the same hiccups, and doing the same things that “seemed right at the time” based on documentation, but realized one compile too late, those examples were just “examples” and not to be taken on an empty stomach.… Read more
Day 2 of ng-conf was a fair day. Multiple talks and activities took place all day long. Not being able to clone myself and see all of the discussions, I set my focus on a particular path for the day. So let’s take a look at the path I chose.
Unfortunately, the time slot for the RxJS presentation cut into this talk. I was able to catch half of the speakers, and even then, it was very informative. The format for this presentation was a series of lightning talks from representatives of multiple companies talking about how they squeeze the most out of their Angular apps. … Read more
April 5-7th 2017 marks the 4th year of the Angular conference ng-conf. This year’s ng-conf marks my first year attending, w00t w00t to that. From the first day’s rapid-fire talks, the tone of the conference, and I think for Angular in general, is set for the year. Some of the major takeaways from the first day I’ve highlighted below.
Before the keynote took place, Aaron Frost, one of the organizers took a moment to go over the code of conduct for the conference. The organizers wanted to stress the importance of creating a conducive environment for sharing and learning over the next few days. This point speaks to the overall message that the Angular community wants to convey, which is “Build with Us.” And, by providing an inviting and open ecosystem to current and new developers, they hope to grow the community.
With that theme in mind, a talk by Justin Searls focused on getting the creative juices flowing. He discussed his personal philosophy around what sparks his creativity. Justin then provided some insight into what could help others be more creative, which translates into building apps. The key takeaway from his talk was that it is okay to build software that interests individuals, reflect on one’s feelings, and finally find your outlet, whatever it may be.… Read more
Today Wintellect held a live Python jumpstart coding session for C# Developers presented by Michael Kennedy, host of the TalkPython and PythonBytes podcasts.
A couple weeks ago Michael presented Wintellect’s live webinar “Write Pythonic Code Through 5 Examples.” During this session, we found that 53% of our audience had .NET/C# backgrounds. Keeping this in mind, Michael and Wintellect decided it would be advantageous to do another Python webcast but geared to those with C# backgrounds that wanted to learn the python language. This webinar will give you a Python Jumpstart as we look at the parallels of the two languages and those concepts in Python.
Every major language or platform feature that you know and love in C# there’s a analogous feature in Python and sometimes the feature in Python is even better.
Michael started the session with a quick Python language introduction about the ecosystem. He then spent the the remaining time building a game for the audience, a version of an old pastime to many “Dungeons and Dragons”.
Following the coding session there was a live Q&A session.
We hope you find this recorded Python webinar session useful. As Michael mentions in the webcast, he will be teaching two upcoming Python workshops if you are interested in learning more.… Read more
Brad Green spent some time discussing how Google as a company is fully embracing Angular as an application development framework. In fact, the goal is to have all web application development within Google to be using Angular by the end of 2017. He also explained that it makes sense for them to invest so many resources into Angular as an open-source project because of the additional benefits to Google itself. The primary benefit is the large ecosystem that has grown around Angular. Libraries and tools would probably not exist if Angular was simply an internal Google project. In addition, Google has built several tools internally that have been reproduced in other open-source projects. It makes sense that there is benefit to sharing these efforts with the community. It also helps with hiring within Google, where proprietary in-house tools require additional training and ramp-up for new hires. And, of course, the overall quality of the source code is improved by the great feedback received from the community through PRs, documentation, and training.
Day Two changes things up from the Day One and Day Three single-track format. There are breakout sessions focused on a specific topic as well as chances to sit down and ask questions of others who have expertise in Angular, including members of the Angular team themselves. It’s a good chance to listen to how others are approaching their development challenges and opportunity to discuss lots of interesting details in depth.
The first session of the day had a few large organizations talk about the things they are doing within their organization to manage Angular projects, how they approach analyzing the performance of these applications, and what kinds of things might help them improve these operations.
In terms of analysis, there was a great emphasis on metrics (“plan and measure”). This included low level tracking of “time to first paint”, “time to meaningful content”, and “time to interactive”. But it also included higher-level tracking of things like “perceived performance” (obtaining feedback about how the user perceives the performance of the application).
Tools were mentioned that help in this analysis. The primary tool, of course, is the Developer Tools within the browser (there was a lot of praise for the capabilities of Chrome Developer tools particularly).… Read more