sla

Islamic empires : fifteen cities that define a civilization / Justin Marozzi

Marozzi, Justin, 1970- author




sla

CRS Employment Opportunities: Legislative Attorney (Communications Law)

CRS is accepting applications for a Legislative Attorney (Communications Law), GS-13 until December 12, 2019.

Click here for more information.




sla

CRS Employment Opportunities: Analyst on Congress and the Legislative Process

CRS is accepting applications for an Analyst on Congress and the Legislative Process, GS-12 until April 17, 2020.

Click here for more information.




sla

CRS Employment Opportunities: Legislative Data Specialist

CRS is accepting applications for a Legislative Data Specialist, GS-11 until May 4, 2020.

Click here for more information.




sla

The biology of grasslands / Brian J. Wilsey (Iowa State University, Ames, USA)

Hayden Library - QH541.5.P7 W435 2018




sla

Henry Smeathman, the flycatcher: natural history, slavery and empire in the late eighteenth century / Deirdre Coleman

Hayden Library - QH31.S593 C65 2018




sla

Flexible Captioned Slanted Images

Eric Meyer gift wraps the most awkwardly shaped of boxes using nothing but CSS, HTML and a little curl of ribbon. No matter how well you plan and how much paper you have at your disposal, sometimes you just need to slant the gift to the side.


We have a lot of new layout tools at our disposal these days—flexbox is finally stable and interoperable, and Grid very much the same, with both technologies having well over 90% support coverage. In that light, we might think there’s no place for old tricks like negative margins, but I recently discovered otherwise.

Over at An Event Apart, we’ve been updating some of our landing pages, and our designer thought it would be interesting to have slanted images of speakers at the tops of pages. The end result looks like this.

The interesting part is the images. I wanted to set up a structure like the following, so that it will be easy to change speakers from time to time while preserving accessible content structures:

<div id="page-top">
  <ul class="monoliths">
    <li>
      <a href="https://aneventapart.com/speakers/rachel-andrew"> 
        <img src="/img/rachel-andrew.jpg" alt=""> 
        <div> 
          <strong>Rachel Andrew</strong> CSS Grid 
        </div> 
      </a>
    </li>
    <li>
      <a href="https://aneventapart.com/speakers/derek-featherstone"> 
        <img src="/img/derek-featherstone.jpg" alt=""> 
        <div> 
          <strong>Derek Featherstone</strong> Accessibility 
        </div> 
      </a>
    </li>
    <li>
      …
    </li>
    <li>
      …
    </li>
  </ul>
</div>

The id value for the div is straightforward enough, and I called the ul element monoliths because it reminded me of the memorial monoliths at the entrance to EPCOT in Florida. I’m also taking advantage of the now-ubiquitous ability to wrap multiple elements, including block elements, in a hyperlink. That way I can shove the image and text structures in there, and make the entire image and text below it one link.

Structure is easy, though. Can we make that layout fully responsive? I wondered. Yes we can. Here’s the target layout, stripped of the navbar and promo copy.

So let’s start from the beginning. The div gets some color and text styling, and the monoliths list is set to flex. The images are in a single line, after all, and I want them to be flexible for responsive reasons, so flexbox is 100% the right tool for this particular job.

#page-top { 
  background: #000; 
  color: #FFF; 
  line-height: 1; 
} 
#page-top .monoliths { 
  display: flex; 
  padding-bottom: 1em; 
  overflow: hidden; 
}

I also figured, let’s give the images a simple basis for sizing, and set up the hyperlink while we’re at it.

#page-top .monoliths li { 
  width: 25%; 
} 
#page-top .monoliths a { 
  color: inherit; 
  text-decoration: inherit; 
  display: block; 
  padding: 1px; 
}

So now the list items are 25% wide—I can say that because I know there will be four of them—and the links pick up the foreground color from their parent element. They’re also set to generate a block box.

At this point, I could concentrate on the images. They need to be as wide as their parent element, but no wider, and also match height. While I was at it, I figured I’d create a little bit of space above and below the captioning text, and make the strong elements containing speakers’ names generate a block box.

