Articles

Faut-il adopter des outils d'IA pour votre équipe de développement ?

L’utilisation des outils d’intelligence artificielle peut offrir des avantages considérables pour votre équipe de développement. Mais faut-il les adopter ?

## Dans le contexte de l’accroissement du buzz autour des outils d’IA, de nombreuses équipes de développement se retrouvent à devoir décider lesquels leur conviennent le mieux, quand les adopter et les risques potentiels de ne pas le faire. Alors que l’IA continue à poser plus de questions que de réponses, la peur de se laisser distancer par la concurrence plane pour beaucoup.

Itamar also shares his insights on the importance of coding as a fundamental skill for developers, and how AI can help them stay ahead of the curve. Tune in to learn how to make the most out of AI tools and stay competitive in the ever-evolving tech world.

Avec l’augmentation du buzz autour des outils d’IA, de nombreuses équipes de développement se retrouvent confrontées à la difficulté de décider lesquels répondent le mieux à leurs besoins, quand les adopter et les risques potentiels de ne pas le faire. Alors que l’IA continue à poser plus de questions que de réponses, la peur de se laisser distancer par la concurrence plane pour beaucoup.

L’épisode de cette semaine de Dev Interrupted vise à dissiper ces incertitudes en accueillant le fondateur et PDG de CodiumAI, Itamar Friedman. Dans l’une de nos discussions les plus éclairantes de cette année, Itamar perce à travers le battage médiatique autour de l’IA, expliquant ce que les outils d’IA apportent à la table, comment discerner ceux qui augmenteraient vraiment vos équipes de développement et les stratégies pour identifier et expérimenter efficacement de nouveaux outils.

Itamar partage également ses connaissances sur l’importance du codage comme compétence fondamentale pour les développeurs et comment l’IA peut les aider à rester à la pointe. Écoutez pour apprendre comment tirer le meilleur parti des outils d’IA et rester compétitif dans le monde technologique en constante évolution.

Source de l’article sur DZONE

Pratiques de développement pour logiciels de qualité sup.

Le développement de logiciels de qualité supérieure nécessite des pratiques rigoureuses et innovantes. Découvrez comment les mettre en œuvre pour obtenir des résultats optimaux.

Les 10 meilleures pratiques pour développer un logiciel de haute qualité

Premièrement, l’une des pratiques les plus importantes pour le développement de logiciels de qualité est de bien documenter le code. Cela signifie que chaque ligne de code doit être accompagnée d’une explication claire et précise de ce qu’elle fait. Cela permet aux autres développeurs de comprendre facilement le code et d’effectuer des modifications en conséquence. De plus, cela permet aux développeurs de repérer rapidement les erreurs et de les corriger sans perdre du temps.

Deuxièmement, il est important d’effectuer des tests exhaustifs sur le code. Les tests doivent couvrir tous les scénarios possibles et vérifier si le code fonctionne correctement. Les tests doivent également être effectués sur différents systèmes d’exploitation et sur différents navigateurs. Les tests peuvent également être effectués sur des données réelles afin de vérifier si le code fonctionne correctement avec des données réelles.

Enfin, il est important de s’assurer que le logiciel est sûr et conforme aux normes de sécurité. Les développeurs doivent s’assurer que le logiciel est protégé contre les attaques extérieures et que les données des utilisateurs sont protégées. Les développeurs doivent également s’assurer que toutes les données sont stockées et traitées en toute sécurité et que les données ne sont pas compromises. Les développeurs doivent également s’assurer que le logiciel est conforme aux lois et réglementations en vigueur en matière de protection des données.

Source de l’article sur DZONE

Optimiser le déploiement d'apprentissage automatique : astuces et trucs

Le déploiement de modèles d’apprentissage automatique est une étape cruciale pour tirer le meilleur parti des données. Les modèles d’apprentissage automatique sont utilisés pour prédire des résultats ou des comportements à partir de données et peuvent être appliqués à des domaines variés tels que la santé, la finance, l’ingénierie et le marketing. Cependant, le déploiement d’un modèle d’apprentissage automatique nécessite une attention particulière et des connaissances spécialisées. Dans cet article, nous allons examiner les conseils et les techniques avancés pour le déploiement de modèles d’apprentissage automatique.

Le premier conseil pour le déploiement de modèles d’apprentissage automatique est de bien comprendre les données utilisées. Les données sont la base du modèle et il est important de comprendre leur structure et leur contenu. Il est également important de comprendre comment les données sont collectées et stockées, ainsi que leur qualité et leur fiabilité. Une fois que vous avez compris les données, vous pouvez commencer à construire le modèle.

