#INNOVATION – 4 tips for working as a #StartUp within a large #organization

Hola!

Raise in a large company with startup or agile mentality is not always easy. If the company has thousands of employees and several years of experience, you’ll often find a middle and upper Management layer who always try to use the “known formulas” to lead teams. This is not a problem (as my mother used to said: “if it works don’t touch it“), although this way of think is usually a stopper when it comes to propose changes and try to tests new frameworks. The friction and problems of communication with this layer of Management in the long run end up eroding and ruining internal initiatives.

If you face this situation, there are a series of proven strategies to grow in “StartUp Mode” within a large organization.

· Adopt a [Blue Ocean Strategy], this is almost mandatory. The book is easy to read (250 pages) and basically presents the following idea: at the time of choosing strategies, we must move away from saturated markets (Red Ocean) where you will find a lot of competition and move to new markets and new ideas (Blue Oceans) that are much more stable and to ensure us a major tour. This ensures a minimum of internal competition, thus avoiding the “red oceans” (you get the blood idea?) If in addition, the chosen strategy can bring benefits to the organization, it is almost certain that the internal problems will be minimal.

· Shield your team to other areas of your organization. While I’ve not said, I assume that the team chosen to carry out this new idea, is supposed to be a small one. If the team should start to grow and interact with other areas, it is very likely that something starts to smell bad. Experience has taught me, that in such situations “everyone has something to say“. Keep a shielded team with a clear vision, helps not to corrupt the final vision.

· Take your time and set a target clear with all members of the team. In his book “The Lean StartUp“, Eric Ries writes [“All innovation begins with vision. It’s what happens next that is critical“]. For this to involve all members of the team at a meeting of definition of objectives, helps to ensure the proper understanding of the long-term goal to be pursued.

· Learn that “Good enough” is usually better than “Perfect”. This is another lesson learned based on errors and failures. Trying to create an MVP that allows to collect, with the least possible effort, the maximum amount of knowledge will allow us to work in a dynamic of Continuous Feedback, and this is the perfect operational model for these teams. Fall into the mistake of creating a “perfect” product from day one, leads to an excessive consumption of resources will not compensate at the end when it evaluates the same.

This experience is given most of software development projects. But as all kinds of projects, they require a certain sequence and Cadence to begin to evolve and give results.

Saludos @ Madrid

/El Bruno

References

– Blue Ocean Strategy http://www.amazon.com/Blue-Ocean-Strategy-Expanded-Uncontested/dp/1625274491

– The Lean StartUp http://www.amazon.com/The-Lean-Startup-Entrepreneurs-Continuous/dp/0307887898

– Mínimum Viable Product https://en.wikipedia.org/wiki/Minimum_viable_product

[Tags Innovation, Lean, Blue Ocean Strategy, MVP, EnglishPost]

#VS2015 – Create a #Vsix installer for the Delete all comments in a file with #Roslyn sample extension

Hola!

Some people asked about how hard is to create an Installer for the simple in the post “#VS2015 – Delete all comments in a file with #Roslyn”. Is very easy, so I´ll write a couple of posts with the answer to the question and also later, on how to publish this one to the Visual Studio Gallery.

Let’s start from last post, we go back to the source code and we found 2 projects:

ElBruno.RemoveComments, Roslyn source code to delete all comments

ElBruno.RemoveComments.Vsix, this project is our main one, is the one in charge to create the VSIX package

We need to edit the manifest to define the properties of our extension. The main fields I’ll complete are these ones:

Product Name, Product Id, Author, Version, Description, Language, Preview Image: easy very easy

License: I’ve created one in Creative Commons official page. I copied the generated license in a text file and added into the solution.

Icon: thanks SyncFusion Metro Studio 3 !!!

Getting Started Guide, More Info URL: Easy again, a couple of links to my blog

Important: If you need more information about these fields, please go to MSDN [VSIX Manifest Designer] in the references section.

Let-s go to generate our VSIX package, let´s build the Project in RELEASE mode, and we can get the installer in the output folder

When we run the Vsix Installer, we’ll see the information defined in previous steps.

And a couple of seconds later, we get this extension up and running in our IDE !!!

I’ll describe the steps on how to publish to Visual Studio Gallery, in a future post

As always, source code available in GitHub https://github.com/elbruno/Blog/tree/master/ElBruno.RemoveComments%20V02

Saludos @ Madrid

/El Bruno

References

– Delete all comments in a file with #Roslyn https://elbruno.com/2015/08/17/vs2015-delete-all-comments-in-a-file-with-roslyn/

