Showing posts with label Other. Show all posts
Showing posts with label Other. Show all posts

Monday, October 31, 2016

VSTS - Scheduled release, Azure and XCode build

One more month, one more exciting release of Visual Studio Team Services.
These are my top 3 new features of this month:

Multiple schedules in releases

Want to schedule your releases to be created more than one time in a day? You can now configure multiple scheduled triggers in a release definition.



Simplified Azure endpoint creation

In an earlier sprint, VSTS team made it easier to create a new Azure Resource Manager service endpoint from Team Services. That experience only worked in accounts that are backed by an Azure Active Directory. In this deployment, they are bringing the same simplified experience for all the other accounts that are not backed by an AAD. So, if you are a MSA user and have an Azure subscription that you would like to deploy to from Team Services, you can create an Azure endpoint without having to run tedious Powershell scripts or following a blog.



Xcode 8 signing and exporting packages in the Xcode Build Task

The Xcode build task now supports building your projects using Xcode 8 automatic signing. You can install the certificates and provisioning profiles on the build server manually, or have the task install them by specifying the File Contents options.


Xcode 8 requires specifying an export options plist when exporting an app package (IPA) from an archive (.xcarchive). The Xcode task now automatically identifies the export method if you are using Xcode 8 or Xcode 7. You can specify the export method or specify a custom plist file from the Xcode task. If you are using an Xcode version older than Xcode 7, the task falls back to using the old tool (xcrun) for creating the app package.


Monday, September 5, 2016

About Xamarin build (again)

Back in April, in one of my posts (read it here) I explained  that it was no more necessary to  include the "Xamarin License step" when building Xamarin solutions using the Hosted Agents.

Starting from now, it is no more necessary to include this step for every Xamarin builds, for both Hosted and personal agents.

Indeed, as reported on the new Visual Studio Team Service update: 

The Xamarin License step is no longer necessary and has been removed from the build templates shipped with VSTS and TFS 15. As part of this effort we will also deprecate the task. All build definitions that use this task should be updated to remove it in order to prevent any disruption when the task is finally removed.

Have good builds ;)

Friday, April 29, 2016

About Xamarin build with VSTS Hosted Agents

Last friday (22/04/2016), during an event organized by DotNetToscana, I had a talk about the build of Xamarin apps with Visual Studio Team Services' Hosted Agetn 

To make the build works, I had to add two tasks to manage the Xamarin License to the build definitoin: one to activate the license and another one to deactivate it after the build operation. 

There is a small (and big at same time) news about these two tasks: they are no more required now. 
Indeed, with the most recend update of the VSTS platform, the Hosted Build Agents have already an internal Xamarin license which is automatically activated when they have to perform some build opreations against Xamarin projects. 

So, to sum up, if you have or want to create a Xamarin build definition (and use VSTS Hosted Agent) now you don't have to add the license activation and deactivation tasks anymore. 

Have a good build :)


Thursday, August 20, 2015

Welcome BugGuardian

Someone of you has maybe noticed the I did only few post in the last months. This happened because of two main reasons.

The first one is, as some of you already know, I moved in another country far away from home, with a completely different culture and language, to start a new adventure. This inevitably took a lot of time from the already small amount of spare time I have.

The second reason I wasn't so active here, that is also the reason of this post, is that I worked on a new project that I have released today: BugGuardian.

What is BugGuardian
BugGuardian is an Open Source library, written in C# like Shared Project, that allows to easily create a Bug work item on your Visual Studio Online account or on your on-premises Team Foundation Server 2015 in the case your application throws an Unhandled Exception.
It can also be invoked manually in try/catch blocks to keep track of handled exceptions.

It supports applications written with the .Net Framework v4.0 and above, and it can be used on every kind of project, including:
  • Asp.net
  • Asp.net MVC
  • WPF
  • Windows 8 / 8.1 Apps
  • Windows Phone 8 / 8.1 Apps
  • Universal App
  • Universal Windows Platform Apps (Windows 10)
  • and so on...

As I mentioned, it is OSS so you can find the sources on GitHub.

To let you install and use it without having to build the sources by your own, I have published it on NuGet. Just search for BugGuardian in the Package Manager GUI or run the following command in the Package Manager Console:
Install-Package DBTek.BugGuardian

Usage, support and Feedback
Refer to the project documentation to find examples about how to use this library. You can also find some code samples in the TestApps folder.

Anyway, just to make an example and to show it's really simple to use, this is the code you need to manage an exception and to open a Bug on your VSO / TFS:

using (var creator = new DBTek.BugGuardian.Creator())
{
    creator.AddBug(myException);
}

