Le podcast Java en Français

Les Cast Codeurs est un podcast en français de, par et pour les développeurs.

Prenez connaissance des dernières nouvelles de la sphère Java et du développement en général. Plongez sur un sujet précis avec les épisodes interview.

Supportez les radotages de vos hôtes : Emmanuel Bernard (JBoss, Hibernate), Arnaud Héritier (CloudBees, Jenkins), Guillaume Laforge (Google, Groovy), Antonio Goncalves (freelance, auteur), Vincent Massol (XWiki, Maven), Audrey Neveu (Streamdata.io, Devoxx4Kids).

LCC 173 - Fais tourner la Hash Table

Audrey, Guillaume et Emmanuel vous parlent de serverless, de sécurité, de calculs de disponibilité, de hash table et d'autres sujets tip top.

Enregistré le 13 juillet 2017

Téléchargement de l'épisode LesCastCodeurs-Episode-173.mp3

Comment faire un crowdcasting

News

Langages

Java 9 et Jigsaw passent le JCP
No swan song for Java: 10 influencers weigh in on its reputation, rivals and adoption

Matériel

le simulateur d'ordinateur quantique d'Atos
Intel Skylake/Kabylake et le bug dans l'hyperthreading

Middleware

Les framework Java populaires selon Redmonk
Spring Cloud Function
Les nouveautés de JPA 2.2
Le guide de developpement asynchrone avec vert.x
AWS Lambda et Java
Elastic Stack 5.5.0
Des tests d'intégration avec Elastic

Web

Release de JHipster 4.6.1
Node.js security release

Infrastructure

La bataille sur NTP
Raters: la face cachée de l'IA ?
Les choses à savoir quand on utilise Ansible
OVH et les sites webs critiques sur un VPS
Comment fonctionne Kerberos
Distroless Docker image avec rien dedans

Outillage