– MSDN VSIX Manifest Designer https://msdn.microsoft.com/en-us/library/ee943167.aspx

– Creative Commons CC BY http://creativecommons.org/examples#by

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

#VS2015 – Associate Recent WorkItems, very useful extension if you perform #CheckIn actions again and again with the same WorkItem

Hola!

Again Visual Studio Extension Friday. Today’s extension is very useful when you perform Check-ins associated to the same WorkItem again and again. I learn the WorkItem id number, and I quickly add it into the Pending Changes panel, or can search for the WorkItem using a WorkItem Query. Anyways this extension make the CheckIn process much faster.

The extension display the latest 5 WorkItems used in the current Team Project, and you can choose to associate your CheckIn action to these WorkItems, or even open them.

Like always, a quick video is the better explanation.

Enjoy your weekend!

Saludos @ Madrid

/El Bruno

References

– Osiris Associate Recent WorkItems https://visualstudiogallery.msdn.microsoft.com/3fa82205-e0f0-4874-a38b-023435fa2802

#VS2015 – This is the only way you´ll add comments in your code #EmojiVs #VSGallery

Hola!

Source Code seems to be one of the most popular topics in my blog, today is … different.

You have only one reason to add comments, and I mean ONLY ONE: GitHub’s EMOJIs in VS IDE.

Something like this …

Download you can get the VSGallery installer and also GitHub source code location.

Saludos @ Málaga

/El Bruno

References

– Visual Studio Gallery, EmojiVS https://visualstudiogallery.msdn.microsoft.com/88575465-8486-4c5a-8406-05e8d1d5b09d

– GitHub, EmojiVS https://github.com/jbevain/EmojiVS

– Borrar todos los comentarios en un clic con Roslyn https://elbruno.com/2015/08/17/vs2015-borrar-todos-los-comentarios-en-un-click-con-roslyn/

#GITHUB – #Intel released the #SourceCode of Stephen Hawking’s speech recognition app

Hola!

When you are on holidays you must face the hard choice: run 10K or get into some amazing piece of source code. This one is very interesting, is Stephen Hawking’s speech recognition app developed by INTEL. The app name is Assistive Context-Aware Toolkit (ACAT), and as you probably already know it was created for Stephen Hawking who is affected by LS (amyotrophic lateral sclerosis), The main goal of the app is perform a face analysis and generate text based on facial gestures.

The main source code of the app is on GitHub (link). And you can download the code very in a couple of clicks. However I strongly recommend spend some time with the User Guide (link), so you can understand the prerequisites needed and the configuration steps.

The 2 main Options are download the app or download the source code. Previous image shows my choice.

Now I need to find some time to dig into the app, and probably write some posts.

So far, I read and understand that the app has 3 main components:

– The app perform face analysis using a webcam, that’s the entry point to start the “word translation from face gestures”

– There is a predictive engine to help in the Word autocomplete

– There is also a virtual keyboard (?)

I can quickly find 2 of them in the Source Code. And, of course, this is not an “everyone’s app”. The main purpose of put the source code available, is to get support from the community to improve the app. Sai Prasad said:

“Our hope is that, by open sourcing this configurable platform, developers will continue to expand on this system by adding new user interfaces, new sensing modalities, word prediction and many other features”

Saludos @ Malaga

/El Bruno

References

– Stephen Hawking’s speech software is now available for free http://www.theverge.com/2015/8/18/9173041/stephen-hawking-intel-github-speech-software

– Intel just open sourced Stephen Hawking’s speech system and it’s a .NET 4.5 Winforms app that you can try for yourself http://blogs.msdn.com/b/cdndevs/archive/2015/08/14/intel-just-open-sourced-stephen-hawking-s-speech-system-and-it-s-a-net-4-5-winforms-app.aspx

– ACAT Release page https://github.com/01org/acat/releases

– ACAT User Guide https://01.org/sites/default/files/documentation/acat_user_guide.pdf

#VS2015 – Delete all comments in a file with #Roslyn

Hola!

Today is time for some Roslyn code, one more time to delete all the comments in a C# source code file. The step by step on how to create a project of Roslyn, is in the references section in [Roslyn – Creating an enter and initialize field refactoring]. For this sample, we will seek comments elements in a C# source code file. To do this, in the entry point [ComputeRefactorUsing], we’ll look for items with the type SyntaxTrivia. This will run from the current cursor position with the DescentantTrivia() function (line 18)

