can

PbZn 2010 : papers originally presented at Lead-Zinc 2010, held in conjunction with COM 2010 and reproduced with permission of the Canadian Institute of Mining, Metallurgy and Petroleum / edited by A. Siegmund ... [et al.]




can

011 JSJ Can HTML5 and JavaScript Really Replace Flash?

The panelists discuss whether HTML5 and JavaScript can really replace Flash.




can

202 JSJ DoneJS + CanJS with Justin Meyer

Check out and get your tickets for React Remote Conf! May 11th-13th, 2016.

 

02:30 - Justin Meyer Introduction

03:02 - DoneJS and CanJS

05:44 - Versus Meteor

07:41 - Versus React

  • Set Algebra

12:06 - Getting Started with DoneJS

18:04 - Can <=> Done

25:39 - MVC => MVVM

28:24 - Flux vs MVVM

32:20 - Use Cases

39:19 - App Size

Picks

Beautiful Eyes Album by Taylor Swift (AJ)
When Amazon Dies (AJ)
PROTODOME (AJ)
City Libraries (AJ)

The Crucible of Doubt: Reflections On the Quest for Faith (AJ)
Learn X in Y Minutes (Aimee)
Which cat is your JavaScript framework? (Aimee)
@johnpapa Tweet (Joe)
SumoMe (Chuck)
Drip (Chuck)
7 Wonders (Chuck)
Shadow Hunters (Chuck)
Calamity (The Reckoners) by Brandon Sanderson (Chuck)
Staked (The Iron Druid Chronicles) by Kevin Hearne (Chuck)
BB-8™ by Sphero (Justin)
Hyperion Cantos Series (Justin)
UtahJS (Justin)




can

JSJ 333: “JavaScript 2018: Things You Need to Know, and a Few You Can Skip” with Ethan Brown

Panel:

Special Guests: Ethan Brown

In this episode, the panel talks with Ethan Brown who is a technological director at a small company. They write software to facilitate large public organizations and help make projects more effective, such as: rehabilitation of large construction projects, among others. There is a lot of government work through the endeavors they encounter. Today, the panel talks about his article he wrote, and other topics such as Flex, Redux, Ruby, Vue.js, Automerge, block chain, and Elm. Enjoy!

Show Topics:

2:38 – Chuck: We are here to talk about the software side of things.

Let’s dive into what you are looking at mid-year what we need to know for 2018. You wrote this.

3:25 – Ethan: I start off saying that doing this podcast now, how quickly things change. One thing I didn’t think people needed to know was symbols, and now that’s changed. I had a hard time with bundling and other things. I didn’t think the troubles were worth it. And now a couple of moths ago (an open source project) someone submitted a PR and said: maybe we should be using symbols? I told them I’ve had problems in the past. They said: are you crazy?!

It’s funny to see how I things have changed.

4:47 – Panel: Could you talk about symbols?

4:58 – Aimee: Are they comparable to Ruby?

5:05 – Ethan talks about what symbols are and what they do!

5:52 – Chuck: That’s pretty close to how that’s used in Ruby, too.

6:04 – Aimee: I haven’t used them in JavaScript, yet. When have you used them recently?

6:15 – Ethan answers the question.

7:17 – Panelist chimes in.

7:27 – Ethan continues his answer. The topic of “symbols” continues. Ethan talks about Automerge.

11:18 – Chuck: I want to dive-into what you SHOULD know in 2018 – does this come from your experience? Or how did you drive this list?

11:40 – Ethan: I realize that this is a local business, and I try to hear what people are and are not using. I read blogs. I think I am staying on top of these topics being discussed.

12:25 – Chuck: Most of these things are what people are talking.

12:47 – Aimee: Web Assembly. Why is this on the list?

12:58 – Ethan: I put on the list, because I heard lots of people talk about this. What I was hearing the echoes of the JavaScript haters. They have gone through a renaissance. Along with Node, and React (among others) people did get on board. There are a lot of people that are poisoned by that. I think the excitement has died down. If I were to tell a story today – I would

