Developers divided after Microsoft’s acquisition of GitHub

The image of an editor that is hostile to the open source community still sticks to Microsoft’s image for some developers.

These people have a very negative view of the repurchase of the GitHub code repository and are already preparing to switch to GitLab or BitBucket. Others take into account the radical shift towards open source made by Satya Nadella, CEO of Microsoft.

Some even predict the death of the code-share site. As expected, epidermal reactions immediately followed the announcement of the takeover, although rumors that had been circulating for a week reduced the surprise effect.

Several developers have stated that they will immediately abandon the Git-based open source repository (version management software designed by Linux creator Linus Torvalds). The two main competitors, GitLab and BitBucket, are ready to open their arms.

Will GitHub evolve like Skype or Mono?

Some of the developers who are worried about the acquisition talk about how Microsoft has made Skype evolve, which they say is poor. The open source software purchased in 2011 has gone from being a peer-to-peer communication tool to a cloud solution.

This is an analogy that others refute by considering that it is more logical in this case to refer to the acquisition of Xamarin whose team created the Mono open source development framework. According to them, the latter did not suffer the consequences of the purchase by Microsoft, but quite the opposite, according to some. Mono allows C# developers to write multiplatform code for Windows, MacOS, Linux, Android or iOS. Whether or not it is a sign of their desire to inspire confidence in developers, it is Nat Friedman, CEO of Xamarin and familiar with the world of open source, to whom Microsoft has entrusted the management of GitHub.

Many private repositories in GitHub

From Apple to Microsoft, Amazon, Google, Facebook or IBM, everyone uses GitHub to store code and collaborate privately in their software. But among them, the main contributor to the site hosting code is Microsoft, so keep in mind those who find it logical to see the editor of Redmond take the initiative. Since GitHub seemed destined for acquisition anyway (absence of CEOs, financial problems, and other problems), others were also interested.

In a tweet, a developer participating in the Windows Insider MVP program imagines with humor what another acquirer might have done: with Apple, projects limited to XCode, with Google, ads everywhere, with Facebook, sharing data with all projects, etc.

Microsoft has embarked on some of its most important GitHub projects under open source license, including PowerShell, the .NET framework and the Edge JavaScript engine, the website recalls.

Among the issues raised by the acquisition, a professor at the University of Ghent points out that many companies pay to work collaboratively on GitHub in private repositories. He considers it was potentially damaging that GitHub has sold its platform to a potential competitor of these companies. For him, this is an abuse of trust and is not considered a healthy situation, even if Microsoft is a good steward of Github’s legacy. Others point out to him that Microsoft will not venture to break this trust because that would wipe out the service. In comparison, Netflix is hosted by AWS, which in turn has a service that competes with Prime Video.

Coding kids

Different Apps For Teaching Children Coding

It is difficult to imagine a career in today’s world that doesn’t require some coding. Every element in our digital world has some form of coding to make it operate. Coding, also known as programming, is all around us – this is why children need to be taught coding. Programming is no longer the realm of skinny 20-year-olds, but it is now possible for children to learn to code. This article will provide information on the different apps for teaching children coding.

App #1: Gamestar Mechanic

Gamestar Mechanic is a type of app that is available online and costs $2 per student. It is designed for children aged 7 to 14 and helps students build their video games. Students can enjoy completing various self-paced quests while continuing to build game levels. This app integrates problem-solving tasks with critical thinking. Embedded within Edmodo makes login simpler for students.

App #2: Scratch

Scratch is another type of app that is available online, but it is free for each student. Created by MIT staff and students in 2003, Scratch is one of the first programming apps created specifically for students aged 8 to 16. This app was originally used as a multi-platform download, but it developed into a web-based option to make the item more accessible.

Scratch utilizes a visual programming language credited with bricks that need to be dragged into a workspace, thus animating sprites. The different bricks create variables, trigger loops, play sounds, initiate interactivity, and do much more. Teaching communities, guides, and resources are part of the app and can help instruct the student in how to utilize the bricks.

App #3: Tynker

Tynker is an educational app that is similar to Scratch. It is available online and is free to use, but comes with a Premium upgrade alternative. The layout is almost identical to Scratch; however, where Scratch was developed to program, Tynker teaches children programming. This particular app presents with beginner lesson plans, an online showcase of student-developed programs, and management resources for the students. The lessons are self-paced and simple to follow so that the children can move through the lessons without any assistance.

App #4: Move The Turtle

Move The Turtle is a coding app available on the iOS platform and costs $2.99 to purchase. This is one of the more popular apps among Apple users because it utilizes a character to teach the children computer coding. As the student progresses through the levels, the game increases in difficulty. This means that they are presented with a new command to direct the turtle towards an element, such as a sound, star or line. Free play “compose” modes allow the pupils to move the turtle wherever they want, but this does not affect their position in the “game.”

App #5: Hopscotch