SyntaxTrivia type elements identify everything that is “not important for the compiler” like jumps of line, comments, etc. (yes, I know you must kill me after the previous statement) In this sample, we will validate that there are elements of the type comments to show the option in the IDE (line 24). Then we will call the command [Remove comments] and associate it with a RemoveAllComents() operation. In this operation, we will again get all elements of type SyntaxTrivia and process them at the level of the document root with the ReplaceTrivia() operation. In one of its overloads, this operation uses 2 parameters to process the replacement.

For this example, we will just replace the line if the Trivia is of the type SingleComment or MultipleComment (line 40). Replace this line by a jump of truck and we can give for closed operation.

In the following video we can see 2 animations, where the 1st one executes the code in the sample, and the 2nd shows a Preview of a replacement eliminated all elements of type SyntaxTrivia.

The sample code can be downloaded from GitHub at https://github.com/elbruno/Blog/tree/master/ElBruno.RemoveComments

Saludos @ Madrid

/El Bruno

References

– Roslyn https://github.com/dotnet/roslyn/wiki/Roslyn%20Overview#syntax-trivia

– Roslyn – Creating an introduce and initialize field refactoring http://trydis.github.io/2015/01/03/roslyn-code-refactoring/

– Roslyn SyntaxTrivia https://github.com/dotnet/roslyn/wiki/Roslyn%20Overview#syntax-trivia

– Roslyn ReplaceTrivia()http://source.roslyn.io/#Microsoft.CodeAnalysis.CSharp/CSharpExtensions.cs,b3247464908d9e7a

– Roslyn SyntaxFactory http://source.roslyn.io/#Microsoft.CodeAnalysis.CSharp/Syntax/SyntaxFactory.cs

#VS2015 – Solution Load Manager extension, if you are dealing with tons of projects, this will help you

Hola!

Again Extension Friday. If you work with Solutions with plenty of Projects, you will find this one very useful. Most of the times, you don’t need to have all the projects loaded, so this extension allows you to define the behavior used by Visual Studio 2015 to load the projects. In [Tools // Options] you can choose between 4 options for this behavior. Default option is “DemandLoad”, I’ll go for “LoadIfNeeded”, and I’ll go later on more details about each option.

Let’s go to a sample for better understanding. WE can work with a solution with 6 projects with the following relationships between them.

If we need to work in [SlnSample_1] Project, we only need 2 projects, we don’t need all of them. If we enable the option “LoadIfNeeded” we will this in the Solution Explorer after loading the solution.

We only have active the Default Project, and if we build [SlnSample_1], other Projects won’t be loaded.

In the following video, I choose another Project which also load only the References Projects.

This is all based on the extensibility Options for a Solution, defined in MSDN (link):

· PLP_DemandLoad (the default): when a solution is opened, projects are loaded asynchronously. If this priority is set on an unloaded project after the solution is already open, the project will be loaded at the next idle point.

· PLP_BackgroundLoad : when a solution is opened, projects are loaded in the background, allowing the user to access the projects as they are loaded without having to wait until all the projects are loaded.

· PLP_LoadIfNeeded : projects are loaded when they are accessed. A project is accessed when the user expands the project node in the Solution Explorer, when a file belonging to the project is opened when the solution opens because it is in the open document list (persisted in the solution’s user options file), or when another project that is being loaded has a dependency on the project. This type of project is not automatically loaded before starting a build process; the Solution Load Manager is responsible for ensuring that all the necessary projects are loaded. These projects should also be loaded before starting a Find/Replace in Files across the entire solution.

· PLP_ExplicitLoadOnly : projects are not to be loaded unless the user explicitly requests it. This is the case when projects are explicitly unloaded.

Enjoy your weekend!

Saludos @ Madrid

/El Bruno

References

– Solution Load Manager https://visualstudiogallery.msdn.microsoft.com/fdf5d407-62f9-4588-961a-f7445cbbf0e0/view/Reviews

– MSDN Manage Project Loading in a Solution https://msdn.microsoft.com/en-us/library/ee462384.aspx?f=255&MSPPError=-2147217396

#WINDOWS10 – #IoT Contest, amazing prices like a trip to NY or Rome to Maker Faire

Hola!

Let’s move on with some more news for Windows IoT Core. Todays is a nice one, a IoT contests with focus on Home Automation solutions with Windows 10 and Raspberry Pi 2. You can check out the main rules in the link below, I really like the prices, like the invitation to go to the Maker Faire in New York or Roma.

The contest is (of course) promoted by Windows 10 team and also by Hackster.io. So you know, now is time to pick up your RPi2 create something cool !!!

Saludos @ Madrid

/El Bruno

References

#VS2015 – Observer Pattern the easy way with #NuGet and #CSharp 6 features

Hola!

These days I’m dealing with a Winforms app who needs tons of love (Thanks Tori!). I’m slowly addidng some stuff like IoC, and I get to a point where I need to upgrade the current implementation of Observer for a better one. Lucky for us, in Net Framework 4.0 the MS team added the cool IObserver<T> interface, however there is some code to be written. And let’s be honest, someones already did it 😉

After a quick search, I found a very cool NuGet package [SimpleBroker]. And the better way to explain the use is with a sample.

In this sample, I have a main view which displays the messages sent from others views. In ugly design mode, probably will be similar to this one.

The Message class is the one, used for communication and it only have 2 properties

In the Send Message view, the Click() event, will create and Publish() an instance of Message.

The main view, has other stuff to do

1. In the Load() event, let’s start a subscription for objects of Message type

2. The subscription will be handled in OnNext(). Which will show line by line the received messages

3. We will close the subscription in the event Closed()

4. in the button Click() we will create and display a new instance of the Send Message view

And using, Bodies Members and String Interpolation the code is very clean, only 25 lines.

Note: Thanks to C# 6 

A live action demo

2015 08 12 Observer

And the Source code in >> https://github.com/elbruno/Blog/tree/master/WindowsFormsApplicationObserver

Saludos @ Madrid

/El Bruno

References

– El Bruno, C#6 Expression Bodied Members https://elbruno.com/2015/07/30/vs2015-c6-using-expression-bodied-members-hell-on-earth/

– El Bruno, C#6 String Interpolation https://elbruno.com/2015/04/20/vs2015-string-interpolation-vs-string-format-your-team-will-love-you/

– MSDN IObserver<T> https://msdn.microsoft.com/en-us/library/dd989239(v=vs.110).aspx

– GitHub SimpleBroker https://github.com/iac249/SimpleBroker

#WINDOWS10 – W10 #IoT Core update and new deploy process

Hola!

New post for Windows 10 and Raspberry Pi 2 series

1. Hardware and software

2. Boot from SD card in the device (obsolete)

3. Hello World mode!

4. Visual Studio deployment process and Web Management app

5. Hello Blinky !!!

6. Some admin tasks, like change password and change name

7. List of connected devices in the Raspberry Pi 2

8. Deploy an app using the deploy package

9. Different behaviors for an App based on the app architecture

10. WindowsIoTCoreWatcher.exe does not start and how fix it

11. W10 #IoT Core update and new deploy process

A couple of days ago, there was an important update on the Windows IoT Core materials. If you are using Windows 10 and Raspberry Pi 2, you should update your local installation files and also review the deploy process for the SD Card *the one I described some months ago in the 2nd link).