#page-top .monoliths img { 
  display: block; 
  height: 33rem; 
  width: 100%; 
} 
#page-top .monoliths div { 
  padding: 0.5em 0; 
} 
#page-top .monoliths strong { 
  display: block; 
  font-weight: 900; 
}

It looks like the speakers were all cast into the Phantom Zone or something, so that needs to be fixed. I can’t physically crop the images to be the “correct” size, because there is no correct size: this needs to work across all screen widths. So rather than try to swap carefully-sized images in and out at various breakpoints, or complicate the structure with a wrapper element set to suppress overflow of resized images, I turned to object-fit.

#page-top .monoliths img { 
  display: block; 
  height: 33rem; 
  width: 100%; 
  object-fit: cover; 
  object-position: 50% 20%; 
}

If you’ve never used object-fit, it’s a bit like background-size. You can use it to resize image content within the image’s element box without creating distortions. Here, I set the fit sizing to cover, which means all of the img element’s element box will be covered by image content. In this case, it’s like zooming in on the image content. I also set a zooming origin with object-position, figuring that 50% across and 20% down would be in the vicinity of a speaker’s face, given the way pictures of people are usually taken.

This is fairly presentable as-is—a little basic, perhaps, but it would be fine to layer the navbar and promo copy back over it with Grid or whatever, and call it a day. But it’s too square and boxy. We must go further!

To make that happen, I’m going to take out the third and fourth images temporarily, so we can see more clearly how the next part works. That will leave us with Rachel and Derek.

The idea here is to clip the images to be slanted, and then pull them close to each other so they have just a little space between them. The first part is managed with clip-path, but we don’t want to pull the images together unless their shapes are being clipped. So we set up a feature query.

@supports (clip-path: polygon(0 0)) or (-webkit-clip-path: polygon(0 0)) { 
  #page-top .monoliths li { 
    width: 37.5%; 
  } 
}

I decided to test for both the un-prefixed and WebKit-prefixed versions of clip-path because Safari still requires the prefix, and I couldn’t think of a good reason to penalize Safari’s users for the slowness of its standards advancement. Then I made the images wider, taking them from 25% to 37.5%, which makes them half again as wide.

Thanks to object fitting, the images don’t distort when I change their parent’s width; they just get wider and scale up the contents to fit. And now, it is time for clipping!

@supports (clip-path: polygon(0 0)) or (-webkit-clip-path: polygon(0 0)) { 
  #page-top .monoliths li { 
    width: 37.5%; 
    -webkit-clip-path: polygon(25% 0, 100% 0, 75% 100%, 0 100%); 
    clip-path: polygon(25% 0, 100% 0, 75% 100%, 0 100%); 
  } 
}

Each coordinate pair in the polygon() is like the position pairs in background-position or object-position: the horizontal distance first, followed by the vertical distance. So the first point in the polygon is 25% 0, which is 25% of the way across the element box, and no distance down, so right at the top edge. 100% 0 is the top right corner. 75% 100% is on the bottom edge, three-quarters of the way across the element, and 0 100% is the bottom left corner. That creates a polygon that’s a strip three-quarters the full width of the element box, and runs from bottom left to top right.

Now we just have to pull them together, and this is where old tricks come back into play: all we need is a negative right margin to bring them closer together.

#page-top .monoliths li { 
  width: 37.5%; 
  margin-right: -7.5%; 
  -webkit-clip-path: polygon(25% 0, 100% 0, 75% 100%, 0 100%); 
  clip-path: polygon(25% 0, 100% 0, 75% 100%, 0 100%); 
}

The separation between them is a little wider than we were originally aiming for, but let’s see what happens when we add the other two images back in and let flexbox do its resizing magic.

Notice how the slants actually change shape as the screen gets narrower or wider. This is because they’re still three-quarters the width of the image element’s box, but the width of that box is changing as the screen width changes. That means at narrow widths, the slant is much steeper, whereas at wide widths, the slant is more shallow. But since the clipping path’s coordinates were all set with percentage distances, they all stay parallel to each other while being completely responsive to changes in screen size. An absolute measure like pixels would have failed.