Une fois le modèle construit, il est important de bien le tester. Il est important de tester le modèle sur des jeux de données différents pour s’assurer qu’il fonctionne correctement et qu’il peut être appliqué à des situations réelles. Il est également important de vérifier si le modèle est robuste et peut gérer des données manquantes ou erronées. Une fois que le modèle est testé et validé, il peut être déployé.

Enfin, une fois le modèle déployé, il est important de surveiller son fonctionnement et de vérifier si les résultats sont cohérents avec ceux attendus. Il est important de surveiller les performances du modèle et de vérifier si les résultats sont cohérents avec les données d’entrée. Il est également important de surveiller les performances du modèle sur une base régulière pour s’assurer qu’il fonctionne toujours correctement.

En conclusion, le déploiement de modèles d’apprentissage automatique nécessite une attention particulière et des connaissances spécialisées. Il est important de bien comprendre les données utilisées, de tester le modèle et de surveiller son fonctionnement une fois déployé. Ces conseils et techniques avancés peuvent aider à garantir que votre modèle d’apprentissage automatique est robuste et fonctionne correctement.

Déploiement de modèles d’apprentissage automatique : conseils et techniques avancés

Le déploiement de modèles d’apprentissage automatique est une étape cruciale pour tirer le meilleur parti des données. Les modèles d’apprentissage automatique sont utilisés pour prédire des résultats ou des comportements à partir de données et peuvent être appliqués à des domaines variés tels que la santé, la finance, l’ingénierie et le marketing. Cependant, le déploiement d’un modèle d’apprentissage automatique nécessite une attention particulière et des connaissances spécialisées. Dans cet article, nous allons examiner les conseils et les techniques avancés

Source de l’article sur DZONE

There was a point at which I was very close to losing my business, and I didn’t realize how close.

I wasn’t always a good planner, and I didn’t plan to start an agency. One day I was a freelance graphic designer, my job list grew, I hired some help, and suddenly I was managing a team.

There isn’t a guidebook for new business owners, you have to learn on the job, and there’s no one-size-fits-all approach. We expanded rapidly from two to four people, then seven, and suddenly we hit 16 employees in just 18 months. It was pretty scary and felt like driving on the freeway without brakes. A client shared a story that they were turning over $20m, and the owner was only taking home $30k. It felt like where I was headed. At that point, I could easily have lost it all.

I took a hard look at the numbers and realized that we were barely breaking even, let alone profitable. That needed to change to stabilize the business and regain control of my operations. The change wasn’t easy, and there were some hard lessons, but 11 years later, with a strong local team and 40+ awards for our work, I’m thankful for that wake-up call.

There are other people in my position struggling with the same issues I faced, so I’d like to share the four key things I did that helped turn things around and move us from surviving to thriving.

1. Don’t Diversify Your Services

I wanted to do it all, and as the business owner, it was hard to turn down a new client. Our instincts are to help, and declining opportunities feels wrong. In our industry, digital agencies, especially web design agencies, try to cover all bases from marketing, SEO, adwords, design, photography, and coding. Everyone wants to be a one-stop shop for clients. I used to be that person: I would wash your car and shine your shoes if I could.

Do not give in to that fear.

When you’re a generalist, you spread yourself too thin. I know: a decade ago, we were offering dozens of services outside of the web design realm: packaging, branding, copywriting, sticker design, SEO, hosting, analytics, you name it, we provided it. We used over seven different CMS for our projects. If a client wanted it, we tried to offer it, no matter how unsuitable it was for us.

On the surface, we fulfilled our projects, and our clients were always thrilled with the results. But below the surface, our operations were dissolving into a mess. Our eyes weren’t on the prize; we were always chasing after each little job for cash. It took too much time to learn new skills. When I looked at our timesheets and deducted the unbillable hours, our projects would hardly break even.

What hurt us even further is that with diversifying, we had to manage multiple workflows, software, and systems: Sketch, Illustrator, Photoshop, WordPress, Joomla, Drupal, Google Analytics, Final Cut Pro, etc. It was expensive with minimal return. It was like an Olympic swimmer signing up for a swimming-diving-ice-skating club when their passion is swimming.

So I took a step back. I boiled it down to what we enjoyed and excelled at. Ask yourself: for what do you want to be known? For us, it was psychology-driven, conversion-focused web design. This was the service our team had the most skills in and collectively could give the best value to our clients. Once I’d figured that out, it was easy to eliminate those other services and specialize.