14:23 – Would you put block chain on there? And AI?

14:34 – Panel: I think it’s something you should be aware of in regards to web assembly. I think it will be aware of. I don’t know if there is anything functional that I could use it with.

15:18 – Chuck: I haven’t really played with it...

15:27 – Panel: If you wrote this today would you put machine learning on there?

15:37 – Ethan: Machine Learning...

16:44 – Chuck: Back to Web Assembly. I don’t think you were wrong, I think you were early. Web Assembly isn’t design just to be a ... It’s designed to be highly optimized for...

17:45 – Ethan: Well-said. Most of the work I do today we are hardly taxing the devices we are using on.

18:18 – Chuck and panel chime in.

18:39 – Chuck: I did think the next two you have on here makes sense.

18:54 – Panel: Functional programming?

19:02 – Ethan: I have a lot of thoughts on functional programming and they are mixed. I was exposed to this in the late 90’s. It was around by 20-30 years. These aren’t new. I do credit JavaScript to bring these to the masses. It’s the first language I see the masses clinging to. 10 years ago you didn’t see that. I think that’s great for the programming community in general. I would liken it to a way that Ruby on Rails really changed the way we do web developing with strong tooling. It was never really my favorite language but I can appreciate what it did for web programming. With that said...(Ethan continues the conversation.)

Ethan: I love Elm.

21:49 – Panelists talks about Elm.

*The topic diverts slightly.

22:23 – Panel: Here’s a counter-argument. Want to stir the pot a little bit.

I want to take the side of someone who does NOT like functional programming.

24:08 – Ethan: I don’t disagree with you. There are some things I agree with and things I do disagree with. Let’s talk about Data Structures. I feel like I use this everyday. Maybe it’s the common ones. The computer science background definitely helps out.

If there was one data structure, it would be TREES. I think STACKS and QUEUES are important, too. Don’t use 200-300 hours, but here are the most important ones. For algorithms that maybe you should know and bust out by heart.

27:48 – Advertisement for Chuck’s E-book Course: Get A Coder Job

28:30 – Chuck: Functional programming – people talk bout why they hate it, and people go all the way down and they say: You have to do it this way....

What pay things will pay off for me, and which things won’t pay off for me? For a lot of the easy wins it has already been discussed. I can’t remember all the principles behind it. You are looking at real tradeoffs.  You have to approach it in another way. I like the IDEA that you should know in 2018, get to know X, Y, or Z, this year. You are helping the person guide them through the process.

30:18 – Ethan: Having the right tools in your toolbox.

30:45 – Panel: I agree with everything you said, I was on board, until you said: Get Merge Conflicts.

I think as developers we are being dragged in...

33:55 – Panelist: Is this the RIGHT tool to use in this situation?

34:06 – Aimee: If you are ever feeling super imposed about something then make sure you give it a fair shot, first.

34:28 – That’s the only reason why I keep watching DC movies.

34:41 – Chuck: Functional programming and...

I see people react because of the hype cycle. It doesn’t fit into my current paradigm. Is it super popular for a few months or...?

35:10 – Aimee: I would love for someone to point out a way those pure functions that wouldn’t make their code more testable.

35:42 – Ethan: Give things a fair shake. This is going back a few years when React was starting to gain popularity. I had young programmers all about React. I tried it and mixing it with JavaScript and...I thought it was gross. Everyone went on board and I had to make technically decisions. A Friend told me that you have to try it 3 times and give up 3 times for you to get it. That was exactly it – don’t know if that was prophecy or something. This was one of my bigger professional mistakes because team wanted to use it and I didn’t at first. At the time we went with Vue (old dog like me). I cost us 80,000 lines of code and how many man hours because I wasn’t keeping an open-mind?

37:54 – Chuck: We can all say that with someone we’ve done.