But how did the images get closer together just by adding in two more? Because the list items’ basic sizing added up to more than 100%, and they’re all set to flex-shrink: 1. No, you didn’t miss a line in the CSS: 1 is the default value for flex-shrink. Flex items will shrink by default, which after all is what we should expect from a flexible element. If you want to know how much they shrunk, and why, here’s what Firefox’s flex inspector reports.

When there were only two list items, there was space enough for both to be at their base size, with no shrinkage. Once we went to four list items, there wasn’t enough space, so they all shrank down. At that point, having a negative right margin of -7.5% was just right to pull them together to act as a unit.

So, now they’re all nicely nestled together, and fully responsive! The captions need a little work, though. Notice how they’re clipped off a bit on the left edge, and can be very much clipped off on the right side at narrower screen widths? This happens because the li elements are being clipped, and that clipping applies to all their contents, images and text alike. And we can’t use overflow to alter this: clipped is clipped, not overflowed.

Fortunately, all we really need to do is push the text over a small amount. Inside the feature query, I added:

#page-top .monoliths div { 
  padding-left: 2%;
  padding-right: 26%; 
}

This shifts the text just a bit rightward, enough to clear the clip path. On the right side, I padded the div boxes so their contents wouldn’t fall outside the clipped area and appear to slide under the next caption. We could also use margins here, but I didn’t for reasons I’ll make clear at the end.

At the last minute, I decided to make the text at least appear to follow the slants of the images. For that, I just needed to shift the first line over a bit, which I did with a bit more padding.

#page-top .monoliths strong { 
  padding-left: 1%; 
}

That’s all to the good, but you may have noticed the captions still overlap at really narrow screen widths. There are a lot of options here, from stacking the images atop one another to reverting to normal flow, but I decided to just hide the captions if things got too narrow. It reduces clutter without sacrificing too much in the way of content, and by leaving them still technically visible, they seem to remain accessible.

@media (max-width: 35rem) { 
  #page-top .monoliths div { 
    opacity: 0.01 
  } 
}

And that, as they say, is that! Fully responsive slanted images with text, in an accessible markup structure. I dig it.

I did fiddle around with the separations a bit, and found that a nice thin separator occurred around margin-right: -8%, whereas beefier ones could be found above -7%. And if you crank the negative margin value to something beyond -8%, you’ll make the images overlap entirely, no visible separation—which can be a useful effect in its own right.

I promised to say why I used padding for the caption text div rather than margins. Here’s why.

#page-top .monoliths div { 
  padding-left: 3%; 
  padding-right: 26%; 
  border-top: 2px solid transparent; 
  background: linear-gradient(100deg,hsl(292deg,50%,50%) 50%, transparent 85%); 
  background-clip: padding-box; 
}

It required a wee bit more padding on the left to look decent, and an alteration to the background clipping box in order to keep the purple from filling the transparent border area, but the end result is pretty nifty, if I do say so myself. Alternatively, we could drop the background gradient on the captions and put one in the background, with a result like this.

I have no doubt this technique could be extended, made more powerful, and generally improved upon. I really wished for subgrid support in Chrome, so that I could put everything on a grid without having to tear the markup structure apart, and there are doubtless even more interesting clipping paths and layout patterns to try out.

I hope these few ideas spark some much better ideas in you, and that you’ll share them with us!


About the author

Eric A. Meyer (@meyerweb) has been a burger flipper, a college webmaster, an early blogger, one of the original CSS Samurai, a member of the CSS Working Group, a consultant and trainer, and a Standards Evangelist for Netscape. Among other things, Eric co-wrote Design For Real Life with Sara Wachter-Boettcher for A Book Apart and CSS: The Definitive Guide with Estelle Weyl for O’Reilly, created the first official W3C test suite, assisted in the creation of microformats, and co-founded An Event Apart with Jeffrey Zeldman. Eric lives with his family in Cleveland, Ohio, which is a much nicer city than you’ve probably heard. He enjoys a good meal whenever he can and considers almost every form of music to be worthwhile.

More articles by Eric




sla

Soft target protection: theoretical basis and practical measures / edited by Ladislav Hofreiter, Viacheslav Berezutskyi, Lucia Figuli and Zuzana Zvaková

Online Resource




sla

Stalin and Mao: a comparison of the Russian and Chinese revolutions / by Lucien Bianco ; translated from the French edition La récidive: Révolution russe, révolution chinoise by Krystyna Horko

