for Lockdown homeschooling: The parents who have forgotten what they learned at school By www.bbc.co.uk Published On :: Fri, 01 May 2020 00:04:01 GMT Parents have been turning to Google to help them teach the things they’ve forgotten. Full Article
for Coronavirus: Lockdown life 'a challenge' for vulnerable children By www.bbc.co.uk Published On :: Mon, 04 May 2020 19:59:02 GMT Charities warn some children who are missing out on additional support at school are falling into crisis. Full Article
for Coronavirus: Concerns for wellbeing of babies born in lockdown By www.bbc.co.uk Published On :: Thu, 07 May 2020 01:16:50 GMT New mothers are missing out on support for their babies amidst lockdown restrictions. Full Article
for Coronavirus: Key safeguards needed for schools to reopen - unions By www.bbc.co.uk Published On :: Sat, 09 May 2020 08:32:57 GMT Education unions say they want scientific evidence it is safe for teachers and pupils to return. Full Article
for Coronavirus: When might Hollywood reopen for business? By www.bbc.co.uk Published On :: Tue, 05 May 2020 00:11:38 GMT Cast and crews might have to quarantine together in the future when filming begins again. Full Article
for Norfolk Island morepork owls: Major breakthrough for rare species By www.bbc.co.uk Published On :: Fri, 08 May 2020 16:06:21 GMT Two fledglings may have safeguarded the future of the Norfolk Island morepork owl. Full Article
for Coronavirus: Russia swaps Victory Day parade for air show By www.bbc.co.uk Published On :: Sat, 09 May 2020 12:56:16 GMT The Red Square parade was cancelled because of the pandemic, but in neighbouring Belarus the parade went ahead as planned. Full Article
for Preparing for the Future with React Prereleases By reactjs.org Published On :: Tue, 22 Oct 2019 00:00:00 GMT To share upcoming changes with our partners in the React ecosystem, we’re establishing official prerelease channels. We hope this process will help us make changes to React with confidence, and give developers the opportunity to try out experimental features. This post will be most relevant to developers who work on frameworks, libraries, or developer tooling. Developers who use React primarily to build user-facing applications should not need to worry about our prerelease channels. React relies on a thriving open source community to file bug reports, open pull requests, and submit RFCs. To encourage feedback, we sometimes share special builds of React that include unreleased features. Because the source of truth for React is our public GitHub repository, it’s always been possible to build a copy of React that includes the latest changes. However it’s much easier for developers to install React from npm, so we occasionally publish prerelease builds to the npm registry. A recent example is the 16.7 alpha, which included an early version of the Hooks API. We would like to make it even easier for developers to test prerelease builds of React, so we’re formalizing our process with three separate release channels. Release Channels The information in this post is also available on our Release Channels page. We will update that document whenever there are changes to our release process. Each of React’s release channels is designed for a distinct use case: Latest is for stable, semver React releases. It’s what you get when you install React from npm. This is the channel you’re already using today. Use this for all user-facing React applications. Next tracks the master branch of the React source code repository. Think of these as release candidates for the next minor semver release. Use this for integration testing between React and third party projects. Experimental includes experimental APIs and features that aren’t available in the stable releases. These also track the master branch, but with additional feature flags turned on. Use this to try out upcoming features before they are released. All releases are published to npm, but only Latest uses semantic versioning. Prereleases (those in the Next and Experimental channels) have versions generated from a hash of their contents, e.g. 0.0.0-1022ee0ec for Next and 0.0.0-experimental-1022ee0ec for Experimental. The only officially supported release channel for user-facing applications is Latest. Next and Experimental releases are provided for testing purposes only, and we provide no guarantees that behavior won’t change between releases. They do not follow the semver protocol that we use for releases from Latest. By publishing prereleases to the same registry that we use for stable releases, we are able to take advantage of the many tools that support the npm workflow, like unpkg and CodeSandbox. Latest Channel Latest is the channel used for stable React releases. It corresponds to the latest tag on npm. It is the recommended channel for all React apps that are shipped to real users. If you’re not sure which channel you should use, it’s Latest. If you’re a React developer, this is what you’re already using. You can expect updates to Latest to be extremely stable. Versions follow the semantic versioning scheme. Learn more about our commitment to stability and incremental migration in our versioning policy. Next Channel The Next channel is a prerelease channel that tracks the master branch of the React repository. We use prereleases in the Next channel as release candidates for the Latest channel. You can think of Next as a superset of Latest that is updated more frequently. The degree of change between the most recent Next release and the most recent Latest release is approximately the same as you would find between two minor semver releases. However, the Next channel does not conform to semantic versioning. You should expect occasional breaking changes between successive releases in the Next channel. Do not use prereleases in user-facing applications. Releases in Next are published with the next tag on npm. Versions are generated from a hash of the build’s contents, e.g. 0.0.0-1022ee0ec. Using the Next Channel for Integration Testing The Next channel is designed to support integration testing between React and other projects. All changes to React go through extensive internal testing before they are released to the public. However, there are myriad environments and configurations used throughout the React ecosystem, and it’s not possible for us to test against every single one. If you’re the author of a third party React framework, library, developer tool, or similar infrastructure-type project, you can help us keep React stable for your users and the entire React community by periodically running your test suite against the most recent changes. If you’re interested, follow these steps: Set up a cron job using your preferred continuous integration platform. Cron jobs are supported by both CircleCI and Travis CI. In the cron job, update your React packages to the most recent React release in the Next channel, using next tag on npm. Using the npm cli: npm update react@next react-dom@next Or yarn: yarn upgrade react@next react-dom@next Run your test suite against the updated packages. If everything passes, great! You can expect that your project will work with the next minor React release. If something breaks unexpectedly, please let us know by filing an issue. A project that uses this workflow is Next.js. (No pun intended! Seriously!) You can refer to their CircleCI configuration as an example. Experimental Channel Like Next, the Experimental channel is a prerelease channel that tracks the master branch of the React repository. Unlike Next, Experimental releases include additional features and APIs that are not ready for wider release. Usually, an update to Next is accompanied by a corresponding update to Experimental. They are based on the same source revision, but are built using a different set of feature flags. Experimental releases may be significantly different than releases to Next and Latest. Do not use Experimental releases in user-facing applications. You should expect frequent breaking changes between releases in the Experimental channel. Releases in Experimental are published with the experimental tag on npm. Versions are generated from a hash of the build’s contents, e.g. 0.0.0-experimental-1022ee0ec. What Goes Into an Experimental Release? Experimental features are ones that are not ready to be released to the wider public, and may change drastically before they are finalized. Some experiments may never be finalized — the reason we have experiments is to test the viability of proposed changes. For example, if the Experimental channel had existed when we announced Hooks, we would have released Hooks to the Experimental channel weeks before they were available in Latest. You may find it valuable to run integration tests against Experimental. This is up to you. However, be advised that Experimental is even less stable than Next. We do not guarantee any stability between Experimental releases. How Can I Learn More About Experimental Features? Experimental features may or may not be documented. Usually, experiments aren’t documented until they are close to shipping in Next or Stable. If a feature is not documented, they may be accompanied by an RFC. We will post to the React blog when we’re ready to announce new experiments, but that doesn’t mean we will publicize every experiment. You can always refer to our public GitHub repository’s history for a comprehensive list of changes. Full Article
for A transpiler for futuristic Ruby, and the RailsConf 2020 videos By rubyweekly.com Published On :: Thu, 7 May 2020 00:00:00 +0000 #500 — May 7, 2020 Read on the Web ???? Welcome to issue 500! A bit of an arbitrary milestone but thanks to you all :-) Ruby Weekly Ruby Next: Make All Rubies Quack Alike — Ruby Next is a Ruby-to-Ruby transpiler that allows you to use the latest features of Ruby in previous versions without monkey patching or refinements. Could this be how experimental features are released going forward? Vladimir Dementyev Ruby 3 'Guilds' Proposal Now Called Ractor — This documentation is in Japanese (though the source code examples are easy to follow) but the news is that the new, proposed concurrency mechanism for Ruby 3 called Guilds (explained here) has been renamed to Ractor (as in ‘Ruby actors’, Ruby’s take on the actor model). Koichi Sasada Don’t Do Auth From Scratch. Focus On Your App — Spend less time on authentication and authorization and more time developing your awesome app. Auth built for <devs>. Download our community edition for free. FusionAuth sponsor Take the 2020 Ruby on Rails Survey — This is the sixth outing for Planet Argon’s survey which began in 2009. We try and support it each time as the results always make for interesting reading (see 2018’s results). Participate and become data ???? Planet Argon Team ???? RailsConf 2020 Videos If you recall, RailsConf 2020 was cancelled in its in-person form to be replaced by a 'couch edition'. This has been taking place and the videos have been released! Here are some of the highlights: DHH's keynote which takes the form of a chat between him and Evan Phoenix. Eileen Uchitelle digs deep on Rails' multi database support. (We interviewed her a few months ago too.) Building a Rails Controller From Scratch by Alex Kitchens digs into the interesting world of reimplementing ActionController with something of your own creation. Krystan HuffMenne takes us on a journey into the lifecycle of a response in Rails. It's worth understanding this stuff. Learn about using Sorbet to do static type checking in Rails with Hung Harry Doan. Aaron 'tenderlove' Patterson (who has just moved to Shopify) has a talk on, well, lots of bits and pieces in his usual style. If you want the full collection, here's the YouTube playlist. Alt::BrightonRuby: A Slightly Odd, Quasi-Conference for Strange Times — Alt::BrightonRuby is not happening in-person this year. Instead, you can buy the recorded talks, get a _why book, and get some podcasts with the speakers. Alt::BrightonRuby ???? Jobs Find a Job Through Vettery — Vettery specializes in tech roles and is completely free for job seekers. Create a profile to get started. Vettery Security Engineer (Remote) — Are you an engineer with experience in Rails and/or Go? Join our team and help secure our apps and cloud infrastructure. Shogun ℹ️ Interested in running a job listing in Ruby Weekly? There's more info here. ???? Articles & Tutorials ▶ How To Begin Contributing to a Gem — If you’ve been using a library for a while and you want to contribute back, how do you get started? A 12 minute introduction here. Drifting Ruby How to Set Up Factory Bot on a Fresh Rails Project — Factory Bot is a library for setting up Ruby objects as test data – an alternative to fixtures, essentially. Jason Swett Using Postgres's DISTINCT ON to Avoid an N+1 Query — “Recently I fixed a tricky N+1 query and thought I should write it up..” John Nunemaker Need to Upgrade Rails? Don’t Know How Long It Will Take? — Get an action plan for your Rails upgrade and an in-depth report about your technical debt and outdated dependencies ????. FastRuby.io | Rails Upgrade Services sponsor 5 Uses for 'Splats' — 5 different ways to leverage Ruby’s splat (*) operator. Jason Dinsmore Running Multiple Instances of Webpacker — If you’re working on multiple Rails apps at once, changing where Rails gets served up is easy by configuring the port, but what about Webpacker? That requires another tweak. Scott Watermasysk Performing Asynchronous HTTP requests in Rails — How to update parts an app’s pages with asynchronous HTTP requests. A step-by-step how-to with JavaScript’s fetch() function, and Rails native server-side partial rendering. Remi Mercier How to Use AWS SimpleDB from Ruby — If you haven’t heard of AWS SimpleDB, you wouldn’t be alone as it’s not very popular, but it’s a pretty simple and cheap way to store simple documents in the cloud. Peter Cooper What's The Difference Between Monitoring Webhooks and Background Jobs AppSignal sponsor Ways to Reduce Your Heroku App's Slug Size — You might be surprised Heroku didn’t already do some of this for you. Rohit Kumar A Chat with Thibaut Barrère — If you missed our interview with Thibaut Barrere (Rubyist, and creator of the Kiba ETL framework) in last week’s issue, you can catch up here. Glenn Goodrich ???? Code and Tools Rodauth 2.0: Ruby's 'Most Advanced' Authentication Framework — A authentication framework that can work in any Rack-based webapp. Built using Roda and Sequel, Rodauth can be used with other frameworks and database libraries if you wish. Why’s it so advanced? More info on that here. Jeremy Evans RubyGems 3.1.3 Released — Lots of little bug fixes and tweaks. RubyGems Blog Business: Business Day Calculations for Ruby — Define your working days and holidays and then you can do ‘business day arithmetic’ (for example, what’s in 5 working days after now taking holidays and weekends into account?) GoCardless Lockbox: Modern Encryption for Rails Andrew Kane split: The Rack Based A/B 'Split' Testing Framework — A mature framework with robust configuration and multiple options for determining the winning option. Split P.S. In last week's issue, one of the links to our sponsors was incorrect and some readers emailed us to say they really wanted to read the promised article, Let’s Explore Big-O Notation with Ruby, so here it is. Apologies for any inconvenience. Full Article
for npm's CTO: So Long, and Thanks for All The Packages By nodeweekly.com Published On :: Thu, 16 Apr 2020 00:00:00 +0000 #334 — April 16, 2020 Read on the Web Node Weekly npm Has Now (Actually) Joined GitHub — We announced GitHub’s acquisition of npm a month ago but now the process is complete. Not much real news here but the plan is to now focus on community engagement and improving registry infrastructure. Jeremy Epling (GitHub) Node v13.13.0 (Current) Released — fs.readv is a new function to sequentially read from an array of ArrayBufferViews, util.inspect now lets you specify a maximum length for printed strings, the default maximum HTTP header size has been increased to 16KB, there are three new collaborators, and more. Michaël Zasso Get Better Insight into Redis with RedisGreen — Modern hosting and monitoring services include memory usage maps, seamless scaling, key size tracking, and more. RedisGreen sponsor ▶ Watch the Live Coding of a New Feature for Node.js — This is not something for novices, but if the idea of watching ‘over the shoulder’ of a Node.js collaborator implementing a new feature directly into Node itself interests you.. this could be a valuable hour spent. Vladimir de Turckheim node-libcurl 2.1: libcurl Bindings for Node — libcurl is a very powerful and well established way to fetch data from URLs across numerous protocols. node-libcurl 2.1.0 brings support for the latest version of libcurl (7.69.1) to us in the Node world. Jonathan Cardoso Machado npm's CTO: 'So Long, and Thanks for All The Packages!' — Ahmad Nassri was npm’s CTO but has now left. Here, he reflects on the past ten years of npm, the repo, the company, and the achievements of both. Ahmad Nassri ???? Jobs Find a Job Through Vettery — Vettery specializes in tech roles and is completely free for job seekers. Create a profile to get started. Vettery Node.js Developer at X-Team (Remote) — Join X-Team and work on projects for companies like Riot Games, FOX, Coinbase, and more. Work from anywhere. X-Team ▶️ Get ready for your next role: Pluralsight is free for the entire month of April. Stay Home. Skill Up. #FreeApril — SPONSORED ???? Tutorials Working With AWS Route 53 from Node — Route 53 is Amazon Web Services’ suite of DNS-related services. Like every AWS service, you can control it via an API, and here’s how to manipulate hosted zones from Node. Valeri Karpov Best Practices Learnt Running Express.js in Production for 4 Years — There’s a lot of stuff packed in here focused around middleware, testing, logging, and general concerns around scaling and keeping apps running in production. Adnan Rahić The Node.js Security Handbook — Improve the security of your Node.js app with the Node.js security handbook made for developers. Sqreen sponsor How To Set Up an Express API Backend Project with PostgreSQL — A pretty extensive walkthrough of creating an HTTP API using Express with Node.js and Postgres on the backend, then deploying it all on Heroku. Chidi Orji Porting to TypeScript Solved Our API Woes — From the guy behind the (in)famous Wat video comes a tale of porting a backend from Ruby to TypeScript. Gary Bernhardt How to Mass Rename Files in Node Flavio Copes ▶ Let's Build a Digital Circuit Simulator In JavaScript — A special episode of the Low Level JavaScript series takes us on a brief journey into the world of digital logic. Low Level JavaScript The Story of How I Created a Way to Port Windows Apps to Linux — We mentioned ElectronCGI recently as a way to let .NET and Node.js code depend upon each other, but here its creator explains more about the how and why. Rui Figueiredo How to Create an Alexa Skill with Node — Implementing a custom ‘skill’ for Amazon Alexa by using Node and AWS Lambda. Xavier Portilla Edo ???? Tools, Resources and Libraries Node v10.20.1 (LTS) Released — If you’re still using Node 10, don’t use v10.20.0, use this, due to a bug in the .0 release. Bethany Nicolle Griggs emoji-regex: A Regular Expression to Match All Emoji-Only Symbols Mathias Bynens ip-num: A Library to Work with ASN, IPv4, and IPv6 Numbers — Happy in both Node and the browser. dadepo Optimize Node.js Performance with Distributed Tracing in Datadog Datadog APM sponsor verify-json: Verify JSON Using a Lightweight Schema — A lighter weight alternative to something like JSON Schema. Yusuf Bhabhrawala middle-manager: A Lightweight 'No BS' Presentation Tool — A bit of humor, really. It turns Markdown into basic presentations but then the magic is it detects your ‘BS’ business language so you can remove it ???? Anders Full Article
for 'My search for the boy in a child abuse video' By www.bbc.co.uk Published On :: Sun, 08 Mar 2020 00:09:54 GMT Lucy Proctor was horrified when she was WhatsApped a sex abuse video. And she wanted to find out if the boy was safe. Full Article
for Coronavirus: Here's how you can stop bad information from going viral By www.bbc.co.uk Published On :: Mon, 20 Apr 2020 10:39:28 GMT Experts are calling on the public to practise ‘information hygiene’ to help stop the spread of falsehoods online. Full Article
for The man who grew his own Amazon rainforest By www.bbc.co.uk Published On :: Wed, 01 Apr 2020 23:07:59 GMT Fighting back against destruction in the Amazon: how one man grew a rainforest of his own. Full Article
for Coronavirus crisis forces farmers to throw milk away By www.bbc.co.uk Published On :: Wed, 08 Apr 2020 23:16:01 GMT Some dairy farmers are throwing away thousands of litres amid supply chain disruption due to coronavirus. Full Article
for Bill Gates: Few countries will get 'A-grade' for coronavirus response By www.bbc.co.uk Published On :: Sun, 12 Apr 2020 05:00:05 GMT The Microsoft billionaire says we find ourselves in uncharted territory with the coronavirus pandemic. Full Article
for Coronavirus: UK chancellor on new microloan scheme for small businesses By www.bbc.co.uk Published On :: Mon, 27 Apr 2020 16:30:38 GMT Firms will be able to borrow up to £50,000, which will be interest free for the first year. Full Article
for Coronavirus: 'My cafe's going bust before it's even opened' By www.bbc.co.uk Published On :: Tue, 28 Apr 2020 23:04:30 GMT A car factory worker turned cafe owner explains how coronavirus is affecting his business dream. Full Article
for Coronavirus: Disease meets deforestation at heart of Brazil's Amazon By www.bbc.co.uk Published On :: Mon, 04 May 2020 01:24:37 GMT Coronavirus has overwhelmed Manaus, the Amazon's biggest city, and the worst is yet to come. Full Article
for Life for asylum seekers in lockdown on the US-Mexico border By www.bbc.co.uk Published On :: Wed, 06 May 2020 23:06:57 GMT Magaly Contreras has spent nine months in a Tijuana shelter and is worried about her future. Full Article
for Brazil's Amazon: Surge in deforestation as military prepares to deploy By www.bbc.co.uk Published On :: Fri, 08 May 2020 21:17:52 GMT The military is preparing to deploy to the region to try to stop illegal logging and mining. Full Article
for Leveraging React for Easy Image Management By reactjsnews.com Published On :: Tue, 17 Jan 2017 17:00:00 +0000 React is a good tool when it comes to building flexible and reusable UI components. However, it’s “one of those libraries” that cannot handle all the tasks involved in building a full fleshed UI project. Other supporting tools - such as a recently announced React SDK from Cloudinary - are available to provide solutions that the React core cannot. In such cases where media (images and videos) becomes a heavy task to handle, Cloudinary simplifies the process with the new React SDK. Let’s build and image library with Cloudinary and React using the Cloudinary’s React SDK. Prerequisites The only requirements for using Cloudinary in your existing React project are to install the React SDK and the upload widget. If you do not have an existing React project and want to try these examples, take the following steps: 1. Install Dependencies We need a minimal amount of dependencies so we can focus on building a media library and not structuring a React app: { "name": "img-library", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "watch": "webpack -d --watch", "build": "webpack", "serve": "serve ./public" }, "author": "", "license": "MIT", "devDependencies": { "babel-core": "^6.18.2", "babel-loader": "^6.2.9", "babel-preset-es2015": "^6.18.0", "babel-preset-react": "^6.16.0", "serve": "^1.4.0", "webpack": "^1.14.0" }, "dependencies": { "axios": "^0.15.3", "cloudinary-react": "^1.0.1", "react": "^15.4.1", "react-dom": "^15.4.1" } } React (and React DOM) must be used since we are making a React app. The cloudinary-react dependency is Cloudinary’s React SDK, which we will soon see how it works. axios is a tool for making HTTP requests and, in our case, we will use it request images from the Cloudinary server. # Install dependencies npm install 2. Setup Webpack Webpack is our build tool. Only minimal settings are required to have a build running and our React app compiling: // ./webpack.config.js var webpack = require('webpack'); var path = require('path'); var BUILD_DIR = path.resolve(__dirname, 'public'); var APP_DIR = path.resolve(__dirname, 'src'); var config = { entry: APP_DIR + '/index.jsx', output: { path: BUILD_DIR, filename: 'bundle.js' }, module : { loaders : [ { test : /.jsx?/, include : APP_DIR, loader : 'babel' } ] } }; module.exports = config; Basic configuration - an entry, output and loaders to handle the React .jsx files. 3. Entry Points We need to create an entry point, as we specified in the Webpack configuration, and another entry point for the browser, which is an index.html file: // ./src/index.jsx import React, { Component } from 'react'; import { render } from 'react-dom'; class Main extends Component { render() { return ( <div className="main"> <h1>Scotchage</h1> </div> ); } } render(<Main />, document.getElementById('container')); <!-- ./public/index.html --> <html> <head> <!--Stylesheet--> <link rel="stylesheet" href="style.css"> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <!--Container for React rendering--> <div id="container"></div> <!--Bundled file--> <script src="bundle.js"></script> </body> </html> 4. Create Cloudinary Account You need a Cloudinary account to continue with these examples. Sign up for free and store your credentials safely as shown on the dashboard: Uploading Images Before using the React SDK to deliver images from the Cloudinary servers, let’s use the awesome Cloudinary upload widget to upload images. First, we need to add this widget to our index.html: <!-- ./public/index.html --> <html> <head> . . . </head> <body> . . . <!-- UPLOAD WIDGET --> <script src="//widget.cloudinary.com/global/all.js" type="text/javascript"></script> <script src="bundle.js"></script> </body> </html> Next, we create a button, attach an event to it and upload an image once the button is clicked: import React, { Component } from 'react'; import { render } from 'react-dom'; class Main extends Component { uploadWidget() { cloudinary.openUploadWidget({ cloud_name: 'CLOUD_NAME', upload_preset: 'PRESET', tags:['xmas']}, function(error, result) { console.log(result); }); } render(){ return ( <div className="main"> <h1>Galleria</h1> <div className="upload"> <button onClick={this.uploadWidget.bind(this)} className="upload-button"> Add Image </button> </div> </div> ); } } render(<Main />, document.getElementById('container')); The uploadWidget member method is the handler invoked by the click event to handle our image upload by calling cloudinary.openUploadWidget. openUploadWidget takes a config object and the upload callback handler. The config object must have at least cloud_name and upload_preset properties with valid values. You can read more about Cloud Names and Upload Presets. Delivering Images with SDK The Cloudinary React SDK has three major components, Image, CloudinaryContext and Transformation: Image: This component is responsible for the actual delivery of images. It takes the image ID and asks the server for this image. When the image is provided, it is also responsible for painting the image on the browser. Transformation: This component is used to apply transformations to images delivered with Image. CloudinaryContext: You can specify Cloudinary configuration for each image on the Image component. This can be tedious when you are dealing with multiple images. CloudinaryContext allows you to apply configuration to a group of Images. Most times you would end up with a structure like this: <CloudinaryContext> <Image> <Transformation /> <Transformation /> </Image> <Image> <Transformation /> </Image> </CloudinaryContext> Back to our demo app, we can request an image from the Cloudinary server and display it with the following components: import React, { Component } from 'react'; import axios from 'axios'; import { CloudinaryContext, Transformation, Image } from 'cloudinary-react'; import { render } from 'react-dom'; class Main extends Component { constructor(props) { super(props); this.state = { gallery: [] } } componentDidMount() { // Request for images tagged xmas axios.get('http://res.cloudinary.com/christekh/image/list/xmas.json') .then(res => { console.log(res.data.resources); this.setState({gallery: res.data.resources}); }); } uploadWidget() { // . . . } render(){ return ( <div className="main"> <h1>Galleria</h1> <div className="gallery"> <CloudinaryContext cloudName="CLOUDNAME"> { this.state.gallery.map(data => { return ( <div className="responsive" key={data.public_id}> <div className="img"> <a target="_blank" href={`http://res.cloudinary.com/christekh/image/upload/${data.public_id}.jpg`}> <Image publicId={data.public_id}> <Transformation crop="scale" width="300" height="200" dpr="auto" responsive_placeholder="blank" /> </Image> </a> <div className="desc">Created at {data.created_at}</div> </div> </div> ) }) } </CloudinaryContext> <div className="clearfix"></div> </div> </div> ); } } render(<Main />, document.getElementById('container')); Take one more look at the upload code: cloudinary.openUploadWidget({ cloud_name: 'christekh', upload_preset: 'idcidr0h', tags:['xmas']}, function(error, result) { . . . Each image is tagged with xmas, which serves as a way to request images with this tag as a collection. This is exactly what we are using the axios library to do when the component mounts: axios.get('http://res.cloudinary.com/CLOUDNAME/image/list/xmas.json') .then(res => { console.log(res.data.resources); this.setState({gallery: res.data.resources}); }); axios uses promises, so whenever the promise resolves in our case, we have a payload of images. We take advantage of React state to update our UI with the fetched resources. Down to rendering, we configure the CloudinaryContext with our cloud_name, iterate over the gallery state that stores the images and displays them using the Image component. We also apply few transformations using the Transformation component. For security reasons, Cloudinary will not allow you to make such request from the client unless you tell it to. The best way to go is to use the admin API via a backend SDK and then send the resource list to the client. Updating State with New Uploads We are able to upload images and request for images to be displayed on the user’s browsers. Here is how we update the displayed images instantly when the user uploads a new image: uploadWidget() { let _this = this; cloudinary.openUploadWidget({ cloud_name: 'CLOUDNAME', upload_preset: 'PRESET', tags:['xmas']}, function(error, result) { // Update gallery state with newly uploaded image _this.setState({gallery: _this.state.gallery.concat(result)}) }); } Rather than logging the uploaded image information to the console, we update the gallery state, which bears the list of requested images, by concatenating the uploaded result to the gallery. Image Management Simplified Image uploads, transformation and delivery has never been easier. These tasks have been a serious challenge for developers. Cloudinary has created a way to abstract all this hard work, enabling you to simply plug and play. Full Article
for Component Kits for React Native By reactjsnews.com Published On :: Tue, 07 Mar 2017 17:00:00 +0000 You won’t find as many styling solutions for React Native as you will for React JS. This stems from two simple realities: React Native is a much smaller target for component libraries than traditional CSS frameworks. In other words, Bootstrap CSS can be used with any web framework, whereas component libraries for React Native only work with…you guessed it…React Native. Customizing React Native styling isn’t the easiest thing in the world. Many apps demand custom styling, which makes component kits not too useful. In addition, it is challenging to customize each and every component, as the flexibility that you gain with traditional CSS on the web doesn’t carry over easily to component libraries. With that said, here are a few options. You won’t find as many styling solutions for React Native as you will for React JS. This stems from two simple realities: React Native is a much smaller target for component libraries than traditional CSS frameworks. In other words, Bootstrap CSS can be used with any web framework, whereas component libraries for React Native only work with…you guessed it…React Native. Customizing React Native styling isn’t the easiest thing in the world. Many apps demand custom styling, which makes component kits not too useful. In addition, it is challenging to customize each and every component, as the flexibility that you gain with traditional CSS on the web doesn’t carry over easily to component libraries. With that said, here are a few options. NativeBase - Essential cross-platform UI components for React Native A huge collection of components, most of which look quite nice. That’s the plus side. The down side is that some of the components are somewhat buggy. No offense to the library authors, its just the state of the library - it needs a bit of work. For example, here’s an issue I opened a few days ago when I discovered the swipe deck component crashed when only a single data element was provided: DeskSwiper throws on single element lists · Issue #562 · GeekyAnts/NativeBase. The authors fixed it up awfully fast, but, hey, that’s a bug that seems like it could have been caught earlier. React Native Elements - react-native-community/react-native-elements This is my personal favorite. The styling is generally platform agnostic; it won’t look out of place using it on either Android or iOS. Each component has simple customization, the docs are solid, and it comes with a good set of icons. This is a no-brainer. React Native Material Design - react-native-material-design/react-native-material-design Another solid choice, but mostly only useful for Android. Again, its a bit unsettling to see material design - traditionally a stable of Android devices - on iOS. Besides that, the docs are still a work in progress, as evidenced by the lack of docs for nearly half of the components. Nonetheless, if you’re looking for a material design solution, this is better than nothing. It is also worth noting that the project looks generally unmaintained. React Native Material Kit - xinthink/react-native-material-kit Another material design solution, but much better maintained than React Native Material Design. This one has the added benefit of a nicer customization API for creating your own custom components - see the docs on this. It also has some more dynamic components like progress bars and sliders, which you may not see on other frameworks. Anything that helps save you time to build your app is always a solid benefit. Do Your Own Styling! If none of these choices float your boat, you can always learn how to style components from scratch yourself. I have a course on Udemy that will teach you how to make perfectly reusable components for your own projects. Check it out here: The Complete React Native and Redux Course - Udemy Full Article
for Claudio Gomes of France and Abel Ruiz of Spain pose for photos By www.fifa.com Published On :: Fri, 27 Oct 2017 13:00:00 GMT GUWAHATI, INDIA - OCTOBER 17: Claudio Gomes of France and Abel Ruiz of Spain pose for photos with referees prior to the FIFA U-17 World Cup India 2017 Round of 16 match between France and Spain at Indira Gandhi Athletic Stadium on October 17, 2017 in Guwahati, India. (Photo by Tom Dulat - FIFA/FIFA via Getty Images) Full Article Area=Tournament Section=Competition Kind=Photo Tournament=FIFA U-17 World Cup India 2017
for : A player from Mali prays before entering the field By www.fifa.com Published On :: Sat, 28 Oct 2017 11:56:00 GMT KOLKATA, INDIA - OCTOBER 28: A player from Mali prays before entering the field prior the FIFA U-17 World Cup India 2017 3rd Place match between Brazil and Mali at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Buda Mendes - FIFA/FIFA via Getty Images) Full Article Area=Tournament Section=Competition Kind=Photo Tournament=FIFA U-17 World Cup India 2017
for Players of Brazil line up for a picture during the FIFA U-17 World Cup India By www.fifa.com Published On :: Sat, 28 Oct 2017 12:57:00 GMT KOLKATA, INDIA - OCTOBER 28: Players of Brazil line up for a picture during the FIFA U-17 World Cup India 2017 3rd Place match between Brazil and Mali at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Buda Mendes - FIFA/FIFA via Getty Images) Full Article Area=Tournament Section=Competition Kind=Photo Tournament=FIFA U-17 World Cup India 2017
for Players of Brazil and Mali line up for the National Anthems By www.fifa.com Published On :: Sat, 28 Oct 2017 12:59:00 GMT KOLKATA, INDIA - OCTOBER 28: Players of Brazil and Mali line up for the National Anthems ahead of the FIFA U-17 World Cup India 2017 3rd Place match between Brazil and Mali at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Buda Mendes - FIFA/FIFA via Getty Images) Full Article Area=Tournament Section=Competition Kind=Photo Tournament=FIFA U-17 World Cup India 2017
for Lincoln (R) of Brazil battles for the ball with Ibrahim Kane and Boubacar Haidara of Mali By www.fifa.com Published On :: Sat, 28 Oct 2017 13:08:00 GMT KOLKATA, INDIA - OCTOBER 28: Lincoln (R) of Brazil battles for the ball with Ibrahim Kane and Boubacar Haidara of Mali during the FIFA U-17 World Cup India 2017 3rd Place match between Brazil and Mali at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Buda Mendes - FIFA/FIFA via Getty Images) Full Article Area=Tournament Section=Competition Kind=Photo Tournament=FIFA U-17 World Cup India 2017
for Players of Mali line up for a picture By www.fifa.com Published On :: Sat, 28 Oct 2017 13:08:00 GMT KOLKATA, INDIA - OCTOBER 28: Players of Mali line up for a picture during the FIFA U-17 World Cup India 2017 3rd Place match between Brazil and Mali at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Buda Mendes - FIFA/FIFA via Getty Images) Full Article Area=Tournament Section=Competition Kind=Photo Tournament=FIFA U-17 World Cup India 2017
for Paulinho of Brazil battles for the ball with Hadji Drame of Mali By www.fifa.com Published On :: Sat, 28 Oct 2017 13:09:00 GMT KOLKATA, INDIA - OCTOBER 28: Paulinho of Brazil battles for the ball with Hadji Drame of Mali during the FIFA U-17 World Cup India 2017 3rd Place match between Brazil and Mali at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Buda Mendes - FIFA/FIFA via Getty Images) Full Article Area=Tournament Section=Competition Kind=Photo Tournament=FIFA U-17 World Cup India 2017
for Lincoln of Brazil battles for the ball with Boubacar Haidara and Mamadi Fofana of Mali By www.fifa.com Published On :: Sat, 28 Oct 2017 13:26:00 GMT KOLKATA, INDIA - OCTOBER 28: Lincoln (R) of Brazil battles for the ball with Boubacar Haidara and Mamadi Fofana of Mali during the FIFA U-17 World Cup India 2017 3rd Place match between Brazil and Mali at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Buda Mendes - FIFA/FIFA via Getty Images) Full Article Area=Tournament Section=Competition Kind=Photo Tournament=FIFA U-17 World Cup India 2017
for Lincoln of Brazil battles for the ball with Boubacar Haidara and Mamadi Fofana of Mali By www.fifa.com Published On :: Sat, 28 Oct 2017 13:26:00 GMT KOLKATA, INDIA - OCTOBER 28: Lincoln (R) of Brazil battles for the ball with Boubacar Haidara and Mamadi Fofana of Mali during the FIFA U-17 World Cup India 2017 3rd Place match between Brazil and Mali at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Buda Mendes - FIFA/FIFA via Getty Images) Full Article Area=Tournament Section=Competition Kind=Photo Tournament=FIFA U-17 World Cup India 2017
for Paulinho of Brazil battles for the ball with Fode Konate of Mali By www.fifa.com Published On :: Sat, 28 Oct 2017 13:31:00 GMT KOLKATA, INDIA - OCTOBER 28: Paulinho (R) of Brazil battles for the ball with Fode Konate of Mali during the FIFA U-17 World Cup India 2017 3rd Place match between Brazil and Mali at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Buda Mendes - FIFA/FIFA via Getty Images) Full Article Area=Tournament Section=Competition Kind=Photo Tournament=FIFA U-17 World Cup India 2017
for Paulinho of Brazil battles for the ball with goalkeeper Youssouf Koita of Mali By www.fifa.com Published On :: Sat, 28 Oct 2017 13:32:00 GMT KOLKATA, INDIA - OCTOBER 28: Paulinho (C) of Brazil battles for the ball with goalkeeper Youssouf Koita of Mali during the FIFA U-17 World Cup India 2017 3rd Place match between Brazil and Mali at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Buda Mendes - FIFA/FIFA via Getty Images) Full Article Area=Tournament Section=Competition Kind=Photo Tournament=FIFA U-17 World Cup India 2017
for Players of Mali pose for photos during the FIFA U-17 World Cup India 2017 3rd Place By www.fifa.com Published On :: Sat, 28 Oct 2017 13:33:00 GMT KOLKATA, INDIA - OCTOBER 28: Players of Mali pose for photos during the FIFA U-17 World Cup India 2017 3rd Place match between Brazil and Mali at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Tom Dulat - FIFA/FIFA via Getty Images) Full Article Area=Tournament Section=Competition Kind=Photo Tournament=FIFA U-17 World Cup India 2017
for Lincoln of Brazil battles for the ball with Salam Jiddou of Mali By www.fifa.com Published On :: Sat, 28 Oct 2017 14:02:00 GMT KOLKATA, INDIA - OCTOBER 28: Lincoln (L) of Brazil battles for the ball with Salam Jiddou of Mali during the FIFA U-17 World Cup India 2017 3rd Place match between Brazil and Mali at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Buda Mendes - FIFA/FIFA via Getty Images) Full Article Area=Tournament Section=Competition Kind=Photo Tournament=FIFA U-17 World Cup India 2017
for Lincoln of Brazil battles for the ball with Boubacar Haidara of Mali By www.fifa.com Published On :: Sat, 28 Oct 2017 14:03:00 GMT KOLKATA, INDIA - OCTOBER 28: Lincoln of Brazil battles for the ball with Boubacar Haidara of Mali during the FIFA U-17 World Cup India 2017 3rd Place match between Brazil and Mali at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Buda Mendes - FIFA/FIFA via Getty Images) Full Article Area=Tournament Section=Competition Kind=Photo Tournament=FIFA U-17 World Cup India 2017
for Brenner of Brazil battles for the ball with Boubacar Haidara of Mali By www.fifa.com Published On :: Sat, 28 Oct 2017 14:03:00 GMT KOLKATA, INDIA - OCTOBER 28: Brenner (R) of Brazil battles for the ball with Boubacar Haidara of Mali during the FIFA U-17 World Cup India 2017 3rd Place match between Brazil and Mali at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Buda Mendes - FIFA/FIFA via Getty Images) Full Article Area=Tournament Section=Competition Kind=Photo Tournament=FIFA U-17 World Cup India 2017
for Lincoln of Brazil battles for the ball with Boubacar Haidara of Mali By www.fifa.com Published On :: Sat, 28 Oct 2017 14:04:00 GMT KOLKATA, INDIA - OCTOBER 28: Lincoln of Brazil battles for the ball with Boubacar Haidara of Mali during the FIFA U-17 World Cup India 2017 3rd Place match between Brazil and Mali at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Buda Mendes - FIFA/FIFA via Getty Images) Full Article Area=Tournament Section=Competition Kind=Photo Tournament=FIFA U-17 World Cup India 2017
for Lincoln of Brazil battles for the ball with Salam Jiddou of Mali By www.fifa.com Published On :: Sat, 28 Oct 2017 14:04:00 GMT KOLKATA, INDIA - OCTOBER 28: Lincoln (L) of Brazil battles for the ball with Salam Jiddou of Mali during the FIFA U-17 World Cup India 2017 3rd Place match between Brazil and Mali at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Buda Mendes - FIFA/FIFA via Getty Images) Full Article Area=Tournament Section=Competition Kind=Photo Tournament=FIFA U-17 World Cup India 2017
for Players of England and Spain line up for the national anthems By www.fifa.com Published On :: Sat, 28 Oct 2017 15:59:00 GMT KOLKATA, INDIA - OCTOBER 28: Players of England and Spain line up for the National Anthems ahead of the FIFA U-17 World Cup India 2017 Final match between England and Spain at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Buda Mendes - FIFA/FIFA via Getty Images) Full Article Area=Tournament Section=Competition Kind=Photo Tournament=FIFA U-17 World Cup India 2017
for Players of England line up for a picture By www.fifa.com Published On :: Sat, 28 Oct 2017 16:00:00 GMT KOLKATA, INDIA - OCTOBER 28: Players of England line up for a picture during the FIFA U-17 World Cup India 2017 Final match between England and Spain at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Buda Mendes - FIFA/FIFA via Getty Images) Full Article Area=Tournament Section=Competition Kind=Photo Tournament=FIFA U-17 World Cup India 2017
for Both teams line up for the national anthems By www.fifa.com Published On :: Sat, 28 Oct 2017 16:33:00 GMT KOLKATA, INDIA - OCTOBER 28: Both teams line up for the national anthems prior to the FIFA U-17 World Cup India 2017 Final match between England and Spain at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Tom Dulat - FIFA/FIFA via Getty Images) Full Article Area=Tournament Section=Competition Kind=Photo Tournament=FIFA U-17 World Cup India 2017
for Players line up for the national anthems By www.fifa.com Published On :: Sat, 28 Oct 2017 16:56:00 GMT KOLKATA, INDIA - OCTOBER 28: Players line up for the national anthems during the FIFA U-17 World Cup India 2017 Final match between England and Spain at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Jan Kruger - FIFA/FIFA via Getty Images) Full Article Area=Tournament Section=Competition Kind=Photo Tournament=FIFA U-17 World Cup India 2017
for Team of Spain pose for a group photograph By www.fifa.com Published On :: Sat, 28 Oct 2017 16:57:00 GMT KOLKATA, INDIA - OCTOBER 28: Team of Spain pose for a group photograph during the FIFA U-17 World Cup India 2017 Final match between England and Spain at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Tom Dulat - FIFA/FIFA via Getty Images) Full Article Area=Tournament Section=Competition Kind=Photo Tournament=FIFA U-17 World Cup India 2017
for George McEachran of England battles for the ball with Cesar Gelabert of Spain By www.fifa.com Published On :: Sat, 28 Oct 2017 16:58:00 GMT KOLKATA, INDIA - OCTOBER 28: George McEachran (L) of England battles for the ball with Cesar Gelabert of Spain during the FIFA U-17 World Cup India 2017 Final match between England and Spain at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Buda Mendes - FIFA/FIFA via Getty Images) Full Article Area=Tournament Section=Competition Kind=Photo Tournament=FIFA U-17 World Cup India 2017
for Joel Latibeaudiere of England battles for the ball with Cesar Gelabert of Spain By www.fifa.com Published On :: Sat, 28 Oct 2017 16:59:00 GMT KOLKATA, INDIA - OCTOBER 28: Joel Latibeaudiere of England battles for the ball with Cesar Gelabert of Spain during the FIFA U-17 World Cup India 2017 Final match between England and Spain at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Buda Mendes - FIFA/FIFA via Getty Images) Full Article Area=Tournament Section=Competition Kind=Photo Tournament=FIFA U-17 World Cup India 2017
for George McEachran of England battles for the ball with Cesar Gelabert of Spain By www.fifa.com Published On :: Sat, 28 Oct 2017 16:59:00 GMT KOLKATA, INDIA - OCTOBER 28: George McEachran (C) of England battles for the ball with Cesar Gelabert of Spain during the FIFA U-17 World Cup India 2017 Final match between England and Spain at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Buda Mendes - FIFA/FIFA via Getty Images) Full Article Area=Tournament Section=Competition Kind=Photo Tournament=FIFA U-17 World Cup India 2017
for Head coach Steve Cooper of England gives a gift for coach Santiago Denia of Spain By www.fifa.com Published On :: Sat, 28 Oct 2017 17:09:00 GMT KOLKATA, INDIA - OCTOBER 28: Head coach Steve Cooper of England gives a gift for coach Santiago Denia of Spain during the FIFA U-17 World Cup India 2017 Final match between England and Spain at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Buda Mendes - FIFA/FIFA via Getty Images) Full Article Area=Tournament Section=Competition Kind=Photo Tournament=FIFA U-17 World Cup India 2017
for England's forward Rhian Brewster celebrates winning the golden boot By www.fifa.com Published On :: Sat, 28 Oct 2017 18:40:00 GMT England's forward Rhian Brewster celebrates winning the golden boot for the highest scorer after England's win over Spain in the final FIFA U-17 World Cup football match at the Vivekananda Yuba Bharati Krirangan stadium in Kolkata on October 28, 2017. / AFP / Dibyangshu SARKAR Full Article Area=Tournament Section=Competition Kind=Photo Tournament=FIFA U-17 World Cup India 2017
for L-R: Tashan Oakley-Boothe, Jonathan Panzo and Joel Latibeaudiere of England pose for photos after the FIFA U-17 World Cup India 2017 Final match between England and Spain at Vivekananda Yuba Bharati Krirangan on October 28, 2 By www.fifa.com Published On :: Sat, 28 Oct 2017 19:48:00 GMT L-R: Tashan Oakley-Boothe, Jonathan Panzo and Joel Latibeaudiere of England pose for photos after the FIFA U-17 World Cup India 2017 Final match between England and Spain at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Tom Dulat - FIFA/FIFA via Getty Images) Full Article Area=Tournament Section=Competition Kind=Photo Tournament=FIFA U-17 World Cup India 2017