38:04 – Panel shares a personal story.

38:32 – Panel: I sympathize because I had the same feeling as automated testing. That first time, that automated test saved me 3 hours. Oh My Gosh! What have I been missing!

39:12 – Ethan: Why should you do automated testing? Here is why...

You have to not be afraid of testing. Not afraid of breaking things and getting messy.

39:51 – Panel: Immutability?

40:00 – Ethan talks about this topic.

42:58 – Chuck: You have summed up my experience with it.

43:10 – Panel: Yep. I agree. This is stupid why would I make a copy of a huge structure, when...

44:03 – Chuck: To Joe’s point – but it wasn’t just “this was a dumb way” – it was also trivial, too. I am doing all of these operations and look my memory doesn’t go through the roof. They you see it pay off. If you don’t see how it’s saving you effort, at first, then you really understand later.

44:58 – Aimee: Going back to it being a functional concept and making things more testable and let it being clearly separate things makes working in code a better experience.

As I am working in a system that is NOT a pleasure.

45:31 – Chuck: It’s called legacy code...

45:38 – What is the code year? What constitutes a legacy application?

45:55 – Panel: 7 times – good rule.

46:10 – Aimee: I am not trolling. Serious conversation I was having with them this year.

46:27 – Just like cars.

46:34 – Chuck chimes in with his rule of thumb.

46:244 – Panel and Chuck go back-and-forth with this topic.

47:14 – Dilbert cartoons – check it out.

47:55 – GREAT QUOTE about life lessons.

48:09 – Chuck: I wish I knew then what I know now.

Data binding. Flux and Redux. Lots of this came out of stuff around both data stores and shadow domes. How do you tease this out with the stuff that came out around the same time?

48:51 – Ethan answers question.

51:17 – Panel chimes in.

52:01 – Picks!

Links:

Sponsors:

Picks:

Aimee

Joe

Charles

Ethan




can

JSJ 335: “CanJS 4.0” with Justin Meyer

Panel:

Special Guests: Justin Meyer

In this episode, the panel talks with Justin Meyer who is a co-author of DoneJS, CanJS, jQueryPP, StealJS, and DocumentJS. Justin currently works for Bitovi and is their Director of R&D. He is also a fan of basketball and Michael Jackson. The panel and Justin talk about CanJS in-detail – check it out!

Show Topics:

0:58 – We had you on Episode 202.

1:14 – Chuck: Can you tell everyone who you are?

1:20 – Justin tells us his background.

1:50 – Chuck.

1:58 – Justin.

2:06 – Chuck: Can you give us an introduction to what CanJS 4.0?

2:11 – Justin: It is a JavaScript framework and is similar to Vue. It adds a very model layer, and uses Real Time very well.

2:44 – Panelist.

2:49 – Justin.

2:55 – Panelist: What is the current...

3:09 – Justin: Compatibility is very important to us. A lot of the same tools are still available. It has over 80 different repositories.

Justin continues to talk about the differences/similarities between the different versions.

4:55 – Panelist: Angular, React, and Vue are dominating, so I have 2 questions.

1.) Where is the core strength of JS and its user base?

2.) What is like to be the CanJS when everyone is talking about the other programs?

5:31 – Justin: We have dealt with this for the past 10 years. Emotionally it’s not great, I wished it was more popular, but our priority is keeping our user-based happy. We’ve had big companies use it.

Justin answers the second question.

8:44 – Panelist: You mentioned two things.

9:22 – Aimee: I think everything has trade-offs. I would use something because it was the right tool for the job. I wouldn’t want to make something that was “cool.” I would want to make it super accessible in a network.

10:10 – Justin: That is a great marketing angle. We are trying to remove the worst parts of the program.

10:26 – Now I am intrigued.

10:32 – Justin: You have this mutable state and you aren’t sure. At least for CanJS I don’t see that occurring too often.

10:54 – Aimee.