Another educational coding app available on an Apple device (the iPad), but that costs nothing is Hopscotch. This app appears similar to Scratch using controls to drag blocks into workspaces; however, it is run on an iPad and Scratch is web-based. Hopscotch is one of the basic apps to learn programming, problem-solving, and logical thinking. If the pupil wishes to learn more extensive coding, he or she will need to implement another app option.

coding free training

How To Find Sites That Will Teach You Coding For Free

Knowing how to code is something that has outstanding earning potential. There are many high-paying jobs in the IT industry, so there’s no wonder this has become such a desirable skill. If you also want to get a programming job, you need to choose a specific language and learn it very well. Unfortunately, such training is expensive, so you may want to start by finding some sites that will teach you coding for free. This article shows you how.

The first and foremost thing you need to do is to decide which language you’d like to learn. You can browse jobs websites, to assess the value of various coding skills and abilities. As a general rule, back-end developers earn more than front-end coding specialists. Nonetheless, if you want to have an easier time at learning how to code, you may want to go for PHP, JavaScript or Ruby on Rails. There are many free websites you can use to learn the basics of these languages.

top 4 websites to trainThe easiest way to find these sites is to perform a search in your favorite search engine, be it Yahoo, Bing, Google or Duck Duck Go. Don’t forget to include the name of the programming language you want to learn, as this can make a huge difference when it comes to the quality and the relevance of the results.

There’s no doubt you’re going to find at least a couple of websites to teach you coding for free. However, you’ll need to give them a try to find the one that suits you best. You may have to create a free user account, but this shouldn’t be a big problem. Just do it and follow a few lessons to see whether they deliver the information in a style that suits you.

The other method to learn to code for free is to join websites that teach you the skills you need, whether they are free or paid. Most of them allow you to cancel your membership within the first two weeks or one month, so you won’t have to spend a dime on your education, provided that you can learn the basics within this time frame. You may also want to keep an eye on the various promotions of teaching websites like Udemy. Sometimes they offer their courses for free for a limited time, to attract new users. All you have to do is to subscribe to their newsletters and watch your inbox. Next, take advantage of your free trial to learn whatever you want.

Always keep in mind that learning how to code isn’t too complicated, yet improving your skills takes much practice. You have to put your knowledge to good use by developing some cool projects. Like this, you’ll have the opportunity to deepen your knowledge, as you’ll need to find solutions to various problems and challenges that are inevitably going to occur. The more projects you tackle, the better you’re going to become. From this point on, you can safely start applying for coding jobs.

learn php quickly

Where To Find A Good Introduction To PHP Coding

PHP is one of the most sought-after programming languages. Many prominent websites use it, WordPress is based on it, so there no wonder PHP knowledgeable experts are in high demand. Such coding skills can land you a very nice job. What to do, though, when you have the desire to code but you lack the skills?

Today is a good day to start!

php code on websiteThe answer is simple; start learning PHP today, and you’ll benefit from it tomorrow. If you are a beginner, you should seek for an excellent introduction to PHP coding to start with. The good news is that you’ll find useful resources online. Many of them are free of change, so you won’t have to enroll in a paid course to learn this language. Just use your favorite search engine to see what you can find. Search for resources for beginners. It’s always better to start by learning the basics before moving on to more complicated things. Like this, you’ll have a solid foundation you’ll be able to build on. If you start by trying to understand complex functions, you may have a hard time at improving your coding abilities.

Once you find some websites where you can learn the basic syntax and the main PHP functions, you’ll need a project to implement them in. Without this, you’ll never learn proper coding, as you’ll forget everything very quickly. You need practice to fix the acquired skills in your brain and to learn how to overcome various challenges that may arise. If you don’t have a specific project to work on, you should seek for websites that enable you to write code and see the results on the spot. These websites provide the users two boxes, one for typing in the code, and the second one for viewing the result. This is an excellent method to debug your code without having to ask other coders for help.

Help is available everywhere

If you need help as you progress in your learning, you should search for blogs of professional coders and subscribe to their feeds or take a look inside their archives. You’ll find valuable bits of information that may help you solve various problems and debug your code. PHP is relatively easy to learn and understand in comparison with other programming languages.

If learning online isn’t your cup of tea, you may want to search for some PHP coding books for beginners. These books have a significant advantage that they include exercises and tutorials. By doing these exercises, you can understand even complex functions of the PHP language. Nonetheless, you have to be genuinely motivated to stick to these exercises until you understand all the code in detail.

Last but not least, don’t forget that you have many affordable options for online courses. You can find such a resource on Udemy and many other similar websites. These video tutorials are usually excellent, as experts create them with many years of coding and thousands of projects in their work portfolios. Join them and learn PGP coding from the best.

passwords and encryption

Secure passwords with hashes and salts

As we all know, the purpose of a password is above all to remain known to a person or a group of persons. Its disclosure then leads to the complete loss of its effectiveness and safety. When the password becomes known to a third party, the latter may, for example, appropriate rights over an application and compromise its normal operation. A password is extremely sensitive and coveted by hackers, regardless of the application that uses it.

What is a password?

