package.json: ~ ^ contre

Node.js utilise le concept de la sémantique pour Versioning versionnage de modules. Selon le besoin, dans le fichier package.json il varie aussi des nombres, comme avec les personnages et ^ ~. Quelle est la différence entre les deux versions?

En Février 2014, la version publiée 00:10:26 de Node.js, mettre l'une des innovations les plus graves NPM dans la gestion des paquets fournis. Installé un --save un module spécifiant le paramètre, le numéro de version dans le fichier a été fourni package.json pas plus d'un tilde, mais avec un accent circonflexe (caret).

Depuis lors, par exemple, conduit l'appel à

$ Npm installer exprimer --save

à une entrée de la forme:

"dépendances": {
"exprimer": "^ 4.15.2"
}

Un peu plus tôt était entré dans la dépendance NPM comme suit:

"dépendances": {
"exprimer": "~ 4.15.2"
}

Quelle est la différence entre les deux versions?

installer une version compatible

Le caret signifie que soit la version est d'installer ou Compatibles plus récente. Que deux versions sont compatibles les uns avec les autres, ce qui grâce sémantique Versioning un coup d'oeil. Par conséquent, les versions 4.15.3, 4.15.4 ou 4.16.0 pourraient installer à la place NPM express 4.15.2 - mais pas 5.0.0.

Le changement du numéro de version indique un changement incompatible. Par conséquent, l'expression

^ 4.15.2

finalement, revient à la valable également dans l'expression package.json:

>= 4.15.2 < 5.0.0

La procédure est utile, par exemple, pour obtenir les dernières corrections de bugs, mais pour éviter des changements incompatibles.

Installez une version similaire

En revanche, cependant, le tilde se comporte. Cela signifie que soit installer la demande ou une version similaire. Dans les moyens de cas "similaire"Que le dernier numéro de version indiqué est variable. Par conséquent, les versions 4.15.3 ou 4.15.4 pourrait NPM au lieu de l'option d'installation 4.15.2, 4.16.0 ne fonctionne pas et certainement pas 5.0.0.

Ainsi, le tilde protège non seulement contre les changements incompatibles, mais empêche également le passage à une version plus récente, qui, bien que contient des extensions, mais pas des corrections d'erreurs.

conclusion

Le changement a été fait il y a trois ans est tout à fait raisonnable, mais en général, la question se pose de savoir si l'écart par rapport à un numéro de version stricte est une bonne idée. L'autre exemple d'installation de fil fixe les versions installées dans un fichier de verrouillage que l'on appelle, et aussi la prochaine version 5 de NPM contiendra un mécanisme similaire.

Les numéros de version d'arrimage présentés dans chaque cas pour obtenir plus fiable et reproductible construit. Vérification et mise à jour vers les versions plus récentes peuvent alors laisser en toute confiance un outil qui prend automatise cette tâche.

tl; dr: Le caret installé une version compatible, le tilde une version similaire. Cependant, les deux méthodes sont à la question, si l'on cherche reproductible builds. Dans le cas doit être utilisé avec les versions fixes et éventuellement un fichier de verrouillage.

RubyMine 2016,1 apporter beaucoup à nouveau Rails 5

RubyMine JetBrains apporte beaucoup de nouveau à Rails 5

La première version de l'environnement de développement Ruby JetBrains cette année en collaboration avec le mince API Rails, qui est un petit bijou de rails 5, et connaît les nouveaux éléments de langage de Ruby 2.3.

RubyMine est un environnement de développement de JetBrains pour Ruby et Rails. Le langage de programmation a fait le saut vers la version 2.3 au début de l'année, alors que le cadre Web associés Rails est en version beta à 5,0. En conséquence, l'IDE JetBrains dédié aux nouvelles fonctionnalités.

De nombreuses fonctions Rails

Le générateur de canal Rails crée des canaux pour les prochains Rails 5.0 Câbles d'action qui permettent une interface de serveur Ruby et une interface client JavaScript communication en temps réel. RubyMine assume les canaux dans la vue d'ensemble du projet et offre la complétion de code. Rails 5 contient la version API maigre Gem, ce paquet. Avec les développeurs peuvent créer des RubyMine 2016.1 Rails projets API, ce qui bien sûr ne comprennent pas d'éléments de vue, car ceux-ci ne font pas partie des applications Rails API. Rails 5 apporte également un certain nombre de changements pour Active Record, qui prend en compte RubyMine à l'inspection du code.

Les langues familières telles que C # et l'opérateur de sécurité de la navigation Swift a de &, tenue collection (esperluette Dot) dans Rails 2.3 et est détecté en conséquence par l'environnement de développement. De plus, il y a des talons pour de nouveaux éléments tels que tableau # dig.

Nouveau JavaScript

La prise en charge par le langage JavaScript IDE variantes innovations ont également été introduites. Donc, il y a une inspection de code pour quelques-unes des caractéristiques supplémentaires du prévu pour juin AngularJS 2. Aussi pour ECMAScript 6 et Tapuscrit il y a des suppléments.

La liste complète des nouvelles fonctionnalités de RubyMine 2016,1 sur le site Web JetBrains.(RME)

PySide sera membre à part entière de la famille assistée Qt ​​des produits

PySide sera membre à part entière de la famille assistée Qt ​​des produits

Lancé par Nokia Interface Qt pour les programmeurs Python a fait un maigre existence de niche après la vente de Qt. Cela devrait changer maintenant.

Avec PySide depuis les jours où même les soins Nokia du cadre de GUI Qt, une interface pour les programmeurs Python. À la suite de la vente de Qt à Digia les droits de PySide ont changé de mains et plus tard à la Qt Company. Mais, écrit Lars Knoll, l'un des principaux développeurs Qt, avez-vous pas été en mesure de prendre soin de la technologie de liaison ces dernières années d'une manière souhaitée. Alors 1.x PySide est basée, par exemple, toujours sur le 4.x. Qt pas à jour

Cela devrait changer maintenant. Parce que PySide est de devenir un membre à part entière prise en charge de la famille de produits Qt maintenant. En conséquence, la bibliothèque dans les mêmes principes de développement et avec le même modèle de licence que d'autres technologies Qt pour fonctionner. à l'API PySide est sous la open source GNU General Public License (LGPL), a également ajouté une licence commerciale. PySide 2 est basé en plus sur le 5.x Qt en cours, son développement a commencé dès 2014.

Qt est un programme écrit en boîte à outils graphique C ++ qui fournit, entre autres sur Linux, Mac OS X et les fonctions de Windows identiques, ce qui facilite la création d'applications de la plate-forme neutre. (ANE)

serveur CI

contenu
  1. Intégration continue dans les temps de programmation agile
  2. serveur CI
  3. tendances & conclusion
  4. lire sur un côté

Il est votre choix ...

Depuis l'idée d'une intégration continue sont connus depuis longtemps et a établi un grand paysage de serveur disponible CI a maintenant formé. Mais ce qui est démontré dans la sélection d'un serveur CI spécifique? Cela peut dépendre en pratique de plusieurs critères:

  1. Compatibilité avec l'infrastructure existante: Le serveur CI réel fait partie d'une infrastructure de développement plus vaste. En particulier, devrait garantir l'interopérabilité avec un cadeau VCS ou un outil de construction mis en place, par exemple.
  2. Optimisation pour les scénarios spécifiques: certains serveurs de CI sont spécifiques à certains langages de programmation, des cadres et des environnements de développement intégrés (IDE) vers optimisé de sorte que la décision est une caractéristique importante peut.
  3. La fonctionnalité et l'évolutivité: Un autre critère important est certainement ce qui dispose d'un serveur CI au-delà de la décrit ci-dessus "fonctions de base" offre. Étroitement liée à cette question est la question de savoir être élargi par un tiers fonctionnellement un serveur CI, comme un plug-in API.
  4. Source propriétaire ou Open: existe dans les deux produits propriétaires et open source sur le marché des serveurs de CI. Cela peut aussi avoir une influence sur la prise de décision, par exemple en ce qui concerne les questions relatives aux droits de licence et de soutien ou si une grande importance est attachée à la présence d'une communauté active qui offre des plug-ins et des listes de diffusion.

Compte tenu de la quantité de serveur disponible CI et être pris en considération au moment de décider des aspects est clair qu'il n'y a pas "taille unique"peut donner recommandation. toutefois mentionné à titre d'exemple Jenkins, un serveur CI libre, qui bénéficie actuellement d'une grande popularité. Jenkins est un programmé dans le serveur CI open source Java qui a émergé comme une fourchette de serveur CI Hudson. Pour l'arrière-plan à l'essaimage et la tension qui en résulte a été faite à ce stade que l'article de Wikipedia sur le sujet.