10:58 – Justin: Deep inheritance is definitely a problem and it can create...

11:13 – Aimee.

11:19 – Justin: We have changed strategies a lot, and I think it’s helped CanJS grow; like 60% since January. We are doing a lot of user studies now. I run Meetups, etc. That being said inheritance schemes aren’t something that people will encounter. This is something that they won’t encounter months down the road.

13:00 – Aimee.

13:05 – Panelist: I would like to dig deeper into state-management. Everyone is doing Flux, talk about that with CanJS.

13:20 – Justin: Yeah. It depends on what kind of user you are talking to. When I talk to new users off the street (people who just graduated, etc.)...

If you look at React’s statistics – more than 50% doesn’t use any state management.

16:15 – Panelist: I think it’s interesting that there are people that aren’t “oh my gosh...”

16:43 – Justin: The last coolest thing I’ve done is...

18:02 – Justin continues.

18:16 – Panelist: I kind of have this belief that we as a community turn to frameworks and tools too much. From your perspective when does it make sense to turn to a tool like this or better off working with native...

18:56 – It depends on how complex your app is and our ability to work through those problems. I think that’s a generic answer, but hopefully that helps. I don’t think you really can’t live without.

19:49 – Panelist: I think that’s fair. One thing that I found is that there are many things layered into state-management. Because you mentioned performance, which is something I care about, too. At what point does the extra tooling become too heavy for the user’s experience? Where do you draw the line?

21:11 – Justin: It depends. I don’t know what the parallel is – it’s like a richer developer problem. You have too many users where you can make those fine tuned adjustments. Do whatever is going to deliver the product first and then worry about performance later? I think our things are geared towards performance by default.

22:41 – Panelist: Playing devil’s advocate, though. But isn’t there some danger in kind of suggesting that you focus on performance WHEN it’s a business issue? Maybe there is there a lack of empathy among developers. I worry that advice is hurting us.

23:53 – Justin: No matter what you can build your homepage with Angular weird monstrosity, but then when you get to the point when people are using your product – you can just use native HTML, and native methods and build that one widget and as easy and fast as possible.

24:50 – Panelist: Dealing with complexity. Now we need to do things like bundlers, and such to deal with this issue. I feel like a crotchety old man yelling because it takes forever.

25:38 – Justin: I think it depends on where you are sitting. I think that comes down to the design. If your design has a lot of complex states, then...

26:37 – Panelist: Because you care about performance...

26:54 – Advertisement

27:53 – Justin: I don’t think that the run time of CanJS is going to be a critical performance path for anybody. Is there a responsibility? This is the oldest question. It’s like saying: where do you draw the line that you need to choose success/be elected to fight the battles if you really want to win.

You need someone using your product or it doesn’t really matter. Start-ups use our product because they need to get something up and in. I am going to flip this back onto you guys.

30:48 – Panelist: I think that’s fair.

31:00 – Aimee: I have a question. You got into consultancy when do you recommend using CanJS or something else?

31:15 – Justin: I always suggest people using CanJS.

31:53 – Aimee: What do these people do when their contract is over? I have used an older version of Can, and...

32:20 – Justin: Are you on Gitter?

Aimee: No, I am not.

32:25 – Justin: We do offer promote job posting to help them find somebody. We try our best to help people in any way we can.

33:05 – Aimee: That’s helpful. Another question.

33:28 – Justin: DoneJS is that. It uses the full kitchen sink. That’s what DoneJS is.

33:50 – Panelist: Let’s talk about CanJS in the mark-up. Do you think it’s better now or worse than 2012? Less space or more space?

34:13 – Justin: It’s probably worse. I think the methodology that we are using: focusing on our users. We get their feedback frequently. We are listening to our users, and I think we are being smarter.

35:16 – Panelist: Is the space getting more welcoming or less?

35:31 – It depends on what framework you are. It’s very hard to compete if you are the exact same thing as...

