A simple approach to software development

A simple approach to software development

Development

Setting up your software development for a new application there are quite a few set of software developers that tend to jump on their machine and begin coding.  I would strongly suggest that an application which could be successful needs to start from thought to paper (even electronic) before any new code is typed.

Now as some suggest creating designs or layouts are the best method for them and sometimes that does make sense.  Creating a sketch board  or laying out the screen design is a simple way to visually see what you want to achieve.

Here are the steps that you can use when you are preparing to create a new application.

Sitting at a table or desk
Using white boards do help when you plan to get your thought on to the board for the initial start of the project.  You can quickly put down what your clients (consumers) wish to have or to fulfill their needs.  Simple step is to list all of the pieces in bullet point what you think the client is expecting from your application.

Always remember that developers can write a great application that nobody wants.

Flowcharts
Yes this is one of computer 101 concepts that no software developer wishes to use any longer but if you set up a general flowchart it will show you things you did not think of.

Screen Design
Screen layouts are extremely important, it gives the visual aspect on what the application will look like.  The best thing is that it could be done on paper without using a computer.  Sure it looks like stick men but it does show the layout that you think clients will be happy with.

Data Model
This is essential if you plan on having some sort of database manager that will capture the information entered with your application.  A proper data model will show exactly what you think each table and record size will be.  The database manager is another piece where you must either sell to the client on a robust database or a small foot print.

Know your customer
Sitting with your clients or consumers or customers, you need to understand the business.  You may not be a retail sales guru but you have to understand what the client wants and possibly increase business.  This does not mean as a software developer you need to allow the client overrun the project where your team gets the blame for it falling apart but you have to understand how the client starts and ends the day.

Team work
The biggest and one of the most difficult piece is to have the presentation in front of the software team.  You must be prepared to accept criticism from your peers.  They may see something you did not see or whether there is a market for your application.

Starting a new application for a market can be either a hard task or you can set up a plan that will get you to the end line quickly and successfully.

Visual Studio 2017 Version 15.3 Released

Visual Studio 2017 Version 15.3 Released

Visual Studio 2017

For Visual Studio 2017 version 15.3, Microsoft focused on improving accessibility, particularly using Visual Studio with the most popular screen readers. Microsoft made over 1,700 improvements but if you are using Visual Studio 2017 in a low-vision or no-vision mode, a lot has improved.

Couple of the more major things Microsoft improved.

  • Debugging is much more accessible. Debugger windows like the Call Stack, Locals, Autos, and Watch windows were inaccessible to screen readers. That’s now fixed.
  • The VS editor’s text adornments let developers know about features available at particular points on a line of code, such as breakpoints, lightbulbs, and error and warning “squiggles.” Customers can now discover and navigate between these adornments via the new “Show Line Annotations” command set, which you can find on the editor context menu.

In addition to accessibility,  many fixes for reliability issues to improve performance, many of which were reported through report-a-problem. Here are some of the more notable ones that had high votes that were fixed:

  • A crash that could occur in C# and VB projects when editing linked files, files in Shared Projects, or files used in projects targeting multiple runtimes.
  • A race condition when debugging C# or VB projects that could cause Visual Studio to crash when ending the debugging session.
  • A crash in C# or VB projects when malformed metadata is encountered in the code file.
  • A crash that could occur when compiling a local function in C#.

Additional key improvements

  • Azure Functions Support. 
  • Broad Azure sign-in support.
  • Improved container support.
  • Continuous Delivery Tools now included.

For the full list of improvements check out the release notes for Visual Studio 2017 version 15.3.

Amazon’s Alexa and Microsoft’s Cortana are going to work together

Amazon’s Alexa and Microsoft’s Cortana are going to work together

Phone

Amazon and Microsoft announced on Wednesday that they’ve been working on a partnership to allow their respective voice assistants, Alexa and Cortana, to speak to one another.

Starting later this year, owners of Amazon Echos and other Alexa-powered devices will be able to say: “Alexa, open Cortana” to start querying Microsoft’s voice assistant. Owners of devices running Microsoft’s Windows 10 operating system will be able to summon Alexa via Cortana in a similar manner.

Why would customers want that — especially with the relatively clunky nature of the necessary voice command? The companies say that each voice assistant has its strengths — features like Microsoft Outlook and Exchange email integration for Cortana and smart-home controls or shopping for Alexa — and that customers of both companies would benefit from an integration.

It’s not clear if the two assistants will share voice data in an effort to make each digital assistant smarter. But there is the hope that someday these artificial agents will be intelligent enough to route requests to the best virtual assistant for the task without a specific “Alexa” or “Cortana” command.