Cependant, Jenkins / Hudson était en effet à l'origine destiné principalement pour des projets Java qui sont bien plug-in interface intégrée, a rapidement attiré de nombreux développeurs d'autres langages de programmation. Cela a conduit à de nombreuses extensions, de sorte que actuellement de nombreux outils de construction courants et les langues, même dans des environnements non Java sont pris en charge. En particulier, l'installation nécessite maintenant aucune connaissance de Java plus, car il est entièrement Installer utilisable pour la plupart des systèmes d'exploitation sont disponibles. Pour plus d'informations, la documentation et les téléchargements sont disponibles sur le site Jenkins.

Mesures et tendances

Aujourd'hui, le serveur CI n'accepte plus que le rôle décrit précédemment du serveur CI en tant que pur "cruncher" a, vérifie que les modifications à la base de code par compilation. Au contraire, son rôle central est utilisé pour parvenir à une gestion de la qualité de l'ensemble du projet de développement.

Cela se propose aussi: Le serveur CI contrôle plus ou moins l'ensemble du processus de construction et est l'organe central d'intégration qui fonctionne indépendamment des développeurs individuels et la situation du projet et ainsi agit comme une porte de qualité pour l'ensemble du projet. Dans le rôle qu'il est en mesure de faire des déclarations sur la portée et la qualité du logiciel pour démontrer l'état de développement, historicisation et ainsi de regarder au fil du temps. Le ainsi obtenu "Vue du projet de développement" est disponible à tous les participants du projet, qui sont donc en mesure d'évaluer l'état lui-même de répondre rapidement aux problèmes et d'avoir une communication ouverte avec toutes les parties prenantes.

Afin de faire des déclarations fiables sur l'état du projet logiciel et la qualité du code de programme, les paramètres du serveur CI tels que la portée de la base de code et la stabilité du processus de développement doit être déterminé. C'est pourquoi un développeur peut avoir généralement de recourir à d'autres outils de ce serveur CI moderne lui-même que partiellement.

Les mesures peuvent être obtenues à l'étape suivante presque toute utilisation pour vérifier les exigences minimales de qualité et de réagir en conséquence en cas de blessures. Quelles sont les exigences qui sont, à quel stade du processus de construction, ils sont appliqués et dans quelle mesure les causer des blessures aux conséquences immédiates comme un échec de la construction, bien sûr, dans le contexte du projet concret de décider.

Des exemples de mesures fréquemment utilisées dans la pratique et les questions associées sont:

La liste peut être étendue de manière significative et les détails et faire une déclaration complète et individuelle sur la qualité du projet logiciel.

Cependant, lorsque les tendances sont, sont des instantanés. Souvent passionnant est la prise en compte du temps, donc une démonstration de tendances. Ici aussi, le serveur CI joue un rôle central, car les variables mesurées, il fournit la base d'une histoire de données et ainsi, par exemple, répondre aux questions suivantes: si la couverture de test des tests unitaires comme prévu? Quels tests sont particulièrement instables? Une modification apportée au code à un changement indésirable dans la performance ou le comportement des ressources nécessaires? la stabilité de la ligne principale de développement (tronc) change de manière disproportionnée, par exemple en augmentant la taille de l'équipe du projet?

Trends métriques le __gVirt_NP_NN_NNPS<__ exemple du code de plate-forme de sonar Qualité (Fig. 2)

Au sein d'un scénario plus complexe, l'individu builds diffèrent non seulement si oui ou non ils ont réussi. En particulier, les caractéristiques de qualité mesurées peuvent être différentes, et il est donc souvent souhaitable individuelle builds certaines caractéristiques automatiquement ou manuellement
marque. CI serveurs fournissent aux différentes fonctions, telles que la création d'une étiquette dans le VCS ou un soi-disant "promotion" Les versions correspondant. Ce dernier fait à propos, nourrir spécifiquement individu construit des tests manuels ou encore construire étapes.

Usual Suspects

En théorie, l'intégration continue est la base idéale pour l'équipe de développement et le serveur CI fait l'élément de contrôle, le suivi du processus de développement. Dans la pratique, mais ne met pas toujours cet idéal: Le processus de construction prend trop de temps, les tests sont trop instables, les rapports serveur CI plusieurs fois par jour et est échoué construit de toute façon perçus comme des corps étrangers et mesurés mesures intéressent réellement tout le monde.

En particulier, dans des équipes ou des projets inexpérimentés où la qualité est pas le principe le plus élevé, vous rencontrerez cette situation ou similaires. Doit être abordé rapidement et fermement par la confiance dans le processus de CI, mais aussi le sens de la responsabilité des participants au projet seront renforcées. Comment faire, maintenant montrer les meilleures pratiques et les modèles établis (par exemple, Paul M. Duvall .: "L'intégration continue: Les régularités et anti-modèles"). L'idée de base peut se résumer comme suit.

Optimisation du test: Est-ce que le développeur trop longtemps pour commentaires après votre départ dans l'attente de son changement de code, il perdra non seulement l'objectif actuel, mais estime que le processus de CI comme improductif et inutile. Pour les tests de longue durée sont généralement la cause de ce problème. Cette interprétation peut répondre de différentes manières: Tout d'abord, les tests doivent convenablement structurés et cloisonnées si base ad hoc, par exemple, seuls les tests unitaires rapides sont effectués après une validation pour un retour immédiat de développement. Grâce à de bonnes dépendances externes Mocking, mais aussi des techniques avancées telles que la définition des priorités de test et de sélection (par exemple, Björn Feustel, Steffen Schluff .: "Testez-vous ou êtes-vous déjà un développement (encore une fois)?" (PDF)) peut réduire considérablement le temps d'exécution moyen des tests, d'autre part. Enfin, il est aujourd'hui souvent non seulement le plus facile, mais aussi un moyen rentable d'optimiser les temps de test, de fournir le matériel puissant serveur CI disponible ou des tests répartis sur plusieurs instances de serveur fonctionnent.

Stabilisation du développement: Hits la génération échoue trop souvent ou il est imprévisible par des tests instables, la confiance faiblit dans le processus de CI et "rouge" Builds ne sont plus perçus comme ce qu'ils sont: bouchon de la productivité. Solutions sont sur le point

Message files d’attente avec AMQP et Node.js

contenu
  1. Message files d'attente avec AMQP et Node.js
  2. lien
  3. Envoi et réception
  4. conclusion
  5. lire sur un côté
Message files d'attente avec AMQP et Node.js

Les files de messages facilitent le développement des découplées, des services autonomes dans les architectures distribuées. ce qui est souvent AMQP est utilisé, qui peut également être utilisé conjointement avec RabbitMQ et Node.js comme protocole. Cependant, il est important de noter ici quelques pièges.

le développement d'applications Web est intrinsèquement distribuée. Même la combinaison de navigateur Web et le serveur est un système distribué les développeurs ont besoin sans raison l'intégration des services Web supplémentaires sont des considérations particulières de systèmes distribués. Ceux-ci comprennent, entre autres, faire face à une connexion lente ou même cassé.

Alors que la défaillance d'un seul composant ne touche pas le reste de l'application Web, chaque composant doit être en mesure de fonctionner de façon autonome. Il est donc nécessaire de les découpler. Une mesure viable de c'est l'élimination de la méthode de traction: Comme une requête nécessite un fonctionnement et en face accessible, il va de soi que cette approche dans les systèmes distribués, certains inconvénients
ports. Comme alternative, l'offre de méthode push qui cache les messages à transmettre est manquant ou connexion défectueuse d'abord localement, puis de livrer à une date ultérieure. L'inconvénient de cette méthode est qu'il ne convient pas à tous les scénarios semblables: un moteur de recherche comme Google par exemple, est difficilement concevable comme un service push. Cependant les architectures telles que la responsabilité Commande requête Ségrégation (CQRS) prouvent que la poussée des messages peuvent être utilisés avec succès comme une procédure standard pour un système distribué.

utiliser un Message Queue

Pour effectuer la transmission des messages, il faut au moins une mémoire tampon locale qui stocke temporairement les messages non transportables éventuellement en plus d'un canal de transport. Ces deux aspects peuvent parfaitement dans un encapsuler service commun qui est disponible pour les autres composants ultérieurement.