Dewey Library - HX550.R48 B5213 2018




sla

Imperial nation: ruling citizens and subjects in the British, French, Spanish, and American empires / Joseph M. Fredera ; translated by Ruth MacKay

Dewey Library - JC359.F6313 2018




sla

The smile of the human bomb: new perspectives on suicide terrorism / Gideon Aran ; translated by Jeffrey Green

Dewey Library - HV6433.I75 A735 2018




sla

What is a nation?: and other political writings / Ernest Renan ; translated and edited by M.F.N. Giglioli

Dewey Library - JC311.R35313 2018




sla

Lord Cornwallis is dead: the struggle for democracy in the United States and India / Nico Slate

Dewey Library - JC423.G638 2019




sla

Legislative hardball: the house freedom caucus and the power of threat-making in Congress / Matthew N. Green

Dewey Library - JK1319.G744 2019




sla

The loyal republic: traitors, slaves, and the remaking of citizenship in Civil War America / by Erik Mathisen

Dewey Library - JK1759.M39 2018




sla

Dec 16 case: Two convicts seek Hindi translation of documents

All four accused were convicted and awarded death penalty for raping 23-year-old student.




sla

Agra administration to slap notice on manager of Asaram's ashram

Ashram manager will be asked to produce papers of the ownership of the land.




sla

Tamil Nadu: Jayalalithaa slams centre for reducing allocation

TN CM Jayalalithaa charged and accused the Centre of not acting with responsibility.




sla

Grasslands and climate change / edited by David J. Gibson, Jonathan A. Newman




sla

Treasury Laws Amendment (Improving the Energy Efficiency of Rental Properties) Bill 2018 / The Senate Environment and Communications Legislation Committee

Australia. Parliament. Senate. Environment and Communications Legislation Committee, author, issuing body




sla

Murray-Darling Basin Commission of Inquiry Bill 2019 / Environment and Communications Legislation Committee

Australia. Parliament. Senate. Environment and Communications Legislation Committee, author, issuing body




sla

Review of the national greenhouse and energy reporting legislation : final report / Australian Government, Climate Change Authority

Australia. Climate Change Authority, author, issuing body




sla

Australia's faunal extinction crisis : environmental protections for native grasslands, and the conduct of Ministers : interim report / The Senate Environment and Communications Legislation Committee

Australia. Parliament. Senate. Environment and Communications Legislation Committee, author, issuing body




sla

Tesla posts third quarterly profit in a row, but Elon Musk is not happy

Tesla produces a fraction of the cars of its rivals but has a much larger stock market value on expectations of tremendous growth




sla

Trinamool strongman Arabul Islam released on bail



  • DO NOT USE West Bengal
  • India

sla

Trinamool Congress slams Congress for backing State Election Commission



  • DO NOT USE West Bengal
  • India

sla

A day after jute CEO’s murder, Mamata meets industry leaders at island retreat



  • DO NOT USE West Bengal
  • India

sla

Mamata Banerjee slams NDA government for ‘Good Governance Day’



  • DO NOT USE West Bengal
  • India

sla

Mamata Banerjee’s nephew slapped at public meeting in Midnapore



  • DO NOT USE West Bengal
  • India

sla

Congress slams ‘greedy, backstabbing’ Sibal



  • DO NOT USE West Bengal
  • India

sla

Chronicling America: Historic American Newspapers: CORRECTION - NEH Announces 2019 Awards for the National Digital Newspaper Program, Adding Partners in Rhode Island, Virgin Islands and Wyoming!

An error was made in a previous message regarding the number of partners to date in the National Digital Newspaper Program. Corrected message below:

The National Endowment for the Humanities (NEH) has announced 2019 National Digital Newspaper Program (NDNP) funding for institutions representing 11 states to expand their selection and digitization of U.S. historic newspapers for contribution to the freely available Chronicling America online collection, hosted by the Library of Congress. New partners in the program include the Providence Public Library (Rhode Island); the U.S. Virgin Islands (in partnership with the Universities of Florida and Puerto Rico); and the University of Wyoming (Laramie).  Eight other participating institutions – Arkansas State Archives, Connecticut State Library, University of Delaware, University of Georgia, Minnesota Historical Society, Library of Virginia, West Virginia University and Wisconsin Historical Society - also received awards to expand their ongoing selection and digitization of newspapers from their state. Check out the full list of grants for details. Since 2005, cultural institutions in 50 states and territories have joined the program, jointly sponsored by the NEH and LOC, and contributed more than 15 million digitized historical American newspaper pages, published between 1789 and 1963 in 19 different languages, to the collection.