What about Apple ?

The new partnership throws a wrinkle into the narrative of the emerging world of voice assistants, where Microsoft, Amazon, Google and Apple have been competing to build the operating system of the future. Google, of course, has Google Assistant built into the Google Home speaker as well as select Android phones. Apple’s Siri has been the digital assistant inside iPhones for years and will power the forthcoming HomePod.

Amazon CEO Jeff Bezos and Microsoft chief Satya Nadella told the New York Times they would welcome such cooperation. But, as the Times notes, such a future may be unlikely since Google and Apple see their AIs as key differentiators for their mobile phone operating systems.

As Windows always wanted was to have a house completely working with their OS so now that you have Alexa involved or linked that dream may come true.

New WinDbg debugger available in preview!

New Microsoft debugger WinDbg available in preview!

Debugging Tools for Windows

Preview

Microsoft is excited to announce a preview version of a brand new WinDbg a Windows debugger.  WinDbg has more modern visuals, faster windows, a full-fledged scripting experience, built with the easily extensible debugger data model front and center.

Things to know

  • Installation - You can install the WinDbg Preview from the store if you have Windows 10 Anniversary Update or newer at https://www.microsoft.com/en-us/store/p/windbg/9pgjgd53tn86 – WinDbg Preview uses some features from the Windows 10 Anniversary Update, so that’s required for now.
  • Feedback - Familiarize yourself a bit with the Feedback Hub!  Microsoft will be using the Feedback Hub to help prioritize what you want Microsoft to work on! The Windows Insider website has a great overview on how to give good feedback – https://insider.windows.com/en-us/how-to-feedback Once you’ve read that, just hit the ‘Feedback Hub’ button on the home ribbon.
  • Questions - Send feedback in the Feedback Hub, or tweet @aluhrs13 for answers. A FAQ on the blog sometime in the upcoming weeks will be posted.
  • Documentation - Microsoft has some early documentation up on MSDN that’s preliminary and subject to change at https://go.microsoft.com/fwlink/p/?linkid=854349, you can give Microsoft feedback or propose edits to that documentation by hitting “Comments” or “Edit” on any page. Keep your eyes on the MSDN blog – https://blogs.msdn.microsoft.com/windbg – for more updates and tips.
  • Videos - You can view on Channel 9 studio with recorded episodes of Defrag Tools to help explain some of the basics of WinDbg Preview.
    • Defrag Tools #182 – Basics of WinDbg Preview and some of the features
    • Defrag Tools #183 – WinDbg Preview and a quick demo
    • Coming Soon – Defrag Tools #184 – A walk through the scripting features in WinDbg Preview

Restrictions and other things worth noting

  • At this point in the preview, Microsoft is only offering WinDbg Preview through the Windows Store. That means only devices running Windows 10 Anniversary Update can install it.
  • You might hit errors when trying to do something that requires elevation. You’ll have to manually launch WinDbg Preview elevated.
  • The concept of a workspace is going to be changing a lot. A workspace in WinDbg Preview is vastly different from one in WinDbg. The MSDN documentation linked above has more information.

NYPD dropping Window Phone for iPhones

NYPD dropping Window Phone for iPhone

Phone

A New York Post report that one of Microsoft’s more celebrated U.S. business customers for Windows Phone is dumping the platform raises some interesting questions about Redmond’s future mobility plans.

The Post reported on August 28 that the New York Police Department (NYPD) is going to scrap the 36,000 Nokia phonesrunning the Windows Phone OS that it has been rolling out for the past two years.

Microsoft dropped support for Windows Mobile 8.1 in July 2017. But the two handset models the NYPD purchased, the Lumia 640XL and Lumia 830, both were among the Windows Phones that were upgradable to Windows 10 Mobile. (Of these two, only the newer 640XL will also be eligible for the coming Fall Windows 10 Mobile update, however.)

As of October 2016, the NYPD was planning ot migrate to Windows Phones running Windows 10 Mobile. But the New York Post is reporting that the NYPD, instead, is likely to move to iPhones by the end of this calendar year.

Microsoft has been working to get out of the phone business for the past couple of years. The company is not currently manufacturing any new Windows Phones. And Windows Phones that are still being used won’t get the Windows 10 Fall Creators Update coming out later this year. Instead, some subset of existing models will only get something internally known as “Feature 2,” which is believed to be a dead-end branch of Windows 10 Mobile.

So if NYPD does not share Microsoft’s mobile productivity as well as the other features, is there any point in keeping the Windows Phone alive and compete against Android and iPhone ?