You can niche down by service or industry and be the specialist in what you offer.

2. Know Your Numbers

The first red flag that my business was in trouble was when I said to my accountant, “I feel like my business is doing great.” He replied, “I don’t care how you feel. The facts are in the numbers. Show me your accounts, and I’ll tell you if you’re actually doing well.” As an intuition-driven guy, it was a real eye-opener; I’d only ever relied on gut instinct.

At one point, we had a ton of work coming in, so I hired a few juniors to help the rest of the team. The team grew to 16, and the vibes in the studio were great, but the numbers weren’t. Instead of increasing efficiency, projects took 40 hours longer than they should have done. Why? The seniors and mid-level designers were taking time out to train the juniors! Reassessing the team showed me I needed to hire experienced staff, so projects ran on time and budget. It was a hard decision but a necessary one to keep us afloat.

The crucial numbers for any design agency are your timesheets, where bottlenecks lie, how much you’re spending, how long a project takes; these determine your actual margins. Setting up quantitative software like Toggl, Gantt, and Asana were a game-changer for us. They gave our project management real purpose and potential. Knowing the average hours our primary type of project took made it easy to give clients realistic deadlines, anticipate the need for fresh hiring, and know when our plates were full. You do not want to bite off more than you can chew.

3. Become The Best Fit For Your Target Market

You can’t please everyone, and frankly, you shouldn’t be trying to. One type of bait won’t attract every kind of fish. First, identify the type of fish you want to catch, the pond where this type of fish lives, and finally, bait your hook with something that type of fish can’t resist.

Your sales team should be able to identify them instantly, and all you then need to do is streamline your team, process, and systems towards being the best fit for them.

4. Double Down On Marketing That Works

There are many different marketing avenues you can go down, but go down too many, and it becomes a tangled web of confused messaging.

Remember, just because your competitors are doing it does not mean it’s the most effective approach for your target market.

There are really only inbound and outbound types of strategies, and it’s a great idea to list out the pros and cons (and the ROI of each) concerning your target market. Or, you can approach marketing based on your existing skillset — for example, if you detest being in front of a camera and don’t want to do video marketing, then just don’t do it.

Identify what works for you, and then be consistent. Consistency is the secret to a successful marketing strategy.

Source

The post How I Saved My Design Agency & Tripled My Profits first appeared on Webdesigner Depot.

Source de l’article sur Webdesignerdepot


Every team has some level of dysfunction. And that’s normal, because teams are made of imperfect human beings. In his book The Five Dysfunctions of a Team, Patrick Lencioni identifies these five basic dysfunctions:

  1. Absence of Trust
  2. Fear of Conflict
  3. Lack of Commitment
  4. Avoidance of Accountability
  5. Inattention to Results

These dysfunctions build upon each other. A team that doesn’t trust each other is afraid to admit their shortcomings and mistakes. Teams like this aren’t vulnerable around each other. This leads to a fear of conflict, where ideas are not openly debated and bad behaviors are not called out for fear of offending someone. Rather than solving underlying problems, the team experiences growing tension manifested by occasionally passive aggressive remarks.

Source de l’article sur DZONE

1, 2, 3 – That’s exactly how long it takes you to start losing visitors if you have a slow-loading website.

Hold on! Surely, the only thing that matters to users is that your website works flawlessly and looks great… right? Wrong!

The fact of the matter is that we’ve all become accustomed to instant access to information and content. The average internet user today places a lot of value on speed, and the bar is continually being raised.

If you are like most people, you probably feel an immediate sense of dread at the thought of optimizing your website. Where do you start? How can you make the most impactful improvements? What makes your website slow in the first place?

Have no fear, as we’ll be answering all of your questions below as well as putting you on your way to a website that loads with blazing speed.

Why Should You Be Worried About A Slow-Loading Website?

Good question!

As many as 53% of visitors abandon a site that takes more than 3 seconds to load. Even worse, 1 in 3 shoppers will leave a website if it takes longer than 5 seconds to load.

So, performance plays a huge role in the user experience of your website and whether your visitors will stay on your website or be converted into customers.

For some time, Google has been keenly aware of this fact. As a search engine, Google knows that it’s counterproductive to recommend content to users if they won’t stick around to consume it.

That’s why they’ve continually been increasing the role performance plays when ranking websites for their SERPs (search engine results pages).

In recent years, Google has introduced core web vitals. These are metrics they hope will help quantify how performance affects the user experience. In general, they measure how fast, stable, and interactive a page is while loading. This will be more important than ever after Google announced its Page Experience update, which started its global rollout in June 2021.