If you encounter any issue using this library, please let me know through the Issues page and I'll fix the problem as soon as possible!

I'm waiting for your feedback :)


I want to thank you my friend and fellow MVP Marco Minerva (@marcominerva) for the support, the patience and the Code Review.

Tuesday, May 14, 2013

Free technical e-book on the Microsoft platform


While a lot of information on application development is available on the internet and in books, that information is becoming harder to digest. If you do not enjoy reading several 500+ page books, or scouring the web for relevant blog posts and articles, you have come to the right place.
Syncfusion publishes the Succinctly series concise technical books that target developers working on the Microsoft platform. Each book is around 100 pages and is guaranteed to enlighten you on the topic of interest. Download a copy, get a cup of your favorite beverage, and enjoy!

Saturday, December 1, 2012

Media sources

I decided to put together a reference post for when you're looking for stock photos, clipart, audio, music, or video. I will update this post as I am made aware of new sources.


Icons, Illustrations, and Photos
The Noun Project
http://thenounproject.com

IconFinder
http://www.iconfinder.com

Icons 8
http://www.icons8.com/

The XAML Project
http://www.thexamlproject.com/

SyncFusion Metro Studio
http://www.syncfusion.com/downloads/metrostudio

266 Icons
http://raphaeljs.com/icons/

Windows 8 App Icons
http://codefoster.com/win8icons

morgueFile
http://www.morguefile.com

iStockphoto
http://www.istockphoto.com

Corbis
http://www.corbis.com

Open Game Art
http://opengameart.org

Audio
freesound.org
http://www.freesound.org/browse

Incompetech
http://incompetech.com/music/royalty-free

Video
none yet

Thursday, April 23, 2009

Uninstalling System Center Essential (SCE) 2007

If you’re evaluating SCE or plan on moving SCE to new hardware it is important to understand how to correctly remove SCE from your environment prior to starting a new installation. We have performed many reinstallations while developing our SCE installation procedures and I thought I would share the steps.


Delete SCE Managed Computers Group from Active Directory

Start > Run > dsa.msc
Right-click on DomainName and click Find…
Type SCE Managed Computers into the Name box and click Find Now
Right-click SCE Managed Computers in the results pane and click Delete
Close Active Directory Users & Computers


Delete Group Policies

If you performed a default installation of System Center Essentials you will have two group policy objects that were automatically created for you. Follow these steps to delete the group policies.

Start > Run > gpmc.msc
Expand DomainName > Group Policy Objects in the left pane
Right-click SCE Managed Computers Group Policy (…) and click Delete
Right-click System Center Essentials All Computers Policy and click Delete
Close Group Policy Management Console


Delete Service Connection Point (SCE)

The following procedure requires ADSI Edit.

Start > Run > adsiedit.msc
Right-click ADSI Edit in the left pane and click Connect…
Select Default naming context in the Select a well known Naming Context box and click OK
Right-click Default naming context in the left pane and select New > Query…
Type SCESCP in the Name box
Click the Browse… button, select DomainName , and click OK
Paste (&(objectCategory=serviceConnectionPoint)(cn=SCESCP)) into the Query String box and click OK
Highlight and then expand Default naming context in the left pane
Select SCESCP in the left pane
Right-click CN=SCESCP in the middle pane and click Delete
Leave ADSI Edit open for the next step


Delete Service Connection Point (SDKServiceSCP)

Right-click Default naming context in the left pane and select New > Query…
Type SDKSCP in the Name box
Click the Browse… button, select DomainName , and click OK
Paste (&(objectCategory=serviceConnectionPoint)(cn=SDKServiceSCP)) into the Query String box and click OK
Highlight and then expand Default naming context in the left pane
Select SDKSCP in the left pane
Right-click the appropriate CN=SDKServiceSCP entry in the middle pane and click Delete

Identifying the appropriate entry to delete in step 7 above requires finding the entry that corresponds to the name of the SCE server to be removed. Look at the distinguished name column in the middle pane to locate the right computer name.

Thursday, March 5, 2009

Transparent redirect (HTML)

Sometimes we have to create a redirect for a web application or a web site. Usually, the browser address bar change its text, so users see the redirection.

But there is a very simple way to redirect user to another site/domain without the change of the address bar: just create a page like this

<html>
    <head>
    </head>
    <frameset>
        <frame name="main" src="http://www.newdomain.it">
    </frameset>
    <body>
    </body>
</html>

PS: There are some other ways to do this, but all uses javascript. This is the only method that doesn't use scripts or other.

Thursday, January 15, 2009

Mounting CdRom on SCO/Unix