The market is so dense and there are so many ideas, so it’s getting harder and harder. What helps people break-through? Is it the technology or the framework?

36:36 – Panelist: I appreciate the richness of the field, as it exists right now. There aren’t a few things SMELT and ELM

37:10 – Justin: Elm for sure. I don’t have a lot of experience with SMELT.

37:23 – Panelist continues the talk.

37:54 – Chuck.

38:00 – Justin: I think it spreads by word-of-mouth. I used to think it was “technology” or... all that really matters is “can you deliver” and the person have a good experience.

Usability is the most important to me. We will see how this turns out. I will be either right or wrong.

39:18 – Panelist: Can we talk about the long-term future of Can JS?

39:28 – Justin: We are connecting to our user-base and making them happy. If I had it my way (which I don’t anymore) I think JSX is the best template language. We have been building integrations between JSX and...

I am putting out proposals where most people don’t like them.

Justin continues this conversation.

44:24 – Picks!

44:28 - Advertisement

Links:

Sponsors:

Picks:

Aimee

Chris

Joe

Charles

Justin




can

JSJ 385: What Can You Build with JavaScript?

Sponsors

Panel

  • Charles Max Wood

  • Christopher Beucheler

Episode Summary

Today Charles and Christopher discuss what can you do with JavaScript. They talk about the kinds of things they have used JavaScript to build. They discuss non-traditional ways that people might get into JavaScript and what first drew them to the language. They talk about the some of the non-traditional JavaScript options that are worth looking into. Christopher and Charles talk about some of the fascinating things that have been done with JavaScript, such as Amazon Alexa capabilities, virtual reality, and games. They spend some time talking about JavaScript usage in game creation and building AI. They talk about how they’ve seen JavaScript change and progress during their time as developers. They talk about areas besides web that they would be interested in learning more about and what kinds of things they would like to build in that area. They finish by discussing areas that they are excited to see improve and gain new capabilites. 

Links

Follow DevChat on Facebook and Twitter

Picks

Charles Max Wood:

Christopher Beucheler:




can

Yellow dogs and Republicans [electronic resource] : Allan Shivers and Texas two-party politics / Ricky F. Dobbs

Dobbs, Ricky F




can

Yellowface [electronic resource] : creating the Chinese in American popular music and performance, 1850s-1920s / Krystyn R. Moon

Moon, Krystyn R., 1974-




can

Yes Africa can [electronic resource] : success stories from a dynamic continent / editors, Punam Chuhan-Pole and Manka Angwafo




can

You should see yourself [electronic resource] : Jewish identity in postmodern American culture / edited by Vincent Brook




can

Young America [electronic resource] : land, labor, and the Republican community / Mark A. Lause

Lause, Mark A




can

Young people living with cancer [electronic resource] : implications for policy and practice / Anne Grinyer

Grinyer, Anne, 1950-




can

You're addicted to you [electronic resource] : why it's so hard to change--and what you can do about it / Noah Blumenthal

Blumenthal, Noah, 1972-




can

Zellig Harris [electronic resource] : from American linguistics to socialist Zionism / Robert F. Barsky

Barsky, Robert F




can

The Zen canon [electronic resource] : understanding the classic texts / edited by Steven Heine and Dale S. Wright




can

The Cambridge companion to Latin American poetry / edited by Stephen Malcolm Hart, University College, London

Hayden Library - PQ7082.P7 C23 2018




can

Latin American technopoetics: scientific explorations in new media / Scott Weintraub

Dewey Library - PQ7082.P7 W45 2018




can

Troubled memories: iconic Mexican women and the traps of representation / Oswaldo Estrada

Hayden Library - PQ7123.W6 E88 2018




can

Star Wars, 2014: BJP and Congress target each others’ biggies in candidate selection, but not consistently

By fielding one of its vice-presidents – former television soap star Smriti Irani – against Congress’s Rahul Gandhi in Amethi Lok Sabha constituency, BJP has shown it is inclined to take the electoral battle to one of two Gandhi pocket boroughs in Uttar Pradesh.