As you may know, ranking highly for Google is vital for your website’s visibility. For one, 68% of online experiences begin with a search engine, of which Google has a 92.7% market share. Even if you manage to land on the coveted first page of Google, the first five results get over 70% of all clicks (28% to the first result alone).

So, to recap why a fast loading website is so desirable:

  • It directly affects your ability to keep, satisfy, and even convert visitors to your website.
  • It impacts your search engine rankings which impacts your “findability” and organic traffic.

8 Reasons Your Site Is Slow + How to Fix Them

O.K., so now that we’re all on the same page regarding the importance of your website performance, let’s look at common issues slowing down your website + how to fix them.

1. You’re Using A Sub-Par Hosting Service

As the party responsible for making your website available to the outside world, your hosting service can be a make-or-break factor. Not only should you pick a host that has a good track record when it comes to uptime a performance, but also one that’s suitable according to your needs.

Even if you take all the steps below to optimize your website’s performance, it may still load slowly if traffic to your website is overwhelming your available bandwidth or your host’s server capacity. If that happens, some users may experience extremely slow loading times, broken features, or even complete unavailability.

For most personal, blog, or local/small business sites, a respectable hosting provider like Bluehost or GoDaddy should be good enough. However, if you plan on running any type of large-scale, high-traffic webstore, business portal, or other type of website, you’ll want premium hosting, such as WPEngine (for WordPress), VPS hosting, or even a dedicated server.

2. You’re Not Optimizing Your Media Assets

As you probably know, media like images and videos take up significantly more space than most other types of content, such as text, code, stylesheets, or other static files. Even a single image has the potential of consisting of more data than dozens of website pages containing nothing but the underlying HTML and text.

In a Speed Essentials presentation, the Google team identified images as the largest contributor to page weight. In fact, they have the potential to consume a website’s entire performance budget if left unoptimized. Images can also directly impact all three of Google’s core web vitals – key metrics Google uses to measure the performance of a website.

However, the use of images and video is likely to continue growing, heightening the importance of finding a sustainable solution. According to HTTPArchive, images have increased by 19.3% on desktop and 42.7% on mobile.

For now and the foreseeable future, optimizing your images carries the greatest potential for improving performance.

The problem is that optimizing image assets requires multiple steps. Most importantly:

  • Using the appropriate next-gen formats which can differ depending on the user’s device, OS, or browser.
  • Appropriately compressing the size and quality of images to reduce payload without affecting visual quality too badly.
  • Using the optimal display size and density based on the accessing device to reduce payloads further.
  • Using lazy loading to only load images as needed.

As you can see, manually going through these steps for every single image on your website can be extremely labor-intensive. This is especially true if you consider that you somehow need to create the optimal variants for different users based on what device, OS, or browser they are using.

In-code strategies, like a JS plugin, responsive images, or CSS media queries tend to bloat your code and lead to other performance issues we’ll discuss below.

Luckily, there are plenty of CDN services available designed specifically for providing some degree of automated image optimization. These platforms analyze the context (i.e., a specific mobile device model, OS version, and browser version) of the user trying to load one of your images and try to serve them a version of the image that’s ideally optimized for them.

However, any media optimization platforms still require installing a small JavaScript plugin to dramatically improve the image and video optimization capabilities. 

The one exception here is ImageEngine. ImageEngine uses WURFL device-detection to pick up every possible detail of the user’s device. The logic is built into their device-aware edge servers and doesn’t rely on you adding any additional code or markup to your website pages.

So, not only does it reduce your image payloads by up to 80% and serve them via a global CDN, but it doesn’t leave a footprint in your website’s code. As a bonus, it also happens to support the widest range of image/video formats, including animated GIFs, as well as client hints and save-data mode.

3. Render-Blocking JavaScript And CSS Is Delaying Page Loads

JavaScript is the de facto programming language for adding interactivity and advanced features to websites today. Likewise, CSS is the standard for adding styling. Both are critical components for almost any modern website.

However, nothing good comes free, and both may impact the performance of your website, particularly when used carelessly. 

The following are some steps you can take to minimize the impact of these assets on your website performance:

  • Minify your JavaScript and CSS files.
  • Combine a large number of JS/CSS files into fewer files.
  • Replace some of your external JS and CSS files with inline JS/CSS. (Don’t overdo this! Inline JS and CSS is only suitable for small code snippets).
  • Defer loading JavaScript until after all your content is loaded and use media queries for CSS files.