At the moment the Windows Phone user base sold since 2016 is less than .5 percent while 99.6 percent are purchasing Android and iPhones.  Maybe the writing is on the wall that this is a dead product and time to put it to rest.

IDERA, Inc. Acquires Sencha to Strengthen Developer Tools Business

IDERA, Inc. Acquires Sencha to Strengthen Developer Tools Business

Idera

IDERA, Inc., the leading provider of database, development, and test management tools, today announced an agreement to acquire Sencha, a leading web application development platform. Sencha will be integrated with Embarcadero, IDERA, Inc.’s developer tools division.

The press release can be view at BusinessWire about this purchase in detail.  Now the question is what will happen with moving this product into the Embarcadero Developer product line ?   How does this affect the Rad Studio products that deal with the enterprise ?

Sencha provides software tools to build web applications across desktops, tablets and smartphones.  How will this work with FireMonkey is the real question.  The pricing structure for Sencha is extremely high for up to 5 developers.

Atanas Popov has been quoted “Sencha matches our mission to deliver agile development tools to our growing global community of developers,” said Atanas Popov, General Manager of Embarcadero. “It broadens the languages we support by adding JavaScript, and delivers broad synergies with our existing product portfolio. For example, Sencha Ext JS will provide a powerful Web Framework for Embarcadero’s RAD Studio to complement our native frameworks, including VCL for Windows and FMX for Mobile.”

Embarcadero has recently added CData support tools to allow access for VCL and FMX applications to use. So the idea of allowing Ext JS to have a IDE plug-in is not far off since it does have Visual Studio support.  What does this mean for other software products such as Elevate Software Web Development, no one knows.  This is a pretty major step so now let’s see what happens in the near future.  Based on Idera’s track record this will be a long term project to get all members on the same page.

 

Expert Delphi by Paweł Głowacki

Expert Delphi by Paweł Głowacki

 

Expert

After reading the latest book from Author Pawel Glowacki the feeling of fresh FireMonkey Delphi material left an excellent karma.  It should be part of anyone’s Delphi Library since it has great reference material.  The book was written by Pawel Glowacki whom is Embarcadero’s European Technical Lead for Developer Tools.

The book begins with a basic primer on Delphi helping you get accustomed to the IDE and the Object Pascal language.  It quickly moves into advanced concepts dealing with FireMonkey.  You should be able to build server-side services, create new Internet of Things (IOT) and integrate your applet with web services to deploy them to market.

As always the pricing from PackT is on the mark.  The writing is very clear at 506 pages and does come with the eBook Format for those wanting that instead of print.

Pawel touches FireDAC which is the database component to gain access to various databases.  DataSnap as well as Rad Server which allows your software to request data from a secured environment.  Finally the pieces alone on FireMonkey are well worth the price.  It takes you from installing, preparing and developing a smart phone applet.  There is a section on deployment to the various platforms.

FireMonkey is RAD

Working with Delphi VCL and FireMonkey provide any software developer to quickly build a solution for either clients or market.  The Delphi library on the FireMonkey side is growing and with the ability of building Linux server command line applications it is opening new doors.

You can visit the Embarcadro web site for additional information pertaining to either the C++ or Delphi or Rad Studio which includes both compilers.  The other thing to know that you will need the enterprise addition to create Linux applications as well as DataSnap.

You can visit the Packt web site to check the table of contents but Baron Software highly recommends to purchase a copy.

Half of Windows 7 machines do not run AV software

Half of Windows 7 machines do not run AV software

AV

It has been disclosed by Microsoft that Windows older desktop operating systems remains more vulnerable to malware as of today.  The majority of users are still running older versions of Windows, without necessarily using up to date security software which is Anti-Virus packages.

In its latest Security Intelligence Report, the company revealed that among all Windows 7 and Windows Vista PCs reporting statuses other than “Protected” to Microsoft, more than half of them have no type of protected software installed at all, which is pretty massive.

Starting with Windows 8, Microsoft decided to turn on Windows Defender by default when no other anti-malware software is present. The majority of unprotected Windows 8 and Windows 8.1 PCs have their anti-malware software turned off. “This is not always deliberate: a number of prevalent malware families are capable of disabling some security products, potentially without the user even knowing,” explained Microsoft. The situation is not that much better with unprotected Windows 10 PCs: A big chunk of those machines are running with out-of-date signatures, and a significant part of the user base is also lacking full protection due to real-time monitoring being “snoozed.”

Anti-Virus packages not installed mostly in Russia

In this other image, you can see which are the countries and regions with the highest percentage of computers reporting as protected by real-time security software in March 2017: these include Finland (92.%), Portugal (90.3%) and Denmark (90.2%).