Learn more about the National Digital Newspaper Program (NDNP) or explore American history through Chronicling America and read more about it! Follow us on Twitter @librarycongress #ChronAm!!




sla

ALTA 1998 Copper Hydrometallurgy Forum : October 20-21, 1998, Brisbane Marriott Hotel, Queensland, Australia : technical proceedings / organised by ALTA Metallurgical Services

Copper Hydrometallurgy Forum 1998 : Brisbane, Qld.)




sla

176 JSJ RethinkDB with Slava Akhmechet

02:20 - Slava Akhmechet Introduction

02:41 - RethinkDB Overview

04:24 - How It’s Used

05:58 - Joins

12:50 - Returning Data

13:53 - Getting Data to the Browser

19:35 - Clustering

26:37 - ReQL

30:53 - Indexes

32:18 - MapReduce

35:44 - The RethinkDB Community & Contributors

38:04 - Is it production ready?

40:08 - Differences Between Version 2.0 and 2.1

 

Extras

Picks

Our World War (Dave)
Quest Protein Bars (Aimee)
You-Dont-Know-JS (Aimee)
Angular Remote Conf (Chuck)
Orphan Black (Chuck)
Mr. Robot (Slava)
Rick and Morty (Slava)
The Rust Programming Language (Slava)




sla

JSJ 358: Pickle.js, Tooling, and Developer Happiness with Anatoliy Zaslavskiy

Sponsors

Panel

  • AJ O’Neal

  • Charles Max Wood

Joined by Special Guest: Anatoliy Zaslavskiy

Summary

Anatoliy Zaslavskiy introduces pickle.js and answers the panels questions about using it. The panel discusses the automated testing culture and employee retention. The panel discusses job satisfaction and why there is so much turn over in development jobs. Charles Max Wood reveals some of the reasons that he left past development jobs and the panel considers how the impact of work environments and projects effect developers. Ways to choose the right job for you and how to better a work situation is discussed. Anatoliy finishes by advocating for junior developers and explaining the value they bring to a company.

Links

Picks

AJ O’Neal

Charles Max Wood

Anatoliy Zaslavskiy

  •  




sla

MJS 111: Anatoliy Zaslavskiy

Sponsors

  • Sentry use the code “devchat” for 2 months free on Sentry small plan
  • CacheFly

Host: Charles Max Wood

Joined By Special Guest: Anatoliy Zaslavskiy

Episode Summary

Anatoliy Zaslavskiy has been interested in computers since he was 7 years old, and began his programming career in high school, doing web development in PHP for the online community for his favorite show  Avatar: The Last Airbender. Anatoliy currently works for Hover as a Frontend developer transforming home photos into 3D models to help visualize what the final project will look like.

Anatoliy shares his journey as a developer with bipolar disorder and tells us how he restructured his career with his employer so he can focus on projects that he enjoys working on. This way he performs at his best and both him and Hover can benefit from his talents. Anatoliy and Charles stress the importance for companies to talk to their developers to understand their nature as both parties benefit from open and honest dialogue.

Links

Picks

Anatoliy Zaslavskiy:

Charles Max Wood:




sla

JSJ 382: Mental Health with Anatoliy Zaslavskiy

Sponsors

  • Sentry– use the code “devchat” for $100 credit 

Panel

  • Charles Max Wood

With Special Guest: Anatoliy Zaslavskiy

Episode Summary