Because media can have a more significant impact on your page weight, this leads some to believe that adding more JavaScript is the lesser of two evils. 

However, depending on whether you already have render-blocking JS, Google might flag this as a completely new issue. Regardless, it will negatively impact your performance score in tools like PageSpeed Insights:

You can avoid it altogether by using an optimization engine like ImageEngine that doesn’t require any JavaScript.

4. You’re Not Using A Content Delivery Network (CDN)

A CDN is a network of servers spread across various regions all over the globe. What it basically does is store a copy of your website on each of these servers. When an internet user visits your site, the CDN automatically serves your website from the nearest server to that user.

What this does is allow your website to load faster, no matter where in the world people are visiting it from. If your website was only hosted on a single server, say somewhere in the U.S., then it could take much longer to load for a visitor located in Asia than one in the U.S.

While they all basically do the same thing, different CDNs are better at handling different types of content. Cloudflare, Fastly, and Akamai are just some of the most popular general-purpose CDNs around. Image CDNs like ImageEngine are purpose-built to not only serve image and video assets but to also optimize them using compression, formatting, etc.

So, the two main factors to consider are the type of content you want to deliver via the CDN and its global coverage. However, it’s usually possible to use multiple CDNs in tandem to cover different types of content and reach a wider area.

5. There’s Excessive Overhead In Your Database

If you have a website with any type of complexity, you probably have a corresponding database. In fact, all WordPress websites require a database to function.

Over the years, a lot of information moves in and out of the database. Sometimes, the data can get lost along the way or become obsolete. If you don’t regularly spring-clean your database, then this can really start to add up. Not only will it bloat the storage size of your database, but it will start to impact the speed of database queries and requests.

CMS users are especially prone to racking up these kinds of artifacts from plugins and themes that have been installed and removed over the years.

Unfortunately, there aren’t many easy fixes for this issue available. With most hosting providers, you’ll probably need to use phpMyAdmin to manually check and scrub your data. If you have a managed hosting solution, the host’s support team might be able to help you out. In the event that you have a locally installed database, there are some tools you can use, although they’re not 100% effective.

The best way to avoid any issues is to make database maintenance part of your routine and to learn the basics of how databases work.

6. You Have Too Many Plugins Or Themes Installed

For CMS users, plugins or themes offer near-limitless potential to spruce up the design and functionality of their website. However, each plugin or theme comes with additional code and content that add to the overall complexity and size of your website.

If you have a hand-coded website, the same goes for any additional applets or libraries you want to add to your site. 

The best way to combat this is to be conscientious when adding any extras to your website. Only install what you really need or want, and make sure to uninstall and properly remove them if you don’t need them anymore.

As mentioned, they might leave various transients or artifacts behind, so you should keep an eye out for them throughout your website files (not just the database) whenever you do some spring cleaning.

7. You Aren’t Utilizing Caching

Caching is often one of the most effective yet ignored techniques for improving website performance. Caching stores your website content in fast-access memory in the user’s browser, allowing it to be loaded near-instantaneously by users. This can include everything from text to stylesheets to images to JavaScript files.

Without caching, a user will need to redownload everything when they navigate to or reload a page — whether or not anything has changed.

However, not properly configuring caching on your website can lead to issues, such as users only loading out-of-date content. Most high-quality caching tools have built-in features that automatically clear the cache when you make changes to a specific website page or content. So, users will only reload content once it has been modified.

Some hosts offer out-of-the-box caching tools with their hosting service. CMS can also usually find plugins for this, such as WPRocket for WordPress.

8. Ads Are Dragging You Down

In the end, ads are just another form of media that increases the overall weight of your website pages. While they are typically small and lightweight, multiple ad placements can really start to add up.

What aggravates the issue is that ads are loaded from external sources. This means they’ll take longer to render, generate more requests, and may mess with how stable your pages load — affecting your core web vitals.

Depending on how important ads are to your revenue stream, you’ll want to carefully consider how many ads you use on your site, where to position them, and when they load. If possible, avoid loading ads at the same time as the rest of your page, especially interstitials.

Conclusion

As you can see, website performance is a multi-faceted subject. Although some may be worse than others, you can’t just address one area and expect your website to suddenly be performant.

However, some general principles apply:

  • Keep HTTP requests low by limiting the number of files required for each of your website pages.
  • Maintain proper code hygiene and spring clean transients and leftover artifacts.
  • Invest in proper hosting infrastructure as well as a CDN for your website.
  • Optimize your media assets to significantly bring down payloads without sacrificing engagement.