can

[ASAP] Mechanical Tension of Biomembranes Can Be Measured by Super Resolution (STED) Microscopy of Force-Induced Nanotubes

Nano Letters
DOI: 10.1021/acs.nanolett.9b05232




can

[ASAP] Determination of the Three-Dimensional Magnetic Field Vector Orientation with Nitrogen Vacany Centers in Diamond

Nano Letters
DOI: 10.1021/acs.nanolett.9b04725




can

[ASAP] In Liquid Infrared Scattering Scanning Near-Field Optical Microscopy for Chemical and Biological Nanoimaging

Nano Letters
DOI: 10.1021/acs.nanolett.0c01291




can

[ASAP] Imaging Supramolecular Morphogenesis with Confocal Laser Scanning Microscopy at Elevated Temperatures

Nano Letters
DOI: 10.1021/acs.nanolett.0c00662




can

Decision making in water resources policy and management : an Australian perspective / Barry T. Hart (Water Science Pty Ltd, Echuca and Monash University, Melbourne, VIC, Australia), Jane Doolan (University of Canberra, ACT, Australia)

Hart, Barry T., author




can

Evolutionary ecology of marine invertebrate larvae / edited by Tyler J. Carrier (University of North Carolina at Charlotte, USA), Adam M. Reitzel (University of North Carolina at Charlotte, USA), Andreas Heyland (University of Guelph, Canada)




can

Wild sea : a history of the Southern Ocean / Joy McCann

McCann, Joy, 1954- author




can

Association Between Genetically Proxied Inhibition of HMG-CoA Reductase and Epithelial Ovarian Cancer

This study uses mendelian randomization to estimate the associations between genetic variants related to reduced HMG-CoA reductase activity and epithelial ovarian cancer in the general population and in BRCA1/2 mutation carriers.




can

An Aspidosperma-type alkaloid dimer from Tabernaemontana bovina as a candidate for the inhibition of microglial activation

Org. Chem. Front., 2020, Advance Article
DOI: 10.1039/D0QO00296H, Research Article
Yang Yu, Si-Meng Zhao, Mei-Fen Bao, Xiang-Hai Cai
As a representative of twelve undescribed Aspidosperma-type alkaloid dimers, tabernaemontine F (6) inhibited microglial activation by blocking P38 MAPK activation, revealing a potential candidate for chronic neurodegenerative diseases.
To cite this article before page numbers are assigned, use the DOI form of citation above.
The content of this RSS Feed (c) The Royal Society of Chemistry




can

Nanofood and internet of nano things: for the next generation of agriculture and food sciences / Mirjana Maksimović, Enisa Omanović-Mikličanin, Almir Badnjević

Online Resource




can

2018 AIChE Spring Meeting & 14th Global Congress on Process Safety proceedings: perspectives on process safety from around the world / American Institute of Chemical Engineers

Online Resource




can

Blown film extrusion / Kirk Cantor

Online Resource




can

2018 AIChE Spring Meeting & 14th Global Congress on Process Safety proceedings: process safety spotlights / American Institute of Chemical Engineers

Online Resource




can

2018 AIChE Spring Meeting & 14th Global Congress on Process Safety: 52nd Annual Loss Prevention Symposium (LPS) / American Institute of Chemical Engineers

Online Resource




can

2018 AIChE Spring Meeting & 14th Global Congress on Process Safety: 20th Process Plant Safety Symposium (PPSS) / American Institute of Chemical Engineers

Online Resource




can

2018 AIChE Spring Meeting & 14th Global Congress on Process Safety proceedings: 7th Process Safety Management Mentoring (PSMM) Forum / American Institute of Chemical Engineers

Online Resource




can

2018 AIChE Spring Meeting & 14th Global Congress on Process Safety: 33rd Center for Chemical Process Safety International Conference (CCPS) / American Institute of Chemical Engineers