After the creation of the folder as mount point with mkdir    /mnt/cdrom, we have to find the "phisycal" name of cdrom unit. To do it, go to device folder with

cd   /dev/cdrom

and then type

ls

to view the name. For this example, assume c0b0t6l0 as the device name

So, the mount command is:

mount   -r   -F   cdfs   /dev/cdrom/c0b0t6l0   /mnt/cdrom

Friday, September 26, 2008

Unzipping a zip file with subfolder with SharpZipLib and VB.net

Unzipping routine using ICSharpCode (IC#Code) released open source dll, called SharpZipLib (#ZipLib), downloadable here


Imports ICSharpCode.SharpZipLib.Zip
......
If File.Exists(fileName) Then

    destPath = fileName.Substring(0, fileName.Length - 4)

    If Not Directory.Exists(destPath) Then
        Directory.CreateDirectory(destPath)
    Else
        For Each s As String In Directory.GetFiles(destPath)
            File.Delete(s)
        Next
    End If

    Dim inStream As New ZipInputStream(File.OpenRead(fileName))
    Dim outStream As FileStream
    Dim entry As ZipEntry
    Dim buff(2047) As Byte
    Dim bytes As Integer

    Do While True
        Try
            entry = inStream.GetNextEntry()
            If entry Is Nothing Then
                Exit Do
            End If

            If entry.Name.Last() = "/" Then
                Directory.CreateDirectory(destPath & "\" & _
                entry.Name.Replace("/", "\"))
            Else
                Try
                    outStream = File.Create(destPath & _
                    "\" & entry.Name, 2048)
                    Do While True
                        bytes = inStream.Read(buff, 0, 2048)
                        If bytes = 0 Then
                            Exit Do
                        End If
                        outStream.Write(buff, 0, bytes)
                    Loop
                    outStream.Close()
                Catch
                End Try
            End If
        Catch
ex As ZipException
            rtn += ex.Message & vbCrLf
        End Try
    Loop

    inStream.Close()
Else
    rtn = "File '" & fileName & "' not found."
End If

Tuesday, May 27, 2008

Word 2007 OOXML Tags

Developing a program, you may need to save datas in different formats, like excel or word...
Saving text in word format it's quite simple, but do it in word 2007 format (.docx) it's different (it uses xml). Formatting this text is more difficult, 'cause format tags isn't well documented. This is why i put some of them above.

<p>text</p>
<w:p><w:r><w:t>TEXT</w:t></w:r></w:p>

<br />TEXT
</w:t></w:r><w:br /><w:r><w:t>TEXT

Bold
<w:r><w:rPr><w:b /></rPr>TEXT</w:r>

Underline
<w:r><w:rPr><w:u w:val="single"/></rPr>TEXT</w:r>

Italic
<w:r><w:rPr><w:i /></rPr>TEXT</w:r>

Colors
<w:r><w:rPr><w:color w:val="FF0000" /></rPr>TEXT</w:r>

Thursday, May 15, 2008

OpenVPN on PFSense: Site to Site

Assume this scenario:

Office1 LAN: 192.168.0.0/24
Office2 LAN: 192.168.1.0/24

We have to configure the PFSense server to connect this two networks.
One office will be the VPN server, the other will be the VPN client

NB: if you also have a VPN access for road warriors configured, don't change the existing configuration but add a new tunnel.

Office1 configuration
Let's configure Office1 as server.
From “VPN à OpenVPN” menu, select “Server” tab and click on “+”.

Use TCP protocole and, if you have other VPN tunnels, set a diffrent port (in this example i use the port 1193). Obviously we have to creat a firewall rule to permit WAN connection on this port.

“Address pool” must be an independent subnetwork, diffrent from both subnetwork in Office1 and Office2.

In “Remote network” area set the subnet of Office2.

Now we have to generate the “Shared key”. Log into the PfSense server of Office1 via SSH, type “8” (shell) and then use this command:

# openvpn --genkey --secret shared.key

This command creates a new shared key for this OpenVPN server. Then copy the content of shared.key file into the Shared Key WebInterface box and press “Save”.

We have to copy this shared key to use it later on the Office2 server.


Office2 configuration

Let's configure Office2 as client.

From “VPN à OpenVPN” menu, select the “Client” tab and click on “+”.

Use the “TCP” protocol.

“Server address” must be the public IP of Office1.

“Server port” is the connection port for the VPN set on the Office1 PfSense (in this example 1193.)

“Interface IP” must be the IP address of local LAN.

“Remote network” must be the IP address of the Office1 LAN dell’Ufficio1.

Paste the previous generated shared key into the shared key box and then click on “Save”.

Now the VPN tunnel between this two offices should be “up and running”.