Metaphorically, a password can be perceived as a critical opening door(s) to the one who holds it. Thus, this user appropriates additional rights that other people do not have. It is then up to him not to disclose it so that an evil third party does not misappropriate the privileges conferred on him.

When one / several passwords must be saved in an information system (database, configuration files…), it becomes more complicated. Indeed, security is only for one person but now depends on the security of the information system itself (physical access, identifiers to connect to it) as well as on the way these passwords are stored in the IS.

Password security in an information system

It is evident that increased password protection in the information system must be put in place. The storage of passwords in clear text in the information system then becomes impossible. Why? Why? Let us take the typical case of a database in which are stored the identifiers of the users of an extranet of a company. This implies that there is a security policy with several levels of rights.

A technician will not have the same privileges on the application as his superior. The latter will also not have the same rights as the Director of Human Resources or the CEO. In this type of application, the password is the guarantor of data security. We must, therefore, protect it assiduously. Encryption then becomes indispensable.

Why encrypt sensitive data?

The answer is simple. This is to keep confidential the password that has been assigned to the user outside of the application. There is also a part of deontology insofar as even the person in charge of the application should not have to know the personal identifiers of the users. It’s none of his business. Let us return to our example.

Extranet also means access to the application from the Internet. The data must then be encrypted via a secure HTTPS connection and the application protected against possible hacker access. Let us suppose that this extranet was poorly written and that it contains a SQL injection flaw. A hacker could then retrieve the passwords stored in the database and enter the application without any problem with the CEO’s credentials. If passwords are encrypted, it will be much harder for the hacker to retrieve their plaintext match. In this example, the attack comes from the outside but what if the weakness of the system is inside?

Indeed, let us suppose that it is necessary to maintain the database by connecting directly to it. The company that edited the application sends its database administrator into intervention. This technician intervenes on the spot but is not at all part of the company which uses the application. She’s going to manipulate the database. That is, she will most likely be able to see everything inside… including the login credentials. If the passwords had been recorded in plain text, he could have appropriated the accesses of any user on the extranet application… Nevertheless, nothing prevents him from creating a new user with all the rights directly in the database. We will, therefore, see later that traditional encryption is not enough to strengthen the security of a password.

Encryption methods

There are many of them. This can range from encryption algorithms (which can be decrypted with the appropriate algorithm and key) to hash algorithms. It is the latter that we tend to use today. Indeed, a hash algorithm can encrypt a string without the possibility of reverse operation. The hash result usually produces a single, fixed-length string. This is the case, for example, with MD5 and SHA1 algorithms. Thus, during an authentication phase, two passwords are no longer compared in plain text but two hashes of the password.


Migration from PHP 4 to PHP 5

PHP 4 support is a thing of the past. It is therefore becoming urgent to migrate to PHP 5 because in 2008 no new version of PHP 4 will be released (support will still be provided on security vulnerabilities until 08/08/2008).

The compatibility between PHP 5 and PHP 4 has been a major concern during the development of PHP 5, and a large majority of applications should be able to run on PHP 5 without problems, or require only minor modifications. There are however some differences and we will try to summarize them here to allow you a simple migration.

Why migrate?

New features
Better performance
Better security
Better stability
PHP 5 is strongly supported

What has changed with PHP 5?

the redesign of the PHP core which allows a complete support of object-oriented programming
XML support redesign
SQLite embedded database integration
integration of new extensions (JSON, Filter, ZIP, …)
the emergence of a common basis for managing database calls: PHP Data Object (PDO)
the use of object reflection ( introspection)
exceptions have appeared in PHP5
an E_STRICT error level has been added
appearance of the SPL (Standard PHP Library), a collection of useful internal classes

Although most existing PHP 4 scripts should work, it is worth noting some major differences that can lead to errors or different behaviors:

Object management (referencing)
the redesign of DOM support with the abandonment of the DomXML extension
MySQL extension is no longer included by default
new error mode E_STRICT
The new object model

The main novelty of PHP 5 is certainly the new object model. Object processing has been completely rewritten to achieve better performance and more functionality. To date the object model of PHP 5 is close to that of Java, it thus results from it a certain number of innovations: magic methods, visibility, (was already present in PHP4, the novelty it is the destroyer or more generally the magic methods), encapsulation, cloning, interfaces, abstract classes…

Objects are passed by reference

In PHP 4 the entire object was copied when it was assigned or passed as a parameter to a function. In PHP 5 objects are referenced by a pointer and not their value (one can think of a pointer as an object identifier).

Pass an object by reference

Objects are no longer passed by value but by reference. The result is that once transmitted to a function, a PHP 5 object will see its values evolve while in PHP 4 it is a copy that will be modified within the function, the original object will remain unchanged.

In PHP 4 to make an object pass as reference we could do it by prefixing the variable with the sign”&”. Test our Xxxx example by removing the”&” in the declaration of the “fctActionObject()” function, you will see that in one case the”$b” object is modified and in the other it is not (and because the modification was made on a temporary copy).