Online Resource




can

Significance of tests for petroleum products / [edited by] Salvatore J. Rand, Allen W. Verstuyft

Online Resource




can

Reading the Bible with Rabbi Jesus : how a Jewish perspective can transform your understanding / Lois Tverberg

Tverberg, Lois, author




can

A concise guide to reading the New Testament : a canonical introduction / David R. Nienhuis

Nienhuis, David R., 1968- author




can

Bible nation : the United States of Hobby Lobby / Candida R. Moss and Joel S. Baden

Moss, Candida R., author




can

An unsuitable book : the Bible as scandalous text / Hugh S. Pyper

Pyper, Hugh S., author




can

Costly communion : ecumenical initiative and sacramental strife in the Anglican Communion / edited by Mark D. Chapman, Jeremy Bonner




can

The household accounts of William Laud, Archbishop of Canterbury, 1635-1642 / edited by Leonie James




can

Marriage, same-sex marriage and the Anglican church of Australia : essays from the doctrine commission / The Anglican Church of Australia

Anglican Church of Australia, author




can

Thomas Thornton Reed, Anglican Archbishop of Adelaide : essays and reminiscences / compiled by Airlie Black




can

Can Science Resolve the Nature / Nurture Debate?


 
Following centuries of debate about "nature and nurture" the discovery of DNA established the idea that nature (genes) determines who we are, relegating nurture (environment) to icing on the cake.

Since the 1950s, the new science of epigenetics has demonstrated how cellular environments and certain experiences and behaviors influence gene expression at the molecular level, with significant implications for health and wellbeing. To the amazement of

Read More...




can

Nanocomposite liposomes for pH-controlled porphyrin release into human prostate cancer cells

RSC Adv., 2020, 10,17094-17100
DOI: 10.1039/D0RA00846J, Paper
Open Access
German V. Fuentes, Eric N. Doucet, Alyson Abraham, Nikki K. Rodgers, Felix Alonso, Nelson Euceda, Michael H. Quinones, Penelope A. Riascos, Kristelle Pierre, Nuhash H. Sarker, Manya Dhar-Mascareno, Mircea Cotlet, Kim Kisslinger, Fernando Camino, Mingxing Li, Fang Lu, Ruomei Gao
Nanocomposite liposomes are relatively stable in weak basic solutions but effectively release porphyrins at acidic pH, as indicated by the difference in fluorescence.
The content of this RSS Feed (c) The Royal Society of Chemistry




can

Effects of ozone treatment on SOD activity and genes in postharvest cantaloupe

RSC Adv., 2020, 10,17452-17460
DOI: 10.1039/D0RA00976H, Paper
Open Access
Huijie Zhang, Xiaojun Zhang, Chenghu Dong, Na Zhang, Zhaojun Ban, Li Li, Jinze Yu, Yunfeng Hu, Cunkun Chen
Ozone has been shown to play a positive role in the storage and preservation of agricultural products.
The content of this RSS Feed (c) The Royal Society of Chemistry




can

Selective cytotoxic effect against the MDA-MB-468 breast cancer cell line of the antibacterial palindromic peptide derived from bovine lactoferricin

RSC Adv., 2020, 10,17593-17601
DOI: 10.1039/D0RA02688C, Paper
Open Access
Andrea Barragán-Cárdenas, Maribel Urrea-Pelayo, Víctor Alfonso Niño-Ramírez, Adriana Umaña-Pérez, Jean Paul Vernot, Claudia Marcela Parra-Giraldo, Ricardo Fierro-Medina, Zuly Rivera-Monroy, Javier García-Castañeda
The cytotoxic effect against the breast cancer cell line MDA-MB-468 of the palindromic peptide LfcinB (21–25)Pal: 1RWQWRWQWR9 and its analogous peptides, obtained via alanine scanning, was evaluated.
The content of this RSS Feed (c) The Royal Society of Chemistry