Anatoliy Zaslavsky works for Hover, made framework called Pickle.js, and has been on JavaScript Jabber before. Today Chuck and Anatloliy are talking about the importance of mental health. Anatoliy has Bipolar Disorder, and he talks about what it is and his experience with it and how his manic and depressive episodes have affected him. Thankfully, his employers at Hover have been extremely supportive. Chuck and Anatoliy talk about what people should do when they are suffering from a mental illness so that they can do the things they love again. Some of the best ways of coping with mental health issues are to keep a lifeline out to friends and family, go to a professional therapist, stay on a consistent exercise and sleep pattern, and stay away from substances. They talk about how to support someone that is suffering from a mental illness. 

Anatoliy talks about some of the symptoms and behavioral changes he has during both manic and depressive episodes and how it has affected him in the workplace. Mental health issues are almost always accompanied by changes in behavior, and Chuck and Anatoliy talk about ways to approach a person about their behavior. Anatoliy gives advice on how to work with your employer while you are suffering from a mental illness. For mental illnesses that aren’t as dramatic as Bipolar Disorder, Anatoliy talks about coping mechanisms such as staying away from triggers, knowing what motivates you and communicating it to your employer, and other practices that have helped him. He talks about some of his triggers and how it has affected his work, both for the better and worse.

 Finding out what helps you cope and what triggers you is often trial and error, but it can help to talk to other people in your field who struggle with the same mental health issues. Anatoliy talks about the pros and cons of working from home or in an office when you have a mental illness. They finish by talking about a few other points on mental health and resources for those suffering from a mental illness to get the help they need. 

 

Links

Follow DevChat on Facebook and Twitter

Picks

Charles Max Wood:

Anatoliy Zaslavskiy:




sla

MJS 139: Radoslav Stankov

Rado Stankov is the Head of Engineering at Product Hunt. He's based in Sofia Bulgaria. He walks us through learning Pascal and PHP and Flash. We then dive into Ruby and JavaScript and what he's working on now at Product Hunt.

Host: Charles Max Wood

Joined By Special Guest: Radoslav Stankov

Sponsors

______________________________________

"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!

______________________________________

Links

Picks

Radoslav Stankov:

Charles Max Wood:




sla

A young Dutchman views post-Civil War America [electronic resource] : diary of Claude August Crommelin / Claude August Crommelin ; translated by Augustus J. Veenendaal, Jr. ; edited with an introduction by Augustus J. Veenendaal, Jr., and H. Roger Grant

Crommelin, Claude August, 1840-1874




sla

A young Palestinian's diary, 1941-1945 [electronic resource] : the life of Sāmī ʻAmr / translated, annotated, and with an introduction by Kimberly Katz ; foreword by Salim Tamari

ʻAmr, Sāmī, 1924-1998




sla

Young Tel Aviv [electronic resource] : a tale of two cities / Anat Helman ; translated by Haim Watzman

Helman, Anat




sla

The Yugoslav drama [electronic resource] / Mihailo Crnobrnja

Crnobrnja, Mihailo




sla

Yugoslavia and its historians [electronic resource] : understanding the Balkan wars of the 1990s / edited by Norman M. Naimark and Holly Case




sla

Lord of all the dead: a nonfiction novel / Javier Cercas ; translated from the Spanish by Anne McLean

Dewey Library - PQ6653.E62 M6613 2020




sla

Revolution Sunday: a novel / Wendy Guerra ; translated from the Spanish by Achy Obejas

Dewey Library - PQ7390.G773 D6613 2018




sla

Tentacle / Rita Indiana ; translated by Achy Obejas

Dewey Library - PQ7409.2.H355 M8313 2018




sla

Impact of climate changes on marine environments / Tymon Zielinski, Marcin Weslawski, Karol Kuliński, editors




sla

Marine ecosystems : human impacts on biodiversity, functioning and services / edited by Tasman P. Crowe, University College Dublin, Ireland, Christopher L.J. Frid, Griffith University, Queensland, Australia




sla

Introduction to physical oceanography / John A. Knauss (late of University of Rhode Island), Newell Garfield (Southwest Fisheries Science Center)

Knauss, John A., author




sla

Marine pollution / Christopher L.J. Frid (School of Environment, Griffith University, Queensland, Australia), Bryony A. Caswell (Environmental Futures Research Institute, Griffith University, Queensland, Australia)

Frid, Chris, author




sla

Environmental management of marine ecosystems [electronic resource] / edited by Md. Nazrul Islam, Sven Erik Jørgensen