Now you must perform the following steps

– Download the new ISO from this link.

– Mount the ISO, I get the F: disk 😉

– Run the msi file – installer

– If you already have tested this new Windows IoT core version, you’ll get the following message

Another version of this product is already installed. Installation of this version cannot continue. To configure or remove the existing version of this product, use Add/Remove Programs on the Control Panel.

– Is time to remove the old files

– And Start the installation of the new bits for Windows 10 Core Installer for Raspberry Pi 2

– Once the installation is complete, a cool tip is to remember the installation path [c:Program Files (x86)Microsoft IoT]

– Now we can create a new Windows 10 IoT Core image in the SD card for the Raspberry Pi 2. We need to launch the app WindowsIotImageHelper, which is “available” in the Installed programs section on the new Windows 10 Start Menu !!!

– I prefer to go directly to the installation path [c:Program Files (x86)Microsoft IoT] and launch the app.

– So, let’s select our SD card, and also we must select the correct image to be used from [C:Program Files (x86)Microsoft IoTFFURaspberryPi2flash.ffu]

– You have to be brave enough to go on …

– The app … launches the commands in a command prompt 😉

– And a couple of seconds later, we have a the new Windows 10 IoT core image in the SD to be used in our Raspberry PI 2

Saludos @ Madrid

/El Bruno

References

– Windows IoT Devices http://ms-iot.github.io/content/en-US/GetStarted.htm

– Windows IoT Core Project Templates https://visualstudiogallery.msdn.microsoft.com/06507e74-41cf-47b2-b7fe-8a2624202d36

– VIDEO English, Microsoft Virtual Academy, A developers Guide to Windows 10 http://www.microsoftvirtualacademy.com/training-courses/a-developers-guide-to-windows-10

– VIDEO Spanish, Windows 10 Developer Readiness [Spain] https://channel9.msdn.com/Events/MVP-Virtual-Conference/Windows-10-Developer-Readiness-Powered-by-MVPs/Spain