can

Using canvas to fix SVG scaling in Internet Explorer

Internet Explorer 9–11 suffer from various bugs that prevent proper scaling of inline SVG’s. This is particularly problematic for SVG icons with variable widths. This is the canvas-based hack I’ve been using to work around the issue.

A popular way to use SVG icons is to generate a spritemap of SVG symbol‘s that you then reference from elsewhere in a document. Most articles on the topic assume your icon dimensions are uniformly square. Twitter’s SVG icons (crafted by @sofo) are variable width, to produce consistent horizontal whitespace around the vectors.

Most browsers will preserve the intrinsic aspect ratio of an SVG. Ideally, I want to set a common height for all the icons (e.g., 1em), and let the browser scale the width of each icon proportionally. This also makes it easy to resize icons in particular contexts – just change the height.

Unfortunately, IE 9–11 do not preserve the intrinsic aspect ratio of an inline SVG. The svg element will default to a width of 300px (the default for replaced content elements). This means it’s not easy to work with variable-width SVG icons. No amount of CSS hacking fixed the problem, so I looked elsewhere – and ended up using canvas.

canvas and aspect ratios

A canvas element – with height and width attributes set – will preserve its aspect ratio when one dimension is scaled. The example below sets a 3:1 aspect ratio.

<canvas height="1" width="3"></canvas>

You can then scale the canvas by changing either dimension in CSS.

canvas {
  display: block;
  height: 2rem;
}

Demo: proportional scaling of canvas.

Fixing SVG scaling in IE

This makes canvas useful for creating aspect ratios. Since IE doesn’t preserve the intrinsic aspect ratio of SVG icons, you can use canvas as a shim. A canvas of the correct aspect ratio provides a scalable frame. The svg can then be positioned to fill the space created by this frame.

The HTML is straightforward:

<div class="Icon" role="img" aria-label="Twitter">
  <canvas class="Icon-canvas" height="1" width="3"></canvas>
  <svg class="Icon-svg">
    <use fill="currentcolor" xlink:href="#icon-twitter"></use>
  </svg>
</div>

So is the CSS:

.Icon {
  display: inline-block;
  height: 1em; /* default icon height */
  position: relative;
  user-select: none;
}

.Icon-canvas {
  display: block;
  height: 100%;
  visibility: hidden;
}

.Icon-svg {
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}

Setting the canvas height to 100% means it will scale based on the height of the component’s root element – just as SVG’s do in non-IE browsers. Changing the height of the Icon element scales the inner SVG icon while preserving its 3:1 aspect ratio.

Demo: proportional scaling of svg in IE.

Creating an Icon component

The hack is best added to (and eventually removed from) an existing icon component’s implementation.

If you’re generating and inlining an SVG spritemap, you will need to extract the height and width (usually from viewBox) of each of your icons during the build step. If you’re already using the gulp-svgstore plugin, it supports extracting metadata.

Those dimensions need to be set on the canvas element to produce the correct aspect ratio for a given icon.

Example React component (built with webpack):

import iconData from './lib/icons-data.json';
import React from 'react';
import './index.css';

class Icon extends React.Component {
  render() {
    const props = this.props;
    const height = iconData[props.name.height];
    const width = iconData[props.name.width];

    // React doesn't support namespaced attributes, so we have to set the
    // 'use' tag with innerHTML
    const useTag = `<use fill="currentcolor"
                      xlink:href="#icon-${props.name}">
                    </use>`;

    return (
      <span className="Icon">
        <canvas className="Icon-canvas"
          height={height}
          width={width}
        />
        <svg className="Icon-svg"
          dangerouslySetInnerHTML={{__html: useTag}}
          key={props.name}
        />
      </span>
    );
  }
}

export default Icon;

When I introduced this hack to a code base at Twitter, it had no impact on the the rest of the team or the rest of the code base – one of the many benefits of a component-based UI.