Exactement est la tâche principale d'un Message Queue: Il reçoit des messages d'autres composants et caches jusqu'à ce que le composant cible est disponible. Le composant d'envoi est considéré comme un éditeur, la réception (comme voir la consommation
Figure 1).

La structure la plus simple des files d'attente de messages découple les deux composants, l'éditeur et le consommateur, par un tampon. (Fig. 1) La structure la plus simple des files d'attente de messages découple les deux composants, l'éditeur et le consommateur, par un tampon. (Fig. 1)


prendre des files d'attente de messages souvent encore plus de tâches au-delà, y compris l'acheminement des consommateurs et la livraison garantie des messages.

Afin de répondre à différentes implémentations de telles files d'attente uniforme, plusieurs protocoles ont été développés ces dernières années - y compris le Advanced Message Queuing Protocol (de AMQP), le texte de flux orienté messagerie Protol (Stomp) et Message Queue Telemetry Transport (MQTT). Ils diffèrent en fonction de leur orientation et leurs compétences dans certains cas, de manière significative les uns des autres: Alors que AMQP est utilisé principalement dans le secteur des entreprises à l'emploi, fournit MQTT la norme de facto pour le secteur IdO (Internet des objets) est.

Un Message Queue est largement utilisé RabbitMQ qui se développe dans VMware le langage de programmation Erlang et gratuitement sous une licence open source (Mozilla Public License) fournit. RabbitMQ dominée par Maison du protocole AMQP, mais peut être étendu pour inclure le support de pédales et MQTT avec les plug-ins.

Les échanges, les files d'attente & Cie.

Contrairement à celui représenté sur la figure 1 la structure RabbitMQ découple les éditeurs plus loin de la file d'attente réel: Pour cela, le soi-disant échange servent (voir figure 2).

L'échange découple le producteur de la file d'attente réel, ouvrant des possibilités différentes pour le routage des messages. (Fig. 2) L'échange découple le producteur de la file d'attente réel, ouvrant des possibilités différentes pour le routage des messages. (Fig. 2)

Il propose deux scénarios de la livraison de messages:

Lorsqu'un certain nombre de consommateurs rabbitmq une file d'attente diffuser les nouvelles à chaque consommateur. (Fig. 3) Lorsqu'un certain nombre de consommateurs rabbitmq une file d'attente diffuser les nouvelles à chaque consommateur. (Fig. 3)A tout consommateur d'autre part a sa propre file d'attente, ils recevront tous les messages qui sont envoyés par la Bourse. (Fig. 4) A tout consommateur d'autre part a sa propre file d'attente, ils recevront tous les messages qui sont envoyés par la Bourse. (Fig. 4)

Cependant, un comportement est tel aussi configurable, un échange peut être utilisé dans différents modes. Par défaut, les échanges dans le RabbitMQ "direct"Mode, ils peuvent encore être, mais aussi dans le "Épanoui"- ou "sujet"Sélecteur de mode. Ils diffèrent comme suit:

dans le dans le "direct"Mode considéré comme un routage Exchange messages clés pour les livrer ciblés à des files d'attente spécifiques. (Fig. 5)

En plus de la configuration des échanges RabbitMQ a encore plus d'options pour configurer. Par exemple, peut être ajustée si la vie d'une file d'attente est de se lier à la vie des consommateurs associés: Débranche au consommateur la connexion peut, RabbitMQ supprimer la file d'attente associée à mettre automatiquement.

De plus, les échanges et les files d'attente peuvent être aussi "durable" identifier les causes RabbitMQ persistait tous les messages. Si vous activez l'option pour survivre aux messages non remis un accident ou un redémarrage de RabbitMQ. Cependant, en même temps diminue leurs performances, car les lectures et écritures sur un disque physique sont beaucoup plus lents que ceux de la mémoire principale.

Enfin, peut être aussi une demande de livraison: Normalement loin des messages RabbitMQ des files d'attente une fois qu'il a été transférée au consommateur associé. les accidents de consommation alors, mais sans traitement à partir du message complètement, il est perdu. La boîte avec des rapports de livraison, un collier de serrage simple vers le bas: Perd une file d'attente pour se connecter à leur consommation, il offre à la prochaine connexion de tous les messages à nouveau du traitement qui n'a pas encore été confirmée.

OpenMP 4.5: Un aperçu compact des nouvelles fonctionnalités

contenu
  1. OpenMP 4.5: Un aperçu compact des nouvelles fonctionnalités
  2. verrouillage
  3. accélérateur
  4. conclusion
  5. lire sur un côté
OpenMP 4.5: Un aperçu compact des nouvelles fonctionnalités

OpenMP 4.5 est la prochaine étape dans le développement de OpenMP, la norme pour la programmation de la mémoire partagée. La nouvelle version renforce notamment la programmation des accélérateurs dans le but de rattraper OpenACC, mais apporte également quelques nouvelles fonctionnalités générales.

OpenMP 4.0 a été publié en Juillet 2013 et a été les plus grandes constructions d'innovation pour la programmation des accélérateurs et coprocesseurs. Leur propagation rapide surtout dans le calcul haute performance a le Comité de la langue OpenMP accordé aucune pause, ces leurres appareils, mais avec plus de puissance de calcul avec moins de consommation d'énergie par rapport aux processeurs conventionnels. Mais ils appellent également à un programme spécial leur micro-architecture et l'examen d'une mémoire séparée.

Les deux sur ces appareils ainsi que sur les processeurs multi-cœurs conventionnels doivent être combattus plus donc d'exprimer le parallélisme d'exploiter leurs performances. Pour tout ce soutien, apporte OpenMP 4.5 un certain nombre de nouvelles fonctionnalités et améliorations pour la programmation parallèle.

Grincement distribuer en toute simplicité

boucles parallèles sont une, sinon la construction le plus important dans OpenMP. Avec les constructions pour C partage du travail / C ++ et Fortran faire pour OpenMP offre un moyen remarquablement simple de pirater une boucle en morceaux et d'éditer les différentes parties des fils OpenMP. Néanmoins, il y a quelques limitations gênantes qui compliquent la programmation des boucles parallèles. Peut-être le plus grave que les constructions ne peuvent pas être worksharing inclus dans d'autres du même genre. Ainsi, vous pouvez installer une boucle parallèle dans une autre sans créer de régions parallèles supplémentaires, y compris de nouvelles équipes de fils.

La nouvelle taskloop de construction résout ce problème en utilisant des tâches OpenMP pour exécuter et ramasser quelques-unes de ces limites.

Comme une petite fente doit être mentionné à ce moment que OpenMP compris une tâche comme unité de code, en plus de l'environnement de données. Si une construction de tâches peut atteindre la tâche soit exécuter directement ou faire la queue dans une file d'attente et d'exécuter plus tard. Ajoutez à cela les constructions JOIN de synchronisation appropriés pour contrôler l'ordre dans le traitement.

Le code suivant montre un exemple de la façon dont les tâches normales et une boucle parallèle au moyen de taskloop-Kontruktes enchevêtrées peut être:

groupe #pragma tâche omp
{
#pragma tâche omp
long_running_task () // peut se produire ailleurs

effondrement #pragma omp de taskloop (2) La taille du grain (500) nogroup
pour (int i = 0; i < N; i ++)
for (int j = 0; j < M; j ++)
loop_body ();
}

L'appel de fonction long_running_task () est une tâche lancée asynchrone qui peut être exécutée en même temps que l'on boucle suivante. Le Schachtelbarkeit des tâches permet en outre que les tâches sont créées dans la fonction loop_body () à nouveau, en particulier avec la construction de taskloop. La clause d'effondrement, qui est également disponible dans le pour / ne construisent demande au compilateur de fusionner les deux à un broyage ultérieur. La mise en œuvre OpenMP est responsable de la distribution des tâches aux threads et peut ainsi assurer l'équilibrage de charge, si nécessaire pour traiter les différentes tâches de différentes longueurs. Dans l'exemple, peut le fil qui était responsable de l'exécution des tâches de l'appel de fonction long_running_task (), après l'achèvement du traitement des tâches de la boucle participer.