The final point deserves another shoutout. As we’ve pointed out, finding an optimization solution for your media, particularly images, is probably the best thing you can do to improve your website performance. From purely a performance perspective, there is no service quite as effective as ImageEngine. It’s also the one that requires the least amount of technical expertise and ongoing maintenance.

Regardless, you’ll want to run some tests using tools like PageSpeed Insights so you can gather data on what issues your website is facing. From there, you can prioritize fixes to make your website more competitive.

 

[– This is a sponsored post on behalf of ImageEngine –]

Source

The post 8 Reasons Your Site Is Slow + How To Fix Them first appeared on Webdesigner Depot.


Source de l’article sur Webdesignerdepot

On June 29th, GitHub announced Copilot, an AI-powered auto-complete for programmers, prompting a debate about the ethics of borrowed code.

GitHub is one of the biggest code repositories on the Internet. It hosts billions of lines of code, creating an unparalleled dataset with which to train a coding AI. And that is exactly what OpenAI, via GitHub, thanks to its owners Microsoft has done — training Copilot using public repositories.

The chances are you haven’t tried Copilot yet, because it’s still invite-only via a VSCode plugin. People who have, are reporting that it’s a stunning tool, with a few limitations; it transforms coders from writers to editors because when code is inserted for you, you still have to read it to make sure it’s what you intended.

Some developers have cried “foul” at what they see as over-reach by a corporation unafraid of copyright infringement when long-term profits are on offer. There have also been reports of Copilot spilling private data, such as API keys. If, however, as GitHub states, the tool has been trained on publicly available code, the real question is: which genius saved an API key to a public repository.

GitHub’s defense has been that it has only trained Copilot on public code and that training AI on public datasets is considered “fair use” in the industry because any other approach is prohibitively expensive. However, as reported by The Verge, there is a growing question of what constitutes “fair use”; the TLDR being that if an application is commercial, then any work product is potentially derivative.

If a judge rules that Copilot’s code is derivative, then any code created with the tool is, by definition, derivative. Thus, we could conceivably reach the point at which a humans.txt file is required to credit everyone who deserves kudos for a site or app. It seems far-fetched, but we’re talking about a world in which restaurants serve tepid coffee for fear of litigation.

There are plenty of idealists (a group to which I could easily be accused of belonging) that nurture a soft-spot for the open-source, community-driven web. And of course, it’s true to say that many who walk the halls (or at least log into the Slack) of Microsoft, OpenAI, and GitHub are of the same inclination, contributing generously to open-source projects, mentoring, blogging, and offering a leg-up to other coders.

When I first learnt to code HTML, step one, before <p>hello World!</p> was view > developer > view source. Most human developers have been actively encouraged to look at other people’s code to understand the best way to achieve something — after all, that’s how web standards emerged.

Some individuals are perhaps owed credit for their work. One example is Robert Penner, whose work on easing functions inspired a generation of Actionscript/JavaScript coders. Penner published his functions online for free, under the MIT license; he also wrote a book which taught me, among other things, that a while loop beats a for loop, a lesson I use every day — I’d like to think the royalties bought him a small Caribbean island (or at least a vacation on one).

There is an important distinction between posting code online and publishing code examples in a book, namely that the latter is expected to be protected. Where Copilot is on questionable ground is that the AI is not a searchable database of functions, it’s code derived from specific problems. On the surface, it appears that anything Copilot produces must be derivative.

I don’t have a public GitHub repository, so OpenAI learned nothing from me. But let’s say I did. Let’s say I had posted a JavaScript-powered animation from which Copilot garnered some of its understanding. Does Microsoft owe me a fraction of its profits? Do I in turn owe Penner a fraction of mine? Does Penner owe Adobe (who bought Macromedia)? Does Adobe owe Brendan Eich (the creator of JavaScript)? Does Eich owe James Gosling (creator of Java), if not for the syntax, then for the name? And while we’re at it, which OS was Gosling using back in the mid-90s to compile his code — I doubt it was named after a fruit.

If this seems farcical, it’s because it is. But it’s a real problem created by the fact that technology is moving faster than the law. Intellectual property rights defined before the advent of the home computer cannot possibly define an AI-driven future.

 

Featured image uses images via Max Chen and Michael Dziedzic.

Source

The post Poll: The Ethical Dilemma at the Heart of GitHub’s Copilot first appeared on Webdesigner Depot.


Source de l’article sur Webdesignerdepot