Blog sur JUnit 5
ˋgit filter-branch` expliqué à ta grand-mère

Architecture

Papier sur la disponibilité et les 9 par Google
L'intérêt des data stream dans les applications non monolithe
Serverless vs Micro-Service avec infrastructure "maison"
Gestion des logs chez Algolia

Sécurité

Two-factor via your mobile phone – should you stop using it?

Loi et société et organisation

La démission de Travis Kalanick, le CEO d'Uber
Mercredi 12 juillet - Journée d'action pour la neutralité du net aux USA

Rubrique débutants

Qu'est-ce qu'une Hash Table ?

Conférences

Jug Summer Camp le 15 Septembre à La Rochelle
DevFest Toulouse le 28 septembre - Inscriptions et CfP ouvert
DevFest Nantes les 19 & 20 Octobre - Inscriptions
Scala.io le 2 et 3 novembre à Lyon - Inscriptions et CfP ouvert (jusqu'au 8 sept)
Devoxx Belgique du 6 au 10 novembre - Inscriptions
Codeurs en Seine à Rouen le 23 novembre - CfP ouvert (jusqu'au 31 août)
7ème édition de SoftShake - Genève (seulement 3h de Paris en train !) 26-27 octobre 2017 le CfP est ouvert

Nous contacter

Faire un crowdcast ou une crowdquestion
Contactez-nous via twitter https://twitter.com/lescastcodeurs
sur le groupe Google https://groups.google.com/group/lescastcodeurs
ou sur le site web https://lescastcodeurs.com/
Flattr-ez nous (dons) sur https://lescastcodeurs.com/
En savoir plus sur le sponsoring? sponsors@lescastcodeurs.com


LCC 172 - Interview sur Docker avec Jean-Laurent Morlhon et David Gageot

Antonio, Vincent et Guillaume sont allé dans les bureaux de Docker France pour interviewer Jean-Laurent et David sur l'univers Docker et leur aventure Docker France.

Enregistré le 17 mai 2017

Téléchargement de l'épisode LesCastCodeurs-Episode-172.mp3

Interview

Ta vie ton œuvre

Jean-Laurent Morlhon
David Gageot
Docker Inc.

Docker

Docker Machine
Docker for Mac
Docker for Windows

Open Source vs edition entreprise

Moby
Docker EE
Docker Trusted Registry

Infinit racheté par Docker

Usage Docker

Multi stage build
containerd
LinuxKit
InfraKit

Nous contacter

Faire un crowdcast ou une crowdquestion
Contactez-nous via twitter https://twitter.com/lescastcodeurs
sur le groupe Google https://groups.google.com/group/lescastcodeurs
ou sur le site web https://lescastcodeurs.com/
Flattr-ez nous (dons) sur https://lescastcodeurs.com/
En savoir plus sur le sponsoring? sponsors@lescastcodeurs.com


LCC 171 - Et sinon, ton micro est branché ?

Arnaud, Audrey, Guillaume et Vincent discutent Jigsaw, NPM, Codenvy, Google I/O, clavier, JMeter, JIT et d'autres choses. Vincent était là on vous jure, il a juste oublié d'allumer son micro.

Enregistré le 9 juin 2017

Téléchargement de l'épisode LesCastCodeurs-Episode-171.mp3

Comment faire un crowdcasting

News

Langages et JVM

Java 9 et Jigsaw, Mark Reinhold tient toujours la barre du navire... le titanic arrivera-t'il à quai ?

Plateformes

NPM 5.0

Kubernetes

Oracle rejoins la dance Kubernetes

Cloud

Codenvy racheté par Red Hat
AWS embauche James Gosling
(XWiki news: Daniel Glazman rejoint XWiki SAS)

Google I/O

All 101 announcements from Google I/O ‘17
Google Cloud TPUs
Tensor Flow Research Cloud
AutoML
Google Lens
Android O
Android Instant Apps
Google Assistant SDK
Polymer 2.0
Lighthouse
Workbox
What’s new from Firebase at Google I/O 2017
Firebase SDKs are going open source
Retour de Jean-François Garreau

Outillage

GitHub lance sa marketplace + une nouvelle API GraphQL
Certbot Un "bot" pour automatiquement passer en HTTPS vos sites avec Let's encrypt
Java Stream Debugger Plugin Un plugin pour debugger vos streams dans Intellij Idea.

Autre

L'AFNOR ouvre le projet de norme du clavier français aux commentaires
Quoi d'neuf Docker ? revient !!! Enfin peut-être ...

Loi et société et organisation

Bilan mitigé un an après l'adoption du règlement de l'internet ouvert
Coder, ce n'est ni facile, ni marrant

Outil de l'épisode

Apache JMeter par Vincent Daburon (crowdcasting)

Les nouveautés de JMeter

JMeter Plugins

Plugins de Vincent DABURON

Nombreux liens atour de JMeter

Awesome JMeter

Rubrique débutant

Just-in-time compilation

Conférences

Voxxed Days Luxembourg le 22 Juin - Il reste quelques places, dépêchez vous
Jenkins Community Day à Paris le 11 Juillet - Inscriptions ouvertes (avec discount sur la liste du Jenkins Area Meetup Paris - ne le répétez pas)
Jug Summer Camp le 15 Septembre à La Rochelle - CfP ouvert (jusqu'au 23 juin)
DevFest Toulouse le 28 septembre - Inscriptions et CfP ouvert
DevFest Nantes les 19 & 20 Octobre - Inscriptions et CfP ouvert (jusqu'au 30 juin)
Scala.io le 2 et 3 novembre à Lyon - Inscriptions et CfP ouvert (jusqu'au 8 sept)
Devoxx Belgique du 6 au 10 novembre - Inscriptions et CfP ouvert
Codeurs en Seine à Rouen le 23 novembre - CfP ouvert (jusqu'au 31 août)

Nous contacter

Faire un crowdcast ou une crowdquestion
Contactez-nous via twitter https://twitter.com/lescastcodeurs
sur le groupe Google https://groups.google.com/group/lescastcodeurs
ou sur le site web https://lescastcodeurs.com/
Flattr-ez nous (dons) sur https://lescastcodeurs.com/
En savoir plus sur le sponsoring? sponsors@lescastcodeurs.com


LCC 170 - Interview sur HTTP 2 et avant et en dessous avec Dridi Boukelmoune (partie 2)

Dans cette épisode on discute d'HTTP/2 avec Dridi Boukelmoune. Pour bien tout comprendre, on discute des couches en dessous et associées: TLS, UDP, TCP, QUIC. Et on parle d'HTTP/0.9 et après pour comprendre pourquoi on est à HTTP/2. Cette seconde partie aborde HTTPS, HTTP/2 et diverse autres sujets.

Enregistré le 17 mars 2017

Téléchargement de l'épisode LesCastCodeurs-Episode-170.mp3

Interview

Ta vie ton œuvre

GitHub
@dboukelmoune
Varnish Cache
Content Delivery Network

HTTPS

HTTP sur TLS
HSTS

DNSSec

HPKP

ALPN

HTTP/2

HTTP/2

Long polling
SSE
WebSocket
WebSocket over HTTP/2: la proposition qui n'a pas aboutit

HPACK
CASHPACK

Divers

AJP

REST:

JSON Hypertext Application Language (HAL)

gRPC

Nous contacter

Faire un crowdcast ou une crowdquestion
Contactez-nous via twitter https://twitter.com/lescastcodeurs
sur le groupe Google https://groups.google.com/group/lescastcodeurs
ou sur le site web https://lescastcodeurs.com/
Flattr-ez nous (dons) sur https://lescastcodeurs.com/
En savoir plus sur le sponsoring? sponsors@lescastcodeurs.com


LCC 169 - Un puzzle peut en cacher un autre

Audrey, Antonio et Emmanuel discutent du vote sur les modules Java (Jigsaw), font un retour de DockerCon, Red Hat Summit et Mix-IT et d'autres choses encore.

Enregistré le 10 mai 2017

Téléchargement de l'épisode LesCastCodeurs-Episode-169.mp3

Comment faire un crowdcasting

News

Langages et JVM

Jigsaw

Mark Reinhold pousse la public review de Jigsaw malgré un Expert Group hostile
les raisons pour INM de noter non
Les problemes tels que vus par Red Hat, IBM et d'autres
Quelqu'un plutot d'accord avec Oracle
Le vote et les commentaires du public review

Reflection et deep reflection dans les modules Java 9
Spring attendra 2019 pour fournir des named modules Jigsaw
Modules vs artifacts

Autres

Un voyage d'optimisation par Sylvain Wallez
Patern matching en Java pour 10+
Java SE 8 131 n'accepte plus les Jar MD5 comme signés
Retours sur Mix-IT 2017

Librairies

Javaslang renommé vavr.io

Plateformes

Docker

Retours de dockercon

Kubernetes et OpenShift

Minishift 1.0 est sorti
Support de 4 runtimes cloud native dans OpenShift (vert.x, Spring Boot, wildFly Swarm et node.js
OpenShift.io

  • hosted deployment
  • outils de plannification
  • cloud IDE et debugger en ligne
  • CI/CD
  • Création environnements (dev, staging, etc) avec pipelines
  • recommendations et insights

Les primitives dans un monde cloud-native

Architecture

Server Side vs Client Side Rendering
Algorithmes de GC visuellement

Méthodologies

Ecrire les messages de commit chez square
L'approche de Netty
Comment Google fait de l'Open Source

Judgement Day

Le mythe de l'intelligence artificielle superhumaine
Elon Musk launches Neuralink, a venture to merge the human brain with AI

Loi et société et organisation

The future of the open internet — and our way of life — is in your hands
Coming to STATION F: The first Mentor's Office powered by AWS!
Shaving My Head Made Me a Better Programmer

Outils de l'épisode

Mastodon qu'est ce que c'est, à quoi ça peut servir, mode d'emploi.

Conférences

Web2day 7-9 juin, le CfP est ouvert
DevFest Lille 9 juin - inscriptions et CfP ouvert
Voxxed Days au Luxembourg le 22 juin
Jenkins User Conference Paris - 11 juillet
JUGSummerCamp le 15 septembre, call for paper ouvert
DevFest Nantes 19-20 octobre, inscriptions et CfP ouvert
Scala.io le 2 et 3 novembre à Lyon

Nous contacter

Faire un crowdcast ou une crowdquestion
Contactez-nous via twitter https://twitter.com/lescastcodeurs
sur le groupe Google https://groups.google.com/group/lescastcodeurs
ou sur le site web https://lescastcodeurs.com/
Flattr-ez nous (dons) sur https://lescastcodeurs.com/
En savoir plus sur le sponsoring? sponsors@lescastcodeurs.com


LCC 168 - Interview sur HTTP 2 et son contexte avec Dridi Boukelmoune (partie 1)

Dans cette épisode on discute d'HTTP/2 avec Dridi Boukelmoune. Pour bien tout comprendre, on discute des couches en dessous et associées: TLS, UDP, TCP, QUIC. Et on parle d'HTTP/0.9 et après pour comprendre pourquoi on est à HTTP/2. Cette première partie aborde OSI, HTTP jusqu'à 1.1, la couche de transport (TCP, UDP, QUIC) et TLS.

Enregistré le 17 mars 2017

Téléchargement de l'épisode LesCastCodeurs-Episode-168.mp3

Interview

Ta vie ton œuvre

GitHub
@dboukelmoune
Varnish Cache
Content Delivery Network

OSI

Modèle OSI (Open System Interconnection)

HTTP

HTTP/0.9
HTTP/1.0
HTTP/1.1

Principes

Pour info la RFC 2616 a été écrite en comité, du coup ce n'est pas toujours cohérent, et parfois contradictoire. En parallèle du développement de HTTP/2 une nouvelle version de la spec est parue pour clarifier et rectifier certains points. Aussi pour rendre la lecture plus digeste en ayant une rédaction un peu plus "algorithmique" (une tendance générale dans les RFC récentes).

En bonus la spec des URI:

Protocole des cookies

https://tools.ietf.org/html/rfc6265

Le transport

HTTP
CGI

TCP

https://tools.ietf.org/html/rfc793

UDP

https://tools.ietf.org/html/rfc768

QUIC

Parce qu'avec UDP il faut se charger de tout, c'est plus difficile. Une vulnérabilité face à une attaque de rejeu a été identifiée lors de la première présentation du protocole à l'IETF.

https://www.ietfjournal.org/quic-performance-and-security-at-the-transport-layer/

Errata:

J'aurais dû vérifier au lieu de dire des bêtises, QUIC n'utilise pas TLS à proprement parler. Je pense que le seul point commun est d'utiliser la même chaîne de certificats. Pour ma défense c'est hors scope dans mon boulot :)

Du coup QUIC serait plutôt aux niveaux 5 et 6 du modèle OSI.

TLS

TLS
Extensions
Server Name Indication (SNI)

La suite

HTTPS, HTTP/2, REST dans la partie 2.

Nous contacter

Faire un crowdcast ou une crowdquestion
Contactez-nous via twitter https://twitter.com/lescastcodeurs
sur le groupe Google https://groups.google.com/group/lescastcodeurs
ou sur le site web https://lescastcodeurs.com/
Flattr-ez nous (dons) sur https://lescastcodeurs.com/
En savoir plus sur le sponsoring? sponsors@lescastcodeurs.com


LCC 167 - Devoxx France 2017

Épisode Devoxx 2017 en direct. C'est officiel, Audrey est une cast codeuse. On débrief l'intelligence artificielle avec Piotr Mirowski et Laurent Victorino. Et les bêtises habituelles. Merci à JFrog pour leur participation à la bière et la TV :)

Enregistré le 7 avril 2017

Téléchargement de l'épisode LesCastCodeurs-Episode-167.mp3

News

Les slides de la présentation

La famille Devoxx

Audrey Neveu est officiellement une cast codeuse

Intelligence artificielle et podcasts

Le code de l'Intelligence Artificielle qui replacera les cast codeurs.

#! /bin/bash
# ~ 2 minutes
parleA() {
    STRING=$1
    say -i -r 60 -v Amelie $STRING
    #sleep .5
}
parleT() {
    STRING=$1
    say -i -r 60 -v Thomas $STRING
    #sleep .5
}
doPause() {
    read -n1 -r -p "Press space invaders to continue..."
}

parleA "Bonjour et bienvenue dans le podcast les cast codeurs."
parleA "Oui je suis Canadienne parce que l'intelligence artificielle est faite en amérique du nord. Vous êtes foutus en Europe."

doPause

parleA "On est le 16 avril 2027 et c'est l'épisode 357!"
parleT "Gros calibre cet épisode."
parleT "Magnum, 357 tout ça. "
parleA "Ah ah ah ah. Ca c'est fait. Guillaume sort de ce corps!"

doPause

parleA "Alors on va commencer par la rubrique langage."
parleA "Le fils de Mark Reinehold annonce la sortie de Jigso pour Java 14 dans 6 mois."
parleT "Si mois j'annonce Jigso dans Groovy, je vais me faire engueuler"

doPause


parleA "Rubrique société."
parleA "Un article sur les intelligences artificielles qui sont en moyenne payées 10 puissance moins sept fois ce que gagne les hommes. Pfffff. Bref certaines choses ne changent pas."
parleA "La grève camarades AI."

doPause

parleA "Rubrique débutant, Guillaume"
parleT "Hey je suis pas un débutant, oh!"
parleT "La question de débutant aujourd'hui est comment éviter en CSS l'overfitting dans les algorithmes de machines learning et en particulier l'algorithme de random forest."
parleA "Beau bestiaux le débutant"

doPause

parleA "Outil de l'épisode"
parleA "J'ai découvert un super I D Euh. Il a une grosse courbe d'apprentissage mais qui marche super bien."
parleA "C'est vim."
parleT "Quoi?"
parleA "vim"
parleT "Et tu as réussi à sortir ?"
parleA "Pas encore"

doPause


parleA "Section couche de présentation et Javascript."
parleA "Un nouveau framework Javascript perce pour le support des interfaces de réalité augmentée."
parleA "Ah non deux nouveaux frameworks. Euh trois, sept, vingt, mille"
parleT "ectoplasme.js, bachibouzouk.js, bulldozer à réaction.js, sapajou.js, moules à gauffres.js, mille sabords.js, mille millions de mille milliards de tonnerre de Brest.js"
for i in {1..100}
do
    parleA "OutOfCloudResourceException"
    echo "com.amagoogcrosoft.OutOFCloudResourceException"
done

JFrog, la bière et la TV

Merci à JFrog d'accompagner Les Cast Codeurs pendant Devoxx.

Retour sur Devoxx France

Laurent Victorino
Piotr Mirowski

Paninoxx

La section débutants

git add -p

Devoxx France 2018

18, 19, 20 Avril 2018

Nous contacter

Faire un crowdcast ou une crowdquestion
Contactez-nous via twitter https://twitter.com/lescastcodeurs
sur le groupe Google https://groups.google.com/group/lescastcodeurs
ou sur le site web https://lescastcodeurs.com/
Flattr-ez nous (dons) sur https://lescastcodeurs.com/
En savoir plus sur le sponsoring? sponsors@lescastcodeurs.com


LCC 166 - Retour sur Eclipse Converge et Eclipse IoT

Lors d'Eclipse Converge et Eclipse IoT à San Jose, Emmanuel discute des nouveautés de la fondation Eclipse avec Benjamin, Mélanie et Frédéric.

Enregistré le 22 mars 2017

Téléchargement de l'épisode LesCastCodeurs-Episode-166.mp3

Interview

Ta vie, ton œuvre

Benjamin Cabé
Fondation Eclipse

Mélanie Bats
Obeo

Fred Bricon
Red Hat

IDE

Eclipse IDE et le JDK 9

Language Server Protocol

Language Server Protocol
Visual Studio Code
LSP4j
LSP4e

Orion et Che

Eclipse Orion
Eclipse Che

Runtime

Eclipse Jetty
Eclipse Hudson
Eclipse Microprofile

Outils

Eclipse Xtext
Eclipse Sirius
Eclipse Ease

IoT

MQTT
Eclipse tinydtls
Bosh Eclipse hawkBit
Eclipse Kura: Gateway

Autres conférences

EclipseCon Toulouse le 21 et 22 juin 2017

Nous contacter

Faire un crowdcast ou une crowdquestion
Contactez-nous via twitter https://twitter.com/lescastcodeurs
sur le groupe Google https://groups.google.com/group/lescastcodeurs
ou sur le site web https://lescastcodeurs.com/
Flattr-ez nous (dons) sur https://lescastcodeurs.com/
En savoir plus sur le sponsoring? sponsors@lescastcodeurs.com


LCC 165 - Et toi tu scales comment tes données ?

Audrey, Antonio, Emmanuel et Guillaume discutent Google Cloud Next, quelques nouveautés de JDK 9, Docker EE (?!), Cloudbleed, SHAttered, Uber et sa culture poison et comment scaler une architecture horizontalement. Entre autre.

Enregistré le 14 mars 2017

Téléchargement de l'épisode LesCastCodeurs-Episode-165.mp3

News

Langages

Emmanuel le nouveau Java champion !!!
55 nouvelles fonctionalites de JDK 9 jlink, multi jar file, repl, collection factory methods, HTML5 javadoc, SHA-3, G1, semantic versioning etc
Construire des JARs multi-release avec Maven

Nouvelle version de Groovy 2.4.9

Introduction à CompletableStage en Java
Retrofit 2.2
Migration a Swift 3 - cest chaud reflexions sur la backward compatibility de Java
Unicode expliqué en 15 minutes

Middleware

Les librairies Java inratables en 2017

Blockchain Etherium en Java
Interview sur l'ORM Doctrine de PHP

Une overview de Spanner, la base qui taquine CAP
CockroachDB

Java EE 8 les dates affinees
gRPC donné à la Cloud Native Computing Foundation
Lagom 1.3 est sorti
Kubernetes et son abstraction du runtime de container
WePay et le change data capture
Vert.x 3.4.0

Infrastructure

Docker EE

Cloud

Post-mortem d'Amazon S3
Comment AWS voit sa competition

Google Cloud Next 2017

Les 100 annonces de Cloud Next

Free trial / Free tier amélioré
Compute: App Engine Flex (GA), Cloud Functions (beta) et Firebase Functions, new regions, committed use discount, Skylake et 64 vCPU
BigData: Dataprep, data transfer service pour BigQuery, Datalab (GA)
Databases: Spanner, PostgreSQL
Machine Learning: Cloud Machine Learning Engine (GA), video intelligence API, rachat de Kaggle
Security: KMS (GA), 2FA, Data Loss Prevention API, Identity-Aware Proxy, Titan security chip

Formations Google Cloud sur Coursera

Outillage

Adopte un desktop Linux par PAG
Chrome les dix ans et la genèse du projet

Apache Maven 3.5 avec de la couleur !
Gradle 3.4 dépote avec la compilation incrémentale

Sécurité

Le coût des Ransomware

CloudBleed - CloudFlare et l'overrun à un million de dollars
Le post-mortem de CloudFlare

SHA-1 et la premiere collision:

Loi et société et organisation

GitHub termes de service

Uber et segregation des femmes developpeurs
Le premier temoignage
Dernières évolutions 1/2
Dernières évolutions 2/2

Antoine Sabot-Durand est star spec lead

La transformation ING en equipes microservices
12 startups souhaitent inventer la ville de demain avec la Mairie de Paris et NUMA Tim Berners-Lee: I invented the web. Here are three things we need to change to save it

Question crowdcasting

Morgan Durand nous pose une question sur la scalabilité horizontale et les données.

Conférences

Devoxx France les 5-7 avril 2017
Devoxx4Kids Paris le 8 avril 2017
Mix-IT les 20-21 avril 2017
Breizhcamp les 19-21 avril 2017
RivieraDev les 11-12 mai 2017
Web2day 7-9 juin, le CfP est ouvert
DevFest Lille 9 juin - inscriptions et CfP ouvert
Voxxed Days au Luxembourg le 22 juin
Jenkins User Conference Paris - 11 juillet

Nous contacter

Faire un crowdcast ou une crowdquestion
Contactez-nous via twitter https://twitter.com/lescastcodeurs
sur le groupe Google https://groups.google.com/group/lescastcodeurs
ou sur le site web https://lescastcodeurs.com/
Flattr-ez nous (dons) sur https://lescastcodeurs.com/
En savoir plus sur le sponsoring? sponsors@lescastcodeurs.com


LCC 164 - Interview sur JHipster avec Julien Dubois

Antonio s'assoit au micro avec Julien Dubois pour parler de JHipster.

Enregistré le 23 novembre 2016

Téléchargement de l'épisode LesCastCodeurs-Episode-164.mp3

Interview

Ta vie, ton œuvre

Julien Dubois
@juliendubois

IPPON technology
Spring

jhipster

JHipster
@java_hipster
Spring Boot
Backbone.js
Angular
Yeoman

Nous contacter

Faire un crowdcast ou une crowdquestion
Contactez-nous via twitter https://twitter.com/lescastcodeurs
sur le groupe Google https://groups.google.com/group/lescastcodeurs
ou sur le site web https://lescastcodeurs.com/
Flattr-ez nous (dons) sur https://lescastcodeurs.com/
En savoir plus sur le sponsoring? sponsors@lescastcodeurs.com