Comme d'habitude avec OpenMP la construction taskloop supporte les moyens habituels pour définir la visibilité des données. Ceci est appelé à portée OpenMP, donc partagé le filetage explicite des variables dans les clauses, privées, d'abord privée ou charge privée. En outre, la construction est entendu nogroup la clause, qui arrête le groupe de travail existant implicitement à la construction, ce qui évite ainsi la synchronisation automatique avec les tâches générées. La taille de cette tâche (nombre d'itérations) peut être réglée au moyen de la taille des grains. Ceux qui préfèrent contrôler le nombre de tâches en cours de démarrage, peut utiliser la clause num_tasks.

la priorité d'une tâche, plus la valeur indiquée, plus: Si plus d'influence sur le traitement des tâches sont prises, la nouvelle clause de priorité OpenMP 4.5 est intéressant. Cette note sert de recommandation au moment de l'exécution de OpenMP pour sélectionner des tâches et à préférer leur traitement s'il y a des tâches plus à un moment de l'exécution. Une garantie pour dériver un ordre exact d'exécution de l'énoncé des priorités, mais il n'y a pas. Sans préciser la clause toutes les tâches ont la priorité 0, donc ils sont équivalents.

Langages de programmation: Free Pascal fait la version grand saut

Free Pascal 3.0

(Photo: "Cheetah4" par Shani. Sous licence CC BY-SA 2.0 via Wikimedia Commons)

La somme des innovations dans la grande partie compatible avec Turbo et objet Pascal et Delphi compilateur Free Pascal a incité les développeurs à faire le grand saut vers la version 3.0 CPF.

Près de quatre ans après la dernière version majeure - la version 2.6.x - la sous la licence GNU General Public License (GPL) connexes du compilateur Free Pascal (FPC) a fait la transition vers la version 3.0.0. Le nouveau, lancé à l'origine sous le numéro de version version 2.7 des langages de programmation Turbo Pascal et l'objet et du compilateur Delphi en grande partie compatible comprend donc - sans surprise - pas mal de nouvelles fonctionnalités.

innovations compactes

Ici devrait citer comme support pour les tables de jeux de caractères de chaîne ANSI et un mode texte révisé norme ISO 7185 Pascal à travers lequel une mise en œuvre P4 viable doit être compilé avec quelques ajustements. En outre, le travail dans le traitement des Génériques sont avancés. Il y a un support bien mieux la syntaxe Delphi comme, même si elles seront probablement loin d'être complète.

Dans l'environnement de la mise en œuvre de la nouvelle langue Delphi construit soi-disant chute type Helper dans les types tels que les chaînes littérales et numériques, une hiérarchie d'espace de noms pour les unités (fichiers source compilés séparément) et les constructeurs pour les classes, les tableaux dynamiques et les enregistrements (possibilité de regrouper plusieurs variables). En outre, par Structured Exception Handling (SEH) sur 32 et Windows 64 bits parle

support de plate-forme

Alors que de nouvelles architectures de processeur entre autres, les systèmes MIPS ARMHF- et NetBSD et OpenBSD (x86 et x86_64) et 64 ARM de bits sont appelés. De plus, il a repris le travail à l'appui des ports m68k et appareils AmigaOS connexes. Dans le cas contraire, le compilateur Free Pascal est, entre autres, AMD64 / x86_64, ARM, Intel / i386, PowerPC et Sparc PowerPC64 sur les systèmes d'exploitation tels que Windows, Linux, Mac OS X, Solaris et FreeBSD sont disponibles. D'autres plates-formes sont énumérées dans l'annonce.

(ANE)

De la base de données à la surface avec .NET, Partie 3: Une interface web avec ASP.NET

contenu
  1. De la base de données à la surface avec .NET, Partie 3: Une interface web avec ASP.NET
  2. Code arrière-plan
  3. interface utilisateur "avancé"
  4. annonce 1
  5. annonce 2
  6. listing 3
  7. Listing 4
  8. listing 5
  9. 6 liste
  10. lire sur un côté
De la base de données à la surface avec .NET, Partie 3: Une interface web avec ASP.NET

Dans les deux premières parties de la base de données de didacticiel créé et l'accès aux données, la logique métier et la couche de service Web. Le Web est maintenant non seulement - comme avant - peut consommer une console, mais aussi une interface Web HTML.

La technique pour la création d'applications Web en utilisant le ASP.NET de .NET Framework, où elle est maintenant de ne plus être considéré comme une seule bibliothèque, car il existe plusieurs versions de ASP.NET. Dans le cadre du tutoriel appelé les formulaires Web ASP.NET doivent être utilisés. Webforms sont l'approche originale et pourtant beaucoup plus commune par rapport à la nouvelle ASP.NET MVC, Dynamic Data ASP.NET et les pages Web ASP.NET (voir. Statistiques).

De la base de données à la surface avec .NET

  • Partie 1: accès aux données et la logique
  • Partie 2: Application Server et les services Web
  • Partie 3: application Web avec ASP.NET
  • Partie 4: application de bureau avec WPF
  • Partie 5: Bureau et applications Navigateur avec Silverlight

Pour mitzuprogrammieren l'exemple, le développeur a besoin des connaissances de base de la syntaxe C # et la manipulation de Visual Studio 2010. Le tutoriel utilise la version anglaise de Visual Studio, car il y a dans l'édition allemande une erreur par l'exemple sans beaucoup peut apporter le travail manuel et le fonctionnement.

Même dans les formulaires Web il y a plusieurs façons différentes, et tomber en avant lors de la création d'un nouveau projet: Le promoteur a le choix entre un "Application Web" et "site Web", Le second est le plus récent, tel qu'il est utilisé ici modèle. Vous créez un site, mais ne pas ajouter | Nouveau projet, mais par Ajouter | Nouveau site. Il faut veiller à ce que le chemin sera sélectionné dans la boîte de dialogue afin que les fichiers du site sont alors dans le même dossier que les autres projets de la solution. Contrairement à d'autres sites de projets Visual Studio ont aucun fichier .csproj.

Le site nécessite des références aux projets web WWWings_ServiceProxies et WWWings_GO et la bibliothèque système System.ServiceModel. De plus, le développeur doit les transférer sur le site, la configuration du client de service pour les services Web. Pour cela, il copie l'élément de la WWWings_ServiceProxies / app.config dans le fichier WWWings_Web / web.config. Il est important que diriger un sous-élément de ses besoins. est que vous ne pas accidentellement imbriquées dans l'élément existant à regarder.

architecture cible pour cette partie du didacticiel (Fig. 1) architecture cible pour cette partie du didacticiel (Fig. 1)

modèle de page

Pour une structure latérale unique sur plusieurs pages, le développeur met le meilleur d'abord une page de soumission par le site Web à Ajouter présentation de l'article "Page principale" sélectionné. Comme le nom WWWings.master être pardonné ici. Une .master- contient la structure de base d'une page HTML contenant les tags et. Dans les deux premiers représentent chacun un espace réservé () est incorporé, qui peut remplir la matrice dérivée du site avec le contenu. Listing 1 montre le contenu possible de WWWings.master. Il intègre une feuille de style (wwwings.css) et un fichier graphique (WWWingsLogo.jpg), mais leur contenu est à côté du point de visionnement ultérieur. Les fichiers ne sont pas reproduits ici, mais bien sûr inclus par téléchargement. Un espace réservé dans l'en-tête n'est pas nécessaire; on se borne à espace réservé pour le titre de la page (C_Ueberschrift) et un pour le contenu (C_Inhalt). La page de modèle WWWings.master dispose également d'un soi-disant fichier code-behind (WWWings.master.cs). mais cela ne devrait pas être réglée parce que la page du modèle ne nécessite pas de code de programme dans ce cas.

masque de réservation

Le masque de réservation ASP.NET en action (Fig. 2) Le masque de réservation ASP.NET en action (Fig. 2)

La figure 2 montre la structure du masque de réservation. Il y a trois cadres: le haut du vol, la moyenne pour le passager et le bas pour la réservation. Pour l'interface de réservation, le développeur crée une page de détails avec le nom Buchung.aspx. A cet effet, il sélectionne Ajouter un nouvel élément et forme web, la coche "Sélectionnez la page principale" doit être activé. Ce qu'il peut choisir un modèle de page la WWWings.master étape suivante. Le code suivant montre la structure générale de base de la page d'informations avec deux éléments de contenu correspondant aux espaces réservés. La structure de base est maintenant remplie de contenu.

<% @ Page Titre ="" Language ="C #" MasterPageFile ="~ / WWWings.master"
AutoEventWireup ="vrai" CodeFile ="Buchung.aspx.cs" = hérite"réservation" %>


runat ="serveur">


Listing 2 montre la mise en page finale de la page de détail. Les trois régions sont formées par des éléments. Les champs numéro entrée et le champ de saisie du nom sont de type. Les aéroports, le développeur peut déterminer avec une boîte de sélection (), la sélection "tous" est déjà statiquement prédéfini dans la page ASPX. La liste des aéroports sera ajouté dans la page code-behind - qui fait AppendDataBoundItems ="vrai", Les boutons obtenus par. Pour la sortie tableau des vols et des passagers est utilisé. Dans la grille Voir le contrôle du programmateur déposé pour être des colonnes de sortie. La première est utilisée pour afficher les liens hypertextes sélectionnez.

Les trois moyens de contrôles, le promoteur devrait en onclick ="..." une référence au code de programme exécuté dans le fichier de code d'arrière-plan. Mais même et direct avec OnTextChanged ="..." et OnSelectedIndexChanged ="..." liaison aux gestionnaires d'événements. Le navigateur résoudra généralement, même après son entrée dans les champs d'entrée pas publication sur le serveur, donc de recharger la même page. mais ASP.NET fournit l'ajout AutoPostBack ="vrai" que le navigateur reçoit le code JavaScript approprié qui déclenche le postback lorsque l'utilisateur quitte le champ de saisie. Ainsi, il peut commencer confortablement recherches, sans avoir à cliquer à nouveau sur le bouton de recherche.

Elixir

innhold
  1. Elixir - med Erlangs arving til fremtiden
  2. Elixir
  3. Syntaks, kontrollstrukturer, Maps
  4. Phoenix, Konklusjon
  5. leste på en side

Og så kom Elixir

Funksjonelle språk, det er mange, og i lang tid; kalt Python, Ruby, og XSLT er til orientering Javascript. Alle sikkert har fordeler og ulemper. Erlang også tilhører gruppen av funksjonelle språk og minner om dens syntaks til uelsket av mange utviklere prologen. På det punktet Elixir kommer inn: Språket utnytter Erlang, men kommer med en mye bedre og mer elegant syntaks derfor.

Elixir utvikling ble startet i 2013 av José Valim, som forresten er også medlem av Ruby on Rails kjerneteam. Den viktigste årsaken til ønsket om et nytt språk var utvide Erlang VM.

Først en rask titt på detaljene i Elixir. De viktigste er muligheter rekursjon, og de såkalte overordnede funksjoner. Som man kan se i følgende tekstutdrag, de aksepterer andre funksjoner som argumenter:

defmodule innhold gjøre
def kvartett (verdi, funksjon) gjør
4 * funksjon. (Verdi)
end
end

Elixir støtter også begrepet refleksjon eller meta-programmering. Slik at språket har evnen til å analysere seg selv. En innledende eksempel på dette kan finnes på GitHub.

Bruken av strømmene er mulig i Elixir: De brukes til å lese eller data i et program for å skrive det fra en applikasjon. Den underliggende konseptet er lik som Java.

På tilbudet er også en mønstertilpasnings med hvilke data som kan søkes etter en streng.

før bruk

For å bruke Elixir, er Erlang 17,0 (eller høyere) er nødvendig. Språket støtter Linux, Mac OS X og Windows-systemer. Under Windows kan bruke til å installere Web Installer. På Linux-systemer, er det de kjente typer installasjon. Her vei for Ubuntu og Debian:

wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
&& sudo dpkg -i Erlang-solutions_1.0_all.deb
sudo apt-get update
sudo apt-get install elixir

Etter vellykket installasjon, kan det interaktive skall IEX eller starte Windows iex.bat. De som jobber med Ruby, vil raskt føle seg hjemme, minner endelig IEX sterkt IRB. Verktøyet gir en omfattende dokumentasjon. Hvis du ønsker å se på som beskrivelsen av enum modulen er å gå inn h (Enum).

Ctrl + C du kan åpne BREAK-menyen, avslutter skallet via bruker og kan få innsikt i aktuelle prosesser. Det er også viktig Ctrl + G. Med menyen som kan åpnes slik at du kan gi, blant annet et ekstra skall.

bryter kommando bruker
--> s 'Elixir.IEx'
--> c

skallet er tilpasset løpet IEx.configure h /. 1 Konfigurasjonen kan være her for det aktuelle prosjektet eller tilpasse global.

fellesskap utvikle

Rundt Elixir er et lite, men aktivt fellesskap har etablert som gjør komfortabel å jobbe med språket, med sine egenutviklede verktøy og applikasjoner. Av spesiell notatet er det pakkebehandleren hex.pm, takket være som er Erlang og Elixir kode kan installeres direkte som pakker. Også interessant er malen motor EEX, som tillater bygging av maler til kode. Selv med henne nær Elixir og Ruby er veien klar igjen, som EEx basert på den berømte Ruby ERB:

<% = @-Innhold%>

Som kodebiten illustrerer Ex fungerer med vanlige wildcard syntaks. For å unngå å måtte gi opp den komforten av andre språk i feilsøking finnes med ExUnit en testing rammeverk. Søknaden følger følgende mønster:

ExUnit.start

defmodule Testcase gjøre
bruke ExUnit.Case

test "sannheten" gjøre
hevde sant
end
end

Endelig er en bygge verktøy også tilgjengelig for Elixir: mix er mors verktøy for valg når det gjelder å utarbeide prosjekter.

For å holde deg oppdatert på aktuelle utviklingen fra Elixir miljøet til dags dato, er det nå blant annet en adresseliste, en Twitter-konto og regelmessige arrangementer, gir informasjon om samfunnet via GitHub.

Gestion des cas et CMMN pour les développeurs

contenu
  1. Gestion des cas et CMMN pour les développeurs
  2. pratique
  3. Combinaison et conclusion
  4. lire sur un côté
Gestion des cas et CMMN pour les développeurs

Les moteurs de workflow sont arrivés dans la boîte à outils, le développeur, généralement la norme BPMN 2.0 utilisera. Cependant lors de l'automatisation, on rencontre encore et encore à des situations où les gens peuvent influencer les besoins de flux de processus.

La flexibilité est parfois difficile mappée dans BPMN (Business Process Modeling Notation). Par conséquent, le Groupe de gestion d'objets propres normes CMMN 1.0 (gestion de cas modèle et notation) a adopté, qui - comme BPMN aussi - est exécutable dans les moteurs de workflow. Cet article présente CMMN et montre l'exemple de mise en œuvre sur le système de BPM open source par la société de l'auteur.

Comme un exemple concret de l'acceptation professionnelle (ou le rejet) au service de l'assurance privée. Le code source complet, y compris les modèles BPMN et RCSM associés est disponible sur GitHub et peut être exécuté sur la plate-forme BPM open source Camunda ou d'essayer.

semble à première vue que la "souscription" processus bien signalisée structuré et peut donc être représenté par BPMN:

La partie de en motif La partie de en motif "souscription"-Prozesses peut être représenté par un procédé défini dans BPMN (Fig. 1).

Le modèle obtenu peut être exécuté directement sur un moteur de processus. Les premières difficultés surgissent lors du relâchement de la politique, qui a appelé le processus "Activité appel" est montré. Ici commis ont de nombreuses occasions. Par exemple, vous pouvez contacter le médecin de famille pour demander des conditions pré-existantes, ce qui peut nécessiter la demande de spécialistes. Pour de plus grands risques qu'ils peuvent avoir à prendre un collègue de l'aide et demander son évaluation. il peut souhaiter que le client est appelé à récupérer des informations, et ainsi de suite. Ces activités ne peuvent pas être dans un ordre significatif eux-mêmes. Au lieu de cela, le greffier obtenir la liberté de décider pour eux-mêmes. Cela ne peut être représenté avec des solutions de contournement dans BPMN, qui fournissent les dernières dans des scénarios plus complexes, y compris, par exemple les phases de décision ou les dépendances que le modèle explose.

se produit CMMN

Au point CMMN peut aider. La norme a été adoptée en mai 2014. dans l'OMG dans la version 1.0 et est mis en œuvre dans la version 7.2 de la plate-forme BPM Camunda. La figure ci-dessous montre la définition de cas pour la souscription:

La partie non structurée du processus de souscription peut être représenté comme dans le cas Définition CMMN (Fig. 2). La partie non structurée du processus de souscription peut être représenté comme dans le cas Définition CMMN (Fig. 2).

En partie semblable aux symboles du BPMN. En plus de l'affaire dans son ensemble, il y a des tâches humaines (résultant des tâches pour une liste de tâches créée) Tâches de processus (si les processus BPMN devraient être lancés dans un cas), les étapes et d'autres questions et tâches clés. Tous les éléments de notation peuvent être consultés en ligne. Il y a aussi une affiche qui répertorie les détails.

Tout comme BPMN 2.0 aussi le modèle de CMMN 1.0 est stocké sous la forme d'un fichier XML et peut être exécuté directement dans le moteur puis. Jusqu'à présent, il n'y a que d'ailleurs un outil de modélisation graphique qui CMMN dominé tout le CMMN Web Modeler. Avec l'acceptation croissante du CMMN devrait cependant changer rapidement. prévoit Camunda, par exemple, un aufsetzendes sur le projet bpmn.io
outil de modélisation.

L'opération de CMMN peut être mieux illustré lorsque vous regardez la surface résultante d'un système:

Des exemples de surface pour l'application de gestion des cas sur la base CMMN (Fig. 3) Des exemples de surface pour l'application de gestion des cas sur la base CMMN (Fig. 3)

La figure ci-dessus montre une interface graphique Faces Server Java implémentée (le code source est également sur le projet GitHub inclus), extrait du pilote d'un vrai projet. Il est divisé en plusieurs zones:

Dans le cycle de vie d'une activité diffère principalement CMMN "disponible". "permis". "actif" et "terminé", Une activité dans le modèle CMMN peut être configuré en conséquence afin d'influer sur le cycle de vie. Il y a donc des activités, par exemple, une petite icône de lecture. Cela signifie qu'ils peuvent être lancés manuellement par les humains. Par conséquent, ces tâches ne sont disponibles ("permis"). D'autres tâches peuvent être activées directement ("actif").

Des exceptions sont des activités avec un moniteur soi-disant ("sentinelle"). Ils sont marqués par un petit diamant dans la tâche. Le tuteur décide si une activité est toujours mis à la disposition - sinon il reste "disponible" et ne semblent même pas dans l'interface utilisateur. Nom d'état "disponible" est au point, malheureusement, malheureux et trompeur: Il est vrai que "disponible" Tâche uniquement sur "permis" ou "actif" doit être déconnecté avant de pouvoir être travaillé à travers. Donc, pour le travailleur du savoir qu'il n'est pas disponible, sauf la garde le laisse aller.

Il existe deux types possibles de conditions pour les gardiens: La disponibilité de l'activité peut dépendre qu'une autre tâche est terminée, qui est représenté visuellement par une ligne en pointillés. Important: Ce n'est pas un flux de séquence dans BPMN, mais que la dépendance visualise cause à effet. Mais le tuteur peut aussi examiner les conditions, tout en utilisant les données de contexte. Dans l'exemple, les informations, si le client est un fumeur ou non, la possibilité d'ajuster son profil de risque est des contrôles disponibles. Les informations dépend de l'objet d'application dans le contexte de l'affaire. Par conséquent, dans la surface des tâches "évaluation de l'entretien résultat" aussi bien que "ajuster le profil de risque pour les fumeurs" par défaut non visible.

Cela rend maintenant relativement facile de définir une sorte de menu tâches pour le travailleur du savoir. Les règles importantes peuvent être déposées dans le modèle pour rendre le travailleur du savoir son activité aussi simple que possible. Lors de l'exécution, l'homme a alors le contrôle - dans les limites fixées par les limites de RCSM. Si les phases fixes (Etapes) et les étapes (jalons) sont utilisés, on peut définir des cas très complets.

BaaS: Qu’est-ce que le back-end en tant que service?

contenu
  1. BaaS: Qu'est-ce que le back-end en tant que service?
  2. conclusion
  3. lire sur un côté
BaaS: Qu'est-ce que le back-end en tant que service?

Sous BaaS fait référence à une infrastructure hébergée back-end, configurer un individu revenir à l'application ou développeur web mobile en quelques étapes. L'article traite des concepts de base et le statu quo du back-end en tant que service.

Le marché mobile est très concurrentiel. Il dit ne pas attendre avec une idée trop longtemps. Les mises à jour et les améliorations devraient de toute façon être publiés ici bientôt. Mais ce n'est pas toujours facile dans une division classique en développeurs et front- back-end. La plupart de coordination des deux groupes est un défi. De plus, les données de l'utilisateur de stocker indépendamment de l'appareil: Souvent, pour divers langages de programmation ou classes de données des systèmes d'exploitation à écrire. Un autre aspect est l'échelle des données de retour se termine à l'augmentation du nombre d'utilisateurs. Et ce qui est un schéma à jour la base de données entre les développeurs et front- back-end communicable?

Un grand nombre de ces défis backend en tant que service (BaaS) est conçu pour fournir une réponse. L'idée d'offrir un back-end en tant que service cloud est pas nouveau. En 2011, les premières entreprises se sont installées sur ce marché.

Le nuage à la rescousse

Le thème de la base de données ou de stockage de données a toujours été un problème de tension. Il est tentant de saisir pour leur propre application rapidement à une configuration LAMP éprouvée. Cela peut fonctionner pour la plupart des projets de passe-temps, mais il y a des questions sur la sécurité des données et de l'effort des changements à terme. Et la mise en place de ces solutions naturelles prend du temps.

Même avec des projets d'entreprise ou des agences backend thème et la livraison au client est de plus en plus un problème. Ici, les questions étaient légèrement différentes: Où peut en tant que serveur d'hébergement avec JBoss Rest Easy? Qui est responsable de l'entretien? En raison de la forte croissance des appareils mobiles, la disponibilité est toujours un défi. Étant donné que les gammes DMZ internes de l'entreprise ("zone démilitarisée") Pas toujours. En outre, les systèmes de base de données dans les entreprises sont généralement bien isolées du monde extérieur.

Que ce soit petit projet ou grande entreprise indépendant - l'arrière d'une application est donc un point d'achoppement. Par conséquent BaaS pour relever ces défis. En outre, si tel être utilisé dans toutes les dimensions d'un service. La technique de base est similaire à un Internet Hoster: Le fournisseur BaaS offre la possibilité de gérer les données.

En général, un SDK pour les plates-formes mobiles respectives est fourni ici. De plus, il est généralement encore une interface REST. La persistance des données est sous le contrôle du fournisseur BaaS. L'utilisateur obtient ses données ou interroger vos sous-ensembles de données. La manipulation et mise à l'échelle globale se fait par le fournisseur BaaS. L'avantage est donc que le maintien du back-end est éliminé et le développement de chaque classe wrapper de tables de base de données aux objets est obsolète pour la plupart. La communication avec le serveur BaaS est fait par le SDK. Habituellement, une méthode suffit à la Objekt.save () pour stocker les données.

par "Payer que vous utilisez"que le concept va payer pour ce qui est réellement nécessaire. La plupart des forfaits ne sont que des quotas à des prix fixes. Alors que le budget doit être prévu nutzungsabhänig. Par conséquent, l'utilisation de BaaS pour les petites entreprises est intéressant.

Et ce qui a été conçu uniquement pour la zone Android et iOS, avec le boom de JavaScript et le battage médiatique entourant webapps maintenant sur le Web possible. Beaucoup ont un SDK qui lui correspond dans leur portefeuille. Selon le fournisseur, les plates-formes supplémentaires telles que le téléphone BlackBerry ou Windows 8 couverts. De plus, ils essaient de se différencier en tous les types de services. Qui a un back-end pour son application mobile qui veut plus également envoyer des messages push. Même les données sur l'utilisation de l'analyse soi-disant sont heureux d'offrir. Un accès simplifié à des services tels que Twitter ou Facebook de toute façon la plupart du temps donné. Toutes les choses qui devraient lier l'utilisateur de plus près au fournisseur BaaS spécifique.

Une brève histoire de BaaS

La société a MarketsandMarkets 2012 estime le marché mondial BaaS à une valeur d'environ 216 millions de dollars américains. Pendant ce temps, une nouvelle étude sur le marché. Cela éclairera le marché actuel et à l'année 2017 donne un aperçu sur la façon dont cela pourrait se développer sans serait que trop assisté à des chiffres spécifiques.

Les principaux fournisseurs dans la jungle BaaS avaient été entreprises comme Kinvey, Parse et StackMob - toutes les entreprises des États-Unis, tous depuis longtemps sur le marché. Au printemps 2013 Parse de Facebook pour environ 85 millions de dollars a été acheté. PayPal avait incorporé en 2013 StackMob en hiver, après quoi le service a été interrompu. D'autres fournisseurs ont été ajoutés et ont disparu à nouveau. Microsoft a dazugesellt relativement fin de l'année dernière avec ses services mobiles Azure. Google offre également sur l'App Engine baas services similaires.

Alors que BaaS pourrait bien être un bloc de construction utile pour les architectures actuelles et futures vues. Ce qui a été initialement lancé pour iOS et Android, est encore plus répandue. En plus des plates-formes mobiles une tendance très différente est encore en croissance. Le matériel est devenu intelligent - Internet des choses sur les lèvres de tout le monde. Ici, les données sont obtenues qui seront stockées constamment. En retour, un BaaS est idéal, car l'utilisateur doit tenir un serveur. Le dispositif matériel et doit stocker localement des données. Grâce à l'Internet des choses, mais le volume de données augmente de façon significative. maintenant que chaque thermostat de chauffage tous les cinq minutes envoie un enregistrement dans les cas extrêmes. Ici, la mise à l'échelle des services baas rend parfaitement perceptible.

Microsoft: Visual Studio Express Editions Communauté remplacé

Microsoft offre l'avenir pour les développeurs open source et les petites équipes, une nouvelle version gratuite de son environnement de développement, qui fonctionnel similaire à l'édition professionnelle.

Community Edition Microsoft Visual Studio appelle la nouvelle version gratuite de son environnement de développement Visual Studio, qui remplace la précédente gamme de produits Express. Visual Studio Express n'a pas un seul produit, mais une famille de produits avec actuellement trois membres, avec lesquels on peut développer seulement un certain type d'application (applications Web, des applications et des applications de bureau) chacun pour toujours. La nouvelle édition communautaire surmonte cette séparation et fournit tout comme les éditions commerciales (outils professionnels, Premium et Ultimate) pour tous les types d'applications.

De plus, la nouvelle édition communautaire soutiendra également le chargement des compléments et l'utilisation des extensions tierces, qui sont restés les utilisateurs express jusqu'à présent échoué. Ce fut le vice-président exécutif de Microsoft Scott Guthrie mercredi dans le cadre de la conférence en ligne connect (); connu.

Gratuit pour les petites équipes

La nouvelle édition communautaire Visual Studio peut être utilisé gratuitement non seulement des développeurs open source travaillant avec une personne autorisée par la licence OSI, mais aussi pour des projets commerciaux. Cependant, l'utilisation des entreprises avec moins de 250 employés et un million de dollars en chiffre d'affaires est limité. jusqu'à cinq employés alors autorisés à utiliser l'édition communautaire Visual Studio dans ces entreprises.

Cette restriction de quantité répond aux conditions de la libre utilisation du contrôle de code source, la gestion des tâches et la construction du système de service ALM basée sur le cloud de Microsoft (application de gestion du cycle de vie) Visual Studio en ligne. Ainsi, les petites équipes de développement ont à l'avenir un environnement de développement libre sur le client et le serveur. Sans restrictions quantitatives universités et les étudiants peuvent utiliser la Communauté Visual Studio Edition. L'utilisation dans la formation est admise sans limite.

Le passage de la famille de produits express veut Microsoft ne se fait pas seulement dans la prochaine version, qui portera le nom de Visual Studio 2015, mais déjà dans le cadre de la mise à jour 4 pour Visual Studio 2013, qui est disponible en téléchargement à compter du mercredi soir. Les 2013er précédente versions Express seront pour le moment continuer à trouver le filet. Une mise à jour à la version 2015 ne fera pas Microsoft.

Microsoft avait d'abord introduit la famille de produits Express, puis séparément pour les langages de programmation (Visual Basic Express Edition, Visual C # Express Edition et Visual C ++ Express) et un autre produit appelé Visual Web Developer Express Edition pour développer des applications web avec, même pour les applications de bureau C # et Visual Basic.

D'autres nouveaux produits pour Visual Studio et TFS

Dans le cadre de la connexion (), - l'organisation Microsoft a également annoncé de nouvelles innovations fonctionnelles pour Visual Studio 2015 et la prochaine Team Foundation Server 2015. Cela inclut un émulateur Android plus rapide pour le développement multi-plateforme avec Cordova, un nouveau type de projet "Cloud projet de déploiement" pour simplifier l'installation des applications existantes vers le cloud et l'intégration développé par le générateur de tests unitaires Microsoft Research PEX dans Visual Studio. Jusqu'à présent, PEX était disponible comme outil électrique ou un complément du nom de code Digger. Pour le serveur local Microsoft Team Foundation fournit l'avenir aussi construire des agents pour d'autres systèmes d'exploitation, et pour la version cloud du TFS intègre le logiciel de gestion des versions de Microsoft.

Selon déjà publié quatre "Community Technology Preview"Versions sous le nom de Visual Studio 14 Microsoft appelle la pré-version présentée aujourd'hui seulement "Visual Studio 2015 Aperçu. Le produit fini sera publié l'année prochaine. La prochaine Team Foundation Server (TFS) n'apparaît pas cette fois-ci en même temps.

Pour la (sur la connexion), - a annoncé des innovations de la conférence Voir Heise Développeur:

(Holger Schwichtenberg) /(ANE)

Lisp – le secret entre les langages de programmation

Lisp - Le secret entre les langages de programmationcontenu
  1. Lisp - le secret entre les langages de programmation
  2. typage dynamique et Co.
  3. conclusion
  4. lire sur un côté

Le développeur américain Eric S. Raymond a dit que Lisp est même une des valeurs d'apprentissage des langues, si vous n'utiliserez jamais. Les connaissances acquises conduit à être un meilleur généralement développeurs.

Le développement du logiciel du dernier quart de siècle a été fortement influencée par les langues de la famille C. Depuis la sortie de C et C ++ dans les années 1972 et 1985, de nombreuses autres langues ont vu la lumière du monde, qui sont tous inspirés par eux. Cela inclut Java et C #, qui sont devenus pour de nombreux développeurs à par excellence de la langue de tous les jours.

À première vue, on pourrait penser que presque toutes les langues qui ont été publiés depuis, liés à C et C ++, en dehors des différents dialectes de base, qui ont également atteint une certaine gamme. Cependant, l'impression est trompeuse, car en réalité il y a un vrai trésor - non seulement dans d'autres langues, mais surtout à des concepts de langage de programmation tout à fait différentes.

Ceux-ci comprennent divers langages fonctionnels tels que Haskell et F #. Même le JavaScript utilisé maintenant largement voit que l'extérieur comme une langue de la famille C, en fait, il est beaucoup plus dépendant des autres langues concernées. L'un est le langage LISP publié 1958. Le nom est un acronyme qui signifie Liste traitement. Ainsi, il est évident dans Lisp est une langue spéciale pour les listes de traitement. Cela est en partie vrai, mais ne tient pas compte d'autre part, les vraies qualités de la langue: Quelle est la particularité Lisp est pas bon avec des listes, mais les conséquences qui en découlent.

Neuf raisons pour Lisp

Paul Graham, développeur et fondateur du capital-risque Y Combinator a, sur cette une entrée de blog très sujet avec le nom "Ce qui a fait Lisp différent" écrit, dans lequel il décrit neuf idées qui distinguent Lisp. Certains d'entre eux ont trouvé leur chemin dans les langues traditionnelles populaires au fil du temps, d'autres sont encore Lisp réservés exclusivement.

La première idée Paul Graham soutient que le langage de programmation Lisp connu comme la première vraie instruction if. John McCarthy, l'inventeur de Lisp, a rapporté dans "préhistoire LISP - Eté 1956 à 1958 été"Que ni le Fortran encore disponible au moment où les actes de construction fin Fortran liste traitement automatique des langues (FLPL) ont eu l'occasion de formuler des conditions comme une expression:

"Alors que les expressions pourraient être facilement traitées dans FLPL [...], il y avait ni expressions conditionnelles ni récursion, [...]"

Nouveaux produits Série

Il n'a pas toujours Java ou C: Dans cette nouvelle série, nos auteurs présentent leurs langages de programmation préférés avant en dehors du courant dominant.

En fait, contenue dans Fortran instruction if comme un saut conditionnel, car il est encore utilisé dans l'assemblage. McCarthy a également indiqué que, par conséquent la fonction XIE est conçu pour Fortran surprenant que deux a renvoyé un passé expression comme une valeur de retour. Là, il a toutefois mis en place en fonction normale Fortran, les deux expressions sont toujours évaluées:

"La fonction raccourci de nombreux programmes et les plus facile à comprendre, mais il a dû être utilisé avec parcimonie, Parce que les trois arguments devaient être évalués avant XIE ce Entrée, depuis XIE ce qui appelle comme Fortran fonction ordinaire bien écrite en langage machine."

Cela a changé en 1958 avec l'apparition de Lisp, qui, dans le sens moderne "droit" conditions contenues n'évaluent que l'un des deux arguments. Le comportement est resté et commun dans toutes les langues de programmation moderne.

Fonctionne comme types de données de première classe

La deuxième idée est d'examiner les fonctions que les types de données de première classe, ainsi que des chaînes ou des nombres. Cela provoque des fonctions peuvent être traitées comme des données car elles peuvent être transmises en tant que paramètres à d'autres fonctions ou renvoyées en tant que valeur de retour de cette. Cette approche, par exemple, constitue la base de l'utilisation de l'algorithme Google MapReduce, ce qui permet le traitement efficace des grands ensembles de données.

il est évident aux développeurs comment les données sont effectivement traitées. Par exemple, si une liste de numéros à carrés, il est seulement à la fonction qui effectue le calcul réel. Comme la liste est en fait courir, décide la fonction de carte avec laquelle le processus peut être optimisé en fonction du matériel disponible ou même en ce qui concerne d'autres facteurs.

Par conséquent, il serait par exemple possible de paralléliser la fonction de carte et d'accélérer ainsi sans le savoir ou développeur doit être conscient. Exactement décrit également développeur Joel Spolsky sur son blog "Peut votre langage de programmation Do This?"Quand il écrit:

"Et maintenant, vous comprenez quelque chose que j'ai écrit il y a un moment où je me suis plaint au sujet des étudiants CS qui ne sont jamais enseignées, mais rien Java: Sans comprendre la programmation fonctionnelle, vous ne pouvez pas inventer MapReduce, l'algorithme ne fait Google si massivement évolutive."

Il en tire la conclusion que la programmation fonctionnelle contribuera à améliorer la capacité de faire abstraction d'une langue, et que le code plus compact et peut mieux écrire réutilisable et évolutive lorsque les fonctions sont considérés comme des citoyens de première classe:

"Ok. J'espère que vous êtes convaincu, maintenant, ne langages de programmation avec des fonctions de première classe, vous trouverez plus d'opportunités pour laisser l'abstraction, ce qui signifie que votre code est plus petit, plus serré, plus réutilisable et plus évolutive. Beaucoup d'applications Google utilisent MapReduce et ils ont tous avantage chaque fois que quelqu'un Optimise il ou corrige des bugs."

récursion

La troisième idée, qui a d'abord été mis en œuvre en Lisp est celui de récursion. Cela semble étrange au premier abord, le concept semble être si évident. Cependant, aujourd'hui encore, pas toutes les langues soutient le concept dans son intégralité. JavaScript savait par exemple, pas de queue récursion, bien que d'autres langues comme F # et OCaml peut gérer récursion, mais il vous suffit de demander explicitement avant ECMAScript, 2015. En F #, par exemple, sert le mot-clé rec: languissons lors de la définition d'une fonction, il est impossible pour eux de s'appeler.

la contribution "Pourquoi les fonctions en OCaml / F # pas récursive par défaut?" sur Stack Overflow appelle comme la principale raison est qu'il est possible de définir de nouvelles fonctions, sans perdre la possibilité d'accéder à la fonction d'origine:

"Les fonctions ne sont pas récursives par défaut dans la famille CAML française des langues (y compris OCaml). Ce choix rend les définitions facilement à la fonction préséance (et variable) en utilisant let dans ces langues parce que vous pouvez vous référer à la définition précédente à l'intérieur du corps d'une nouvelle définition. F # a hérité cette syntaxe de OCaml."

Comme chaque problème récursive peut être résolu de manière itérative, le manque de disponibilité du concept restreint les développeurs dans une mesure limitée. Mais il y a beaucoup de tâches qui peuvent être résolus de manière récursive plus facile. Vous pensez à des problèmes tels que le calcul des nombres de Fibonacci ou la faculté.

Où est IBM pour Domino et Notes?

Où se trouve IBM sur à Domino et Notes?

De nombreux développeurs Domino craignent un avenir incertain pour leur domaine traditionnel de la responsabilité depuis un certain temps. Le moment culmine dans un certain nombre de messages de blog critiques. Peut-être déjà le mois prochain entre un peu de repos.

Après IBM a dit ces dernières années, de plus en plus prudents quant à l'avenir du serveur Domino ou des prises de position sont tout à fait échoué dans la direction semble maintenant que certains développeurs Domino patience avec Big Blue d'avoir perdu ce que dans plusieurs critiques Blog messages manifesté.

Donc, ils ratent des annonces sur les nouvelles versions de Domino. Ils tournent en ridicule que IBM a étendu son soutien au courant, mais même ancienne version (9.0.1) de deux ans, et ils se plaignent qu'il n'y avait pas une nouvelle version dans plus de trois ans. La prochaine ne sera pas sur la version 9.0.2 tant attendu, mais les notes Domino 9.0.1 Fix Pack 7, qui est prévue pour Septembre. En outre, pour que Peter adapter Janzen, chef de produit de longue date pour IBM Notes et Domino, avait récemment son dernier jour de travail chez IBM, qui est pour certains la fin d'une époque.

En outre INHI Cho Su a, depuis Mars 2016 nouveaux gestionnaires de solutions de collaboration d'IBM (anciennement IBM Lotus Software), Domino apparemment pris en compte dans leur présentation à la feuille de route actuelle sans mot. Au contraire, l'accent est mis, comme on l'a souligné plus tard, maintenant plus sur une prémisse sur la version des vers, SaaS basée sur le cloud d'IBM / plate-forme d'hébergement pour la messagerie.

Nahendes fin ...

Champion IBM Oliver Busse a observé que les clients cherchent des alternatives en raison de la situation incertaine. Même de nombreux consultants qui ont jusqu'à présent aligné leur modèle d'affaires pour être Domino, pour trouver une nouvelle orientation où IBM ne serait pas la clarté dans un proche avenir. La question de savoir ce qui se passerait après la fin du support dans deux ans, semble être justifiée, d'autant plus que de nombreux clients n'apprécient pas l'attention des nuages ​​d'IBM sur la plate-forme que les bus bruyants d'un service.

Martin Jimoch compare les billets actuels / Situation Domino avec la programmation Cobol. Certains quelques années pour faire de l'argent bon avec le maintien des applications existantes, mais un avenir à long terme n'existait pas. Par conséquent Jimoch recommande de chercher de nouveaux domaines d'activité. Il a également émis l'hypothèse que IBM offrira des services futurs pour la migration vers d'autres plates-formes que la société va continuer à gagner beaucoup d'argent comme dans le renouvellement des licences.

... ou est-ce pas?

Une lueur d'espoir se trouve dans l'article de Johnny Oldenburger qui connaît une annonce officielle, ce qui devrait donner à IBM dans le mois suivant. Dans ce document est d'aller aux lignes directrices du cycle de vie pour Notes et Domino 9.0.x. Peut-être il y a même une déclaration de la version de Notes Domino 9.0.2. Apparemment, IBM cliver aux Notes ou Domino communauté, Oldenburg fait référence dans sur les caractéristiques du passé récent, comme Access Application IBM Client et support de messagerie pour Microsoft Outlook.(ANE)

Google lance la plate-forme de développement à faible code Maker App

Google lance la plate-forme de développement à faible code Maker App

Apps similaires à puissance de Microsoft, l'outil vous permet de créer des applications d'entreprise dans le nuage sans beaucoup de connaissances de programmation.

Google entre en scène App Maker des soi-disant plates-formes de développement à faible code. La notion de tendance qui est maintenant dédiée à un rapport séparé Forrester Wave, décrit les outils qui vous permet de créer des applications sans grandes compétences de développement. Au début de Novembre, Microsoft a publié la chute dans le service Cloud de catégorie Applications électriques pour un total de phase bêta d'un an. Maker App Google prend évidemment une approche similaire.

En tant que base d'un IDE basé sur le cloud qui comprend de nombreux modèles utilisés. Développeurs ou analystes de données créent les applications en grande partie Drag&Laissez tomber. Sous le capot, HTML, CSS et JavaScript sont utilisés. La présentation met la conception sur la promotion par le matériel Google. Les applications peuvent être combinées dans l'éditeur visuel avec les composants G-Suite, diverses sources de données et API - à la fois dans le Google Cloud que l'API Directory et Prediction API ainsi que d'autres fournisseurs. Le déploiement se fait sans que l'utilisateur doit réserver des instances de cloud dédiés.

Plus de détails sont dans le billet de blog. À l'heure actuelle, le fabricant d'applications pour les clients d'affaires du G Suite (anciennement Google Apps) dans le programme est disponible adopteur précoce. Sur la structure tarifaire proposée et le type de facturation ne figure pas encore sur la page.(RME)