Does it ever cross your mind that praise can be negative? I guess not. After all, it looks harmless and seems to be quite effective. Conventional wisdom says that if you praise people, they are motivated to do better.
People who have been praised throughout their life by their well-meaning parents, friends, and teachers for their talent and smartness or those who have experienced extreme focus on talent and smartness throughout their childhood learn to value only intelligence. No wonder when these people enter the workforce, they continue to seek approval and demand praise every step of the way.
Every opportunity is a measure of their intelligence — do I look smart, how will I be judged, what if others find my ideas dumb. With a single-minded focus on validating themselves, all their actions are rooted in establishing their worth. Every mistake hurts their reputation and every failure is a reflection of their competence. They care less about learning and more about proving themselves. Their sense of morality sometimes takes a hit as they resort to brutal behaviors — demeaning others by yelling, insulting, controlling, or taking undue credit — all in an attempt to boost their self-esteem.
Carol Dweck, professor of Psychology at Stanford University summarised this unfortunate reality from Morgan McCall’s book High Flyers:

People often like the things that work against their growth. . . . People like to use their strengths . . . to achieve quick, dramatic results, even if . . . they aren’t developing the new skills they will need later on. People like to believe they are as good as everyone says . . . and not take their weaknesses as seriously as they might. People don’t like to hear bad news or get criticism. . . . There is tremendous risk . . . in leaving what one does well to attempt to master something new.

What Do Organizations Do with Such People?

They feed and promote this mindset. They praise people for their brilliant ideas conveying the message “we value talent and smartness.” They shower people with rewards and bonuses for their achievements communicating to everyone else around “all we care about is success.”
What happens when these people take on a leadership role? Their mindset of valuing brilliance above everything else amplifies leading to disastrous results. History is full of leadership fiascos with great promises that turned out to be the biggest disasters. This article from Malcolm Gladwell in The New Yorker is as valid now as it was 18 years ago. Describing the talent mindset at Enron and the consultants at McKinsey who wandered the hallways at the company’s headquarters, he points out “They were there looking for people who had the talent to think outside the box. It never occurred to them that, if everyone had to think outside the box, maybe it was the box that needed fixing.”
He also talks about the impact of an environment that values innate talent and what happens when times get tough and that self-image is threatened “They have difficulty with the consequences. They will not take the remedial course. They will not stand up to investors and the public and admit that they were wrong. They’d sooner lie.”
Really, is praising people for their intelligence and achievements the only way to develop people who will be the leaders of tomorrow? Is there a better way out?
What if we praised people for their hard work, for their ability to persist despite failures and setbacks, for taking initiatives to build new skills, for standing up to their mistakes, for believing in their growth, and implementing the right strategies to overcome their shortcomings. What does this kind of praise tell them?
It tells them the value of effort in building abilities. It teaches them the importance of implementing the right strategies to solve problems. It encourages them to seek help to make progress on their task. It creates a passion for learning that’s not driven by the need to look smart, but with a desire to cultivate skills, to stretch themselves to grow.
When these people take on leadership positions, this mindset guides them to put the well-being of the company and its people before their own needs, to place value on teamwork over individual accomplishment, and to foster growth and development of their people.

As growth-minded leaders, they start with a belief in human potential and development — both their own and other people’s. Instead of using the company as a vehicle for their greatness, they use it as an engine of growth — for themselves, the employees, and the company as a whole.
– Carol Dweck

Unlike leaders who pull their companies down with their focus on brilliance, these leaders lead their companies into greatness and gratitude filled in their own hearts and those of the people around them.
Choose your praise carefully as you will see the tremendous benefits in praising for growth over brilliance.

When Leaders Focus on Brilliance

They live in a world of personal greatness and entitlement, vie for labels, and will do anything to boost their image. Instead of building a long-lasting company, they spend time and money on enhancing their image.
With the constant need for validation, they use people in the company to feed their egos and showcase their superiority. Everything is about pleasing the boss. They surround themselves with people who boost their self-esteem. Agreement earns them admiration and disagreement is an attack on their intelligence. Instead of hearing people out, they punish dissent and shut people down.
They pounce at the less talented for their lack of intelligence and find those who are more talented than they are as threatening. They mistreat employees, yell, insult, control and abuse them into their way of doing things. They feel better about themselves by making other people feel worse. Employees worry about being judged all the time. When people are ridiculed for mistakes, they soon learn to keep their heads down, stop putting their critical thinking skills to use, and give in to groupthink.
Their belief in their superiority blinds them to see reality. They turn a blind eye to complaints, ignore warning signs, and fire people who tell them what they don’t want to hear. Their decision-making criteria are based on what would make them look good as opposed to what’s good for the company long term.