AV

 

If your PC is connected to the Internet, it’s worth reminding that it’s always recommended to install Windows security updates and make sure that your antivirus software is up to date. We invite you to check the full report for more insights about the latest security threats.

Baron Software does recommend to use Symantec Anti-Virus as well as MalwareBytes to at least reduce the amount of possible attacks.  Finally you must be very careful when reading emails and not to open up attachments from users you do not recognize.

C# 8.0 Previewed

C# 8.0 Previewed

Originally written in www.infoq.com, some amazing stuff coming down the pipe for C#.

Nullable Reference Types

We’ve covered nullable reference types in the past, but briefly the idea is that reference types would no longer be nullable by default. Instead, you have to explicitly mark them as nullable using the same “Type?” syntax that you use for nullable value types.

Assigning a null to a non-nullable reference type will be a compiler warning. Likewise, reading from a nullable type would be a compiler warning unless the variable in question was explicitly checked for null ahead of time. So theoretically the only change developers need to make is to sprinkle question marks where appropriate.

Since our report, a new syntax was added to this feature. Consider a scenario where you know that the nullable variable x isn’t actually null, but you can’t prove that to the compiler. In this case you can use x!.Method() to suppress the compiler warning about potential null reference exceptions.

Async Streams (a.k.a. foreach async)

Async streams are the asynchronous equivalent of IEnumerable. As we reported before, async streams is something that they’ve been working on since 2015. After much debate the syntax they settled on is:

foreach await (string s in asyncStream)

When defining an async iterator, you would use this function signature:

async IAsyncEnumerable<T> MethodName()

As with normal IEnumerable methods, you can use “yield return” to build the stream of objects in a lazy fashion.

The benefit of using this instead of IObservable<T> from Reactive Extensions is that the consumer controls the flow rate. This is referred to as a “pull model”. By contrast, IObservable<T> is a “push model”, which means the producer can flood the consumer with a higher flow rate than it can handle.

Default Interface Implementations

Default interface implementations are essentially a limited form of multiple-inheritance. This will allow abstract interfaces to fully define methods just like abstract classes. However, abstract interfaces will still not be able to declare constructors or fields.

Note: You can simulate fields on an interface using ConditionalWeakTable.

The primary benefit of default interface implementations is that you may be able to add new methods to an existing interface without breaking backwards compatibility. This isn’t guaranteed, as it would only work when a suitable default method can be devised.

This is a very controversial feature. We won’t repeat the arguments for and against it here, but you can read a summary of them in our earlier article on default interface implementations.

Extension Everything

A long-time complaint about C# was that you could write extension methods, but not extension properties. In fact, there is no way to even define an extension property or event using the current pattern. Additionally, putting extension methods in static classes feels ‘weird’ to many people.

Under the new design, there is a new top-level construct called an “extension”. For example, if you want to create extension methods and properties for a Customer class you would write:

extension CustomerExt extends Customer {
    //methods and properties go here
}

As with interfaces, you cannot define instance fields in extensions but you can simulate them using ConditionalWeakTable. You can also define static fields.

Extension Interfaces

Extension interfaces, the ability to add new interfaces to existing classes, is also being considered. This would not be a C# 8 feature though, as it would require changes to the underlying runtime.

Kaspersky Lab Has Been Working With Russian Intelligence

Kaspersky Lab Has Been Working With Russian Intelligence

U.S.  intelligence agencies have turned up the heat in recent days on Kaspersky Lab.  The Moscow-based cybersecurity giant long suspected of ties to Russia’s spying apparatus.

It has been announced that Russian cybersecurity company Kaspersky Lab boasts 400 million users worldwide. As many as 200 million may not know it. The huge reach of Kaspersky’s technology is partly the result of licensing agreements that allow customers to quietly embed the software in everything from firewalls to sensitive telecommunications equipment—none of which carry the Kaspersky name.

Now, official Kremlin documents reviewed by McClatchy could further inflame the debate about whether the company’s relationship with Russian intelligence is more than rumor.

The documents are certifications issued to the company by the Russian Security Service, the spy agency known as the FSB.

Unlike the stamped approvals the FSB routinely issues to companies seeking to operate in Russia, Kaspersky’s include an unusual feature: a military intelligence unit number matching that of an FSB program.

“That strikes me as much more persuasive public evidence,” said Paul Rosenzweig, a former deputy secretary for policy at the Department of Homeland Security. “It makes it far more likely that much of the rumor and uncertainty about Kaspersky are true.”

The Investigation will continue.