What happens when a leader refuses to confront the brutal facts? “The minute a leader allows himself to become the primary reality people worry about, rather than reality being the primary reality, you have a recipe for mediocrity, or worse. This is one of the key reasons why less charismatic leaders often produce better long-term results than their more charismatic counterparts.
– Jim Collins

Since success and failure are a part of their identity — success means they are smart and failure means they are not — they find excuses and blame others for failures instead of taking personal responsibility. Instead of investing in the future growth of their company, they play safe with fear of failure, become less responsive to challenges from competition, go with what’s tried and tested, and refuse to take risks. Why take up the challenge that can hurt their reputation? On the other extreme, they may not shy away from crossing ethical boundaries to beat the competition at all costs. Success is what they are after and it doesn’t matter how they get it.
With more focus on talent and less on potential, they do not invest in mentoring and coaching employees. Instead of putting practices in place to develop employees and help them collaborate together, they make them compete against each other.
Carol Dweck sums up their brilliant mindset “My genius not only defines and validates me. It defines and validates the company. It is what creates value. My genius is profit. Wow!”

When Leaders Focus on Growth

They operate with a learning mode. They don’t claim to be genius but promise to invest in development, their own development, and the development of their people. The drive and enthusiasm to grow their companies make them adopt long-term strategies over short-term tactics. They aren’t in the game to boost their ego or establish their self-esteem. It’s the pure joy of shaping the future of their company that excites and motivates them. More than prestige, they are in it for the challenge.
They understand that the path to success goes through failure. Why lose the opportunity that can drive their future growth? So instead of hiding behind their failures, they face them head-on. Failures don’t define their competence, they are glaring moments of self-reflection. They are opportunities to build skills, explore possibilities, experiment, and invest in the promise of a better future.
They lead with vulnerability. They accept mistakes to shift the focus in the organization from hiding mistakes to finding solutions. When they don’t know something, instead of pretending to hide their ignorance, they say “I don’t know”. These three powerful words show humility and self-confidence. To make decisions, they invite others to share their opinion which promotes the culture of constructive criticism. Since they do not connect their identity to their opinion, more value is placed on seeking the right answers which require open disagreements and championing flexibility of opinion over their sense of righteousness.
Difficult situations make them uncomfortable, no doubt. Instead of letting their discomfort get in the way of meaningful conversations, they embrace it. They choose to look past their discomfort in the value that these discussions provide — saving a lot of time that can be wasted due to stress and anxiety that comes from misalignment of expectations and lack of clarity of purpose.
They are tough but compassionate. They do not shy away from giving critical feedback while also challenging the people in their organization to step outside their comfort zone. They empower people to make decisions with the right channels of feedback to assist in better decision-making in the organization.
Leaders with the growth mindset operate with what Lou Gerstner, who turned IBM’s fortunes around by saving it from near bankruptcy said “Hierarchy means very little to me. Let’s put together in meetings the people who can help solve a problem, regardless of position.” Not blinded by reality, they focus on finding solutions that will push their company forward. This requires keeping an open eye to change in market trends, identifying and investing in future growth areas, and taking calculated risks.
With a focus on potential and growth, they invest in identifying and building future skills of the organization — skills that will be useful during difficult circumstances giving them an advantage over the competition. They foster productivity through coaching and mentoring, place value on teamwork by encouraging collaboration and defining shared measures of success.
Warren Bennis, a scholar, author, and widely regarded as a pioneer of the contemporary field of Leadership studies, writes in Organizing Genius:

Leaders are people who believe so passionately that they can seduce other people into sharing their dream.

His most admirable view on leadership says:

Good leaders make people feel that they’re at the very heart of things, not at the periphery. Everyone feels that he or she makes a difference to the success of the organisation. When that happens people feel centred and that gives their work meaning.

What kind of leaders think like this — those focused on brilliance or the ones driven by growth?
Previously published here.

Source de l’article sur DZONE

Just like a tortoise hides inside its shell and a porcupine’s sharp quills leap to attention when they sense danger, we human beings also put on protective armor when we feel threatened. Risky situations, anxiety from the unknowns, and the danger of being exposed evoke the same emotional response as the fear of being chased by a predator. 

We feel vulnerable. But instead of embracing vulnerability, accepting our fears, and leading with curiosity, we put on a shield of protection. We project confidence even when we are scared, speak with surety even when we are unsure, hide our mistakes with the fear of disapproval and avoid confrontation to save ourselves from the risk of emotional exposure. 

Source de l’article sur DZONE