问:
Only some images are not displaying in Firefox
I am having an odd issue with certain images not displaying in Firefox, but displaying in every other browser.

You can see the differences between Chrome and Firefox here

I am using an unordered list to display a row of images that are list items. However, at the beginning of each row, I am placing a normal image in the list that is not tagged as a list item. This works perfectly in Chrome, Edge, IE and Safari but, for some reason, only a few of those images won't display in Firefox. What is confusing is that there is nothing fundamentally different about rows one and two when compared to rows three and four - that I see anyway.

It is also squishing the images in row three and four and I'm not having that issue in other browsers.

The only differences I can see are image URLs. I tried removing the disable divider to see if that made a difference and it did not.

I have created a JS Fiddle to replicate the issue.

What is included below is a greatly reduced version of what you will find using the link.

  hr {
  opacity: .5;
  display: block;
  margin-top: 0.5em;
  margin-bottom: 0.5em;
  margin-left: 80px;
  margin-right: 100px;
  border-style: inset;
  background: #00adbd;
  border-top: 0.5px dotted #fff;
}

.disabledbutton {
  pointer-events: none;
  opacity: 0.4;
}

#outeroutside {
  background-image: url("/assets/tile.jpg");
  background-color: #a00f14;
  width: 1300px;
  max-width: 100%;
  padding: 10px 10px 10px 10px;
  position: relative;
}

#outside {
  text-align: center;
  background-color: rgba(252, 251, 245, 0.95);
  width: 1200px;
  max-width: 100%;
  padding: 0px 10px 0px 0px;
}

#welcomemain p {
  width: 95%;
  display: inline-block;
  text-align: center;
  margin: 15px 5px;
  height: auto;
}

#welcomemain img {
  padding: 10px;
  max-width: 100%;
}

h2 {
  color: #2e1f11;
}

#outeroutside a:link {
  color: #996515;
  text-decoration: none;
  font-weight: bold;
  font-size: 16px;
}

#outeroutside a:hover {
  color: #FFD700;
  opacity: 0.9;
}

#outeroutside a:visited {
  text-decoration: underline;
  color: #996515;
}

#outeroutside a:active {
  opacity: 0.5;
}

.row2 a {
  color: #C0C0C0 !important;
  text-decoration: none;
  font-weight: bold;
  font-size: 16px;
}

.row2 a:visited {
  text-decoration: underline;
  color: #999999;
}

.row2 a:active {
  opacity: 0.5;
}

#navigation img {
  padding: 10px;
  max-width: 30%;
}

.youtube {
  position: relative;
  padding-bottom: 60%; // This is the aspect ratio
  height: 0;
  overflow: hidden;
}

.youtube iframe {
  padding: 10px 10px 10px 30px;
  position: absolute;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
}

b {
  color: #312112;
}

i {
  color: #b05830;
}

.font {
  font-size: 15px;
}

.ih-item.circle.effect1 .spinner {
  width: 270px;
  height: 270px;
  border: 10px groove #fdec6d;
  border-right-color: #739968;
  border-bottom-color: #739968;
  border-radius: 50%;
  -webkit-transition: all 0.8s ease-in-out;
  -moz-transition: all 0.8s ease-in-out;
  transition: all 0.8s ease-in-out;
}

.ih-item.circle.effect1 .img {
  position: absolute;
  top: 0px;
  bottom: 0px;
  left: 0px;
  right: 0px;
  width: auto;
  height: auto;
}

.ih-item.circle.effect1 .img:before {
  display: none;
}

.ih-item.circle.effect1.colored .info {
  background: #1a4a72;
  background: rgba(26, 74, 114, 0.6);
}

.ih-item.circle.effect1 .info {
  top: 0px;
  bottom: 0px;
  left: 0px;
  right: 0px;
  background: #333333;
  background: rgba(0, 0, 0, 0.6);
  opacity: 0;
  -webkit-transition: all 0.8s ease-in-out;
  -moz-transition: all 0.8s ease-in-out;
  transition: all 0.8s ease-in-out;
}

.ih-item.circle.effect1 .info h3 {
  color: #fff;
  text-transform: uppercase;
  position: relative;
  letter-spacing: 2px;
  font-size: 22px;
  margin: 0 30px;
  padding: 55px 0 0 0;
  height: 110px;
  text-shadow: 0 0 1px white, 0 1px 2px rgba(0, 0, 0, 0.3);
}

.ih-item.circle.effect1 .info p {
  color: #bbb;
  padding: 10px 5px;
  font-style: italic;
  margin: 0 30px;
  font-size: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.5);
}

.ih-item.circle.effect1 a:hover .spinner {
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  -o-transform: rotate(180deg);
  transform: rotate(180deg);
}

.ih-item.circle.effect1 a:hover .info {
  opacity: 1;
}

.ih-item {
  position: relative;
  -webkit-transition: all 0.35s ease-in-out;
  -moz-transition: all 0.35s ease-in-out;
  transition: all 0.35s ease-in-out;
}

.ih-item,
.ih-item * {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.ih-item a {
  color: #333;
}

.ih-item a:hover {
  text-decoration: none;
}

.ih-item img {
  width: 100%;
  height: 100%;
}

.ih-item.circle {
  position: relative;
  width: 270px;
  height: 270px;
  border-radius: 50%;
}

.ih-item.circle .img {
  position: relative;
  width: 260px;
  height: 260px;
  border-radius: 50%;
}

.ih-item.circle .img:before {
  position: absolute;
  display: block;
  content: '';
  width: 100%;
  height: 100%;
  border-radius: 50%;
  box-shadow: inset 0 0 0 16px rgba(255, 255, 255, 0.6), 0 1px 2px rgba(0, 0, 0, 0.3);
  -webkit-transition: all 0.35s ease-in-out;
  -moz-transition: all 0.35s ease-in-out;
  transition: all 0.35s ease-in-out;
}

.ih-item.circle .img img {
  border-radius: 50%;
}

.ih-item.circle .info {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  text-align: center;
  border-radius: 50%;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.ih-item.circle.effect1 .spinner {
  width: 270px;
  height: 270px;
  border: 10px solid #ecab18;
  border-right-color: #1ad280;
  border-bottom-color: #1ad280;
  border-radius: 50%;
  -webkit-transition: all 0.8s ease-in-out;
  -moz-transition: all 0.8s ease-in-out;
  transition: all 0.8s ease-in-out;
}

.ih-item.circle.effect1 .img {
  position: absolute;
  top: 0px;
  bottom: 0;
  left: 0px;
  right: 0;
  width: auto;
  height: auto;
}

.ih-item.circle.effect1 .img:before {
  display: none;
}

.ih-item.circle.effect1.colored .info {
  background: #1a4a72;
  background: rgba(26, 74, 114, 0.6)
}

.ih-item.circle.effect1 .info {
  top: 0px;
  bottom: 0;
  left: 0px;
  right: 0;
  background: #333;
  background: rgba(0, 0, 0, 0.6);
  opacity: 0;
  -webkit-transition: all 0.8s ease-in-out;
  -moz-transition: all 0.8s ease-in-out;
  transition: all 0.8s ease-in-out;
}

.ih-item.circle.effect1 .info h3 {
  color: #fff;
  text-transform: uppercase;
  position: relative;
  letter-spacing: 2px;
  font-size: 20px;
  margin: 0 30px;
  padding: 55px 0 0 0;
  height: 110px;
  text-shadow: 0 0 1px #fff, 0 1px 2px rgba(0, 0, 0, 0.3);
}

.ih-item.circle.effect1 .info p {
  color: #bbb;
  padding: 11px 5px;
  font-style: italic;
  margin: 0 30px;
  font-size: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.5);
}

.ih-item.circle.effect1 a:hover .spinner {
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  -o-transform: rotate(180deg);
  transform: rotate(180deg);
}

.ih-item.circle.effect1 a:hover .info {
  opacity: 1;
}

.row {
  margin: 5px 0px 10px 5px;
  padding: 10px 3px 30px 3px;
  width: 1115px;
  max-width: 100%;
  display: flex;
  flex-wrap: nonwrap;
  align-content: center;
  overflow-y: hidden;
  overflow-x: auto;
  background-color: rgba(238, 155, 195, 0.95);
}

.row2 {
  margin: 5px 0px 5px 5px;
  padding: 10px 3px 15px 3px;
  width: 1115px;
  max-width: 100%;
  display: flex;
  flex-wrap: nonwrap;
  align-content: center;
  overflow-y: hidden;
  overflow-x: auto;
  background-color: rgba(238, 46, 54, 0.95);
}

.col-sm-6 li {
  padding: 10px 20px 10px 20px;
  max-width: 33.3%;
}

a.effect-shine:hover {
  -webkit-mask-image: linear-gradient(-75deg, rgba(0, 0, 0, .6) 30%, #000 50%, rgba(0, 0, 0, .6) 70%);
  -webkit-mask-size: 200%;
  animation: shine 2s infinite;
}

@-webkit-keyframes shine {
  from {
    -webkit-mask-position: 150%;
  }
  to {
    -webkit-mask-position: -50%;
  }```
<pre class="snippet-code-html lang-html prettyprint-override"><code>    <ul id="week1">
            <ul class="row">

              <img src="http://springfieldleather.com/assets/Scroll_Week1.1.png">

              <li class="col-sm-6">

                <!-- normal -->
                <div class="ih-item circle effect1">

                    <div class="spinner"></div>
                    <div class="img"><img src="http://springfieldleather.com/assets/Week1_Gator_Buckles.jpg" alt="img"></div>
                    <div class="info">
                      <div class="info-back">
                        <h3>$5 Gator Buckle Sets</h3>
                        <p>Get a selection of 6-piece gator buckle sets for just $5. These opulent adornments are jewel encrusted and waiting to make your belt fancy!</p>
                      </div>
                    </div>

                  <P> Click here to see all styles! </p>
              </li>
              <li class="col-sm-6">

                <!-- normal -->
                <div class="ih-item circle effect1">

                    <div class="spinner"></div>
                    <div class="img"><img src="http://springfieldleather.com/assets/Week1_Liz_CraftPack.jpg" alt="img"></div>
                    <div class="info">
                      <div class="info-back">
                        <h3>Liz's Craft Pack</h3>
                        <p>Explore the possibilities of leather craft with Liz's craft pack. Bursting at the seams with leather components, this not-so-little pack is only $25!</p>
                      </div>
                    </div>

                  <P> Get Liz's Craft Pack Here!</p>
              </li>
              <li class="col-sm-6">

                <!-- normal -->
                <div class="ih-item circle effect1">

                    <div class="spinner"></div>
                    <div class="img"><img src="http://springfieldleather.com/assets/Week1_Stamping_Tools.jpg" alt="img"></div>
                    <div class="info">
                      <div class="info-back">
                        <h3>25% Off Stamping Tools</h3>
                        <p>Transform your veg tan with stamping tools! For this month only, get select stamping tools at an even lower price! Nearly 100 tools are included!</p>
                      </div>
                    </div>

                  <P> Click here to view the selection!</p>
              </li>

              <li class="col-sm-6">

                <!-- normal -->
                <div class="ih-item circle effect1">

                    <div class="spinner"></div>
                    <div class="img"><img src="http://springfieldleather.com/assets/Week1_BeltBend_Black.jpg" alt="img"></div>
                    <div class="info">
                      <div class="info-back">
                        <h3>Black Belt Bends</h3>
                        <p>These Hermann Oak drum dyed belt bends are magnificent and they're on sale! Get them in black or brown. </p>
                      </div>
                    </div>

                  <P> Get Black Hermann Oak Belt Bend Here!</p>
              </li>

              <li class="col-sm-6">

                <!-- normal -->
                <div class="ih-item circle effect1">

                    <div class="spinner"></div>
                    <div class="img"><img src="http://springfieldleather.com/assets/Week1_BeltBend_Brown.jpg" alt="img"></div>
                    <div class="info">
                      <div class="info-back">
                        <h3>Brown Belt Bends</h3>
                        <p>These Hermann Oak drum dyed belt bends are magnificent and they're on sale! Get them in black or brown.</p>
                      </div>
                    </div>

                  <P> Get Brown Hermann Oak Belt Bend Here!</p>
              </li>

              <li class="col-sm-6">

                <!-- normal -->
                <div class="ih-item circle effect1">

                    <div class="spinner"></div>
                    <div class="img"><img src="http://springfieldleather.com/assets/Week1_VegTan_Split_Bundle.jpg" alt="img"></div>
                    <div class="info">
                      <div class="info-back">
                        <h3>Veg Tan Split Bundle</h3>
                        <p>Our new splitter has left us swimming in veg tan splits! Get this sweet bundle for just $15!</p>
                      </div>
                    </div>

                  <P> Get Your Veg Tan Split Bundle Here!</p>
              </li>
              <li class="col-sm-6">

                <!-- normal -->
                <div class="ih-item circle effect1">

                    <div class="spinner"></div>
                    <div class="img"><img src="http://springfieldleather.com/assets/Week1_Jr_LegalPad_Templete.jpg" alt="img"></div>
                    <div class="info">
                      <div class="info-back">
                        <h3>Legal Pad Poly Template</h3>
                        <p>We have finally done it! Poly templates for one of our favorite projects: leather covers! Cover your legal pad in luxury with this template for only $5.</p>
                      </div>
                    </div>

                  <P> Get Your Legal Pad Template Here!</p>
              </li>
            </ul>
          </ul>

          <hr></code>```

Please note: This code has a number of problems in IE due to lack of support for some features, however even IE is displaying the leading image in each row. There are small circles in the li's that appear in the JS Fiddle that do not display on my actual website.

答:
You really need to fix your markup.  As pointed out in my comment, you have invalid HTML.  Regardless, to correct the display issue in FF, here is a possible solution:

Flexbox is shrinking your img.  You can configure it not to.  I've added flex-shrink: 0 to .row img

hr {
  opacity: .5;
  display: block;
  margin-top: 0.5em;
  margin-bottom: 0.5em;
  margin-left: 80px;
  margin-right: 100px;
  border-style: inset;
  background: #00adbd;
  border-top: 0.5px dotted #fff;
}

.disabledbutton {
  pointer-events: none;
  opacity: 0.4;
}

#outeroutside {
  background-image: url("/assets/tile.jpg");
  background-color: #a00f14;
  width: 1300px;
  max-width: 100%;
  padding: 10px 10px 10px 10px;
  position: relative;
}

#outside {
  text-align: center;
  background-color: rgba(252, 251, 245, 0.95);
  width: 1200px;
  max-width: 100%;
  padding: 0px 10px 0px 0px;
}

#welcomemain p {
  width: 95%;
  display: inline-block;
  text-align: center;
  margin: 15px 5px;
  height: auto;
}

#welcomemain img {
  padding: 10px;
  max-width: 100%;
}

h2 {
  color: #2e1f11;
}

#outeroutside a:link {
  color: #996515;
  text-decoration: none;
  font-weight: bold;
  font-size: 16px;
}

#outeroutside a:hover {
  color: #FFD700;
  opacity: 0.9;
}

#outeroutside a:visited {
  text-decoration: underline;
  color: #996515;
}

#outeroutside a:active {
  opacity: 0.5;
}

.row2 a {
  color: #C0C0C0 !important;
  text-decoration: none;
  font-weight: bold;
  font-size: 16px;
}

.row2 a:visited {
  text-decoration: underline;
  color: #999999;
}

.row2 a:active {
  opacity: 0.5;
}

#navigation img {
  padding: 10px;
  max-width: 30%;
}

.youtube {
  position: relative;
  padding-bottom: 60%; // This is the aspect ratio
  height: 0;
  overflow: hidden;
}

.youtube iframe {
  padding: 10px 10px 10px 30px;
  position: absolute;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
}

b {
  color: #312112;
}

i {
  color: #b05830;
}

.font {
  font-size: 15px;
}

.ih-item.circle.effect1 .spinner {
  width: 270px;
  height: 270px;
  border: 10px groove #fdec6d;
  border-right-color: #739968;
  border-bottom-color: #739968;
  border-radius: 50%;
  -webkit-transition: all 0.8s ease-in-out;
  -moz-transition: all 0.8s ease-in-out;
  transition: all 0.8s ease-in-out;
}

.ih-item.circle.effect1 .img {
  position: absolute;
  top: 0px;
  bottom: 0px;
  left: 0px;
  right: 0px;
  width: auto;
  height: auto;
}

.ih-item.circle.effect1 .img:before {
  display: none;
}

.ih-item.circle.effect1.colored .info {
  background: #1a4a72;
  background: rgba(26, 74, 114, 0.6);
}

.ih-item.circle.effect1 .info {
  top: 0px;
  bottom: 0px;
  left: 0px;
  right: 0px;
  background: #333333;
  background: rgba(0, 0, 0, 0.6);
  opacity: 0;
  -webkit-transition: all 0.8s ease-in-out;
  -moz-transition: all 0.8s ease-in-out;
  transition: all 0.8s ease-in-out;
}

.ih-item.circle.effect1 .info h3 {
  color: #fff;
  text-transform: uppercase;
  position: relative;
  letter-spacing: 2px;
  font-size: 22px;
  margin: 0 30px;
  padding: 55px 0 0 0;
  height: 110px;
  text-shadow: 0 0 1px white, 0 1px 2px rgba(0, 0, 0, 0.3);
}

.ih-item.circle.effect1 .info p {
  color: #bbb;
  padding: 10px 5px;
  font-style: italic;
  margin: 0 30px;
  font-size: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.5);
}

.ih-item.circle.effect1 a:hover .spinner {
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  -o-transform: rotate(180deg);
  transform: rotate(180deg);
}

.ih-item.circle.effect1 a:hover .info {
  opacity: 1;
}

.ih-item {
  position: relative;
  -webkit-transition: all 0.35s ease-in-out;
  -moz-transition: all 0.35s ease-in-out;
  transition: all 0.35s ease-in-out;
}

.ih-item,
.ih-item * {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.ih-item a {
  color: #333;
}

.ih-item a:hover {
  text-decoration: none;
}

.ih-item img {
  width: 100%;
  height: 100%;
}

.ih-item.circle {
  position: relative;
  width: 270px;
  height: 270px;
  border-radius: 50%;
}

.ih-item.circle .img {
  position: relative;
  width: 260px;
  height: 260px;
  border-radius: 50%;
}

.ih-item.circle .img:before {
  position: absolute;
  display: block;
  content: '';
  width: 100%;
  height: 100%;
  border-radius: 50%;
  box-shadow: inset 0 0 0 16px rgba(255, 255, 255, 0.6), 0 1px 2px rgba(0, 0, 0, 0.3);
  -webkit-transition: all 0.35s ease-in-out;
  -moz-transition: all 0.35s ease-in-out;
  transition: all 0.35s ease-in-out;
}

.ih-item.circle .img img {
  border-radius: 50%;
}

.ih-item.circle .info {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  text-align: center;
  border-radius: 50%;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.ih-item.circle.effect1 .spinner {
  width: 270px;
  height: 270px;
  border: 10px solid #ecab18;
  border-right-color: #1ad280;
  border-bottom-color: #1ad280;
  border-radius: 50%;
  -webkit-transition: all 0.8s ease-in-out;
  -moz-transition: all 0.8s ease-in-out;
  transition: all 0.8s ease-in-out;
}

.ih-item.circle.effect1 .img {
  position: absolute;
  top: 0px;
  bottom: 0;
  left: 0px;
  right: 0;
  width: auto;
  height: auto;
}

.ih-item.circle.effect1 .img:before {
  display: none;
}

.ih-item.circle.effect1.colored .info {
  background: #1a4a72;
  background: rgba(26, 74, 114, 0.6)
}

.ih-item.circle.effect1 .info {
  top: 0px;
  bottom: 0;
  left: 0px;
  right: 0;
  background: #333;
  background: rgba(0, 0, 0, 0.6);
  opacity: 0;
  -webkit-transition: all 0.8s ease-in-out;
  -moz-transition: all 0.8s ease-in-out;
  transition: all 0.8s ease-in-out;
}

.ih-item.circle.effect1 .info h3 {
  color: #fff;
  text-transform: uppercase;
  position: relative;
  letter-spacing: 2px;
  font-size: 20px;
  margin: 0 30px;
  padding: 55px 0 0 0;
  height: 110px;
  text-shadow: 0 0 1px #fff, 0 1px 2px rgba(0, 0, 0, 0.3);
}

.ih-item.circle.effect1 .info p {
  color: #bbb;
  padding: 11px 5px;
  font-style: italic;
  margin: 0 30px;
  font-size: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.5);
}

.ih-item.circle.effect1 a:hover .spinner {
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  -o-transform: rotate(180deg);
  transform: rotate(180deg);
}

.ih-item.circle.effect1 a:hover .info {
  opacity: 1;
}

.row {
  margin: 5px 0px 10px 5px;
  padding: 10px 3px 30px 3px;
  width: 1115px;
  max-width: 100%;
  display: flex;
  flex-wrap: nonwrap;
  align-content: center;
  overflow-y: hidden;
  overflow-x: auto;
  background-color: rgba(238, 155, 195, 0.95);
}

.row img {
  flex-shrink: 0;
}

.row2 {
  margin: 5px 0px 5px 5px;
  padding: 10px 3px 15px 3px;
  width: 1115px;
  max-width: 100%;
  display: flex;
  flex-wrap: nonwrap;
  align-content: center;
  overflow-y: hidden;
  overflow-x: auto;
  background-color: rgba(238, 46, 54, 0.95);
}

.col-sm-6 li {
  padding: 10px 20px 10px 20px;
  max-width: 33.3%;
}

a.effect-shine:hover {
  -webkit-mask-image: linear-gradient(-75deg, rgba(0, 0, 0, .6) 30%, #000 50%, rgba(0, 0, 0, .6) 70%);
  -webkit-mask-size: 200%;
  animation: shine 2s infinite;
}

@-webkit-keyframes shine {
  from {
    -webkit-mask-position: 150%;
  }
  to {
    -webkit-mask-position: -50%;
  }```
<pre class="snippet-code-html lang-html prettyprint-override"><code><ul id="week1">
            <ul class="row">

              <img src="http://springfieldleather.com/assets/Scroll_Week1.1.png">

              <li class="col-sm-6">

                <!-- normal -->
                <div class="ih-item circle effect1">

                    <div class="spinner"></div>
                    <div class="img"><img src="http://springfieldleather.com/assets/Week1_Gator_Buckles.jpg" alt="img"></div>
                    <div class="info">
                      <div class="info-back">
                        <h3>$5 Gator Buckle Sets</h3>
                        <p>Get a selection of 6-piece gator buckle sets for just $5. These opulent adornments are jewel encrusted and waiting to make your belt fancy!</p>
                      </div>
                    </div>

                  <P> Click here to see all styles! </p>
              </li>
              <li class="col-sm-6">

                <!-- normal -->
                <div class="ih-item circle effect1">

                    <div class="spinner"></div>
                    <div class="img"><img src="http://springfieldleather.com/assets/Week1_Liz_CraftPack.jpg" alt="img"></div>
                    <div class="info">
                      <div class="info-back">
                        <h3>Liz's Craft Pack</h3>
                        <p>Explore the possibilities of leather craft with Liz's craft pack. Bursting at the seams with leather components, this not-so-little pack is only $25!</p>
                      </div>
                    </div>

                  <P> Get Liz's Craft Pack Here!</p>
              </li>
              <li class="col-sm-6">

                <!-- normal -->
                <div class="ih-item circle effect1">

                    <div class="spinner"></div>
                    <div class="img"><img src="http://springfieldleather.com/assets/Week1_Stamping_Tools.jpg" alt="img"></div>
                    <div class="info">
                      <div class="info-back">
                        <h3>25% Off Stamping Tools</h3>
                        <p>Transform your veg tan with stamping tools! For this month only, get select stamping tools at an even lower price! Nearly 100 tools are included!</p>
                      </div>
                    </div>

                  <P> Click here to view the selection!</p>
              </li>

              <li class="col-sm-6">

                <!-- normal -->
                <div class="ih-item circle effect1">

                    <div class="spinner"></div>
                    <div class="img"><img src="http://springfieldleather.com/assets/Week1_BeltBend_Black.jpg" alt="img"></div>
                    <div class="info">
                      <div class="info-back">
                        <h3>Black Belt Bends</h3>
                        <p>These Hermann Oak drum dyed belt bends are magnificent and they're on sale! Get them in black or brown. </p>
                      </div>
                    </div>

                  <P> Get Black Hermann Oak Belt Bend Here!</p>
              </li>

              <li class="col-sm-6">

                <!-- normal -->
                <div class="ih-item circle effect1">

                    <div class="spinner"></div>
                    <div class="img"><img src="http://springfieldleather.com/assets/Week1_BeltBend_Brown.jpg" alt="img"></div>
                    <div class="info">
                      <div class="info-back">
                        <h3>Brown Belt Bends</h3>
                        <p>These Hermann Oak drum dyed belt bends are magnificent and they're on sale! Get them in black or brown.</p>
                      </div>
                    </div>

                  <P> Get Brown Hermann Oak Belt Bend Here!</p>
              </li>

              <li class="col-sm-6">

                <!-- normal -->
                <div class="ih-item circle effect1">

                    <div class="spinner"></div>
                    <div class="img"><img src="http://springfieldleather.com/assets/Week1_VegTan_Split_Bundle.jpg" alt="img"></div>
                    <div class="info">
                      <div class="info-back">
                        <h3>Veg Tan Split Bundle</h3>
                        <p>Our new splitter has left us swimming in veg tan splits! Get this sweet bundle for just $15!</p>
                      </div>
                    </div>

                  <P> Get Your Veg Tan Split Bundle Here!</p>
              </li>
              <li class="col-sm-6">

                <!-- normal -->
                <div class="ih-item circle effect1">

                    <div class="spinner"></div>
                    <div class="img"><img src="http://springfieldleather.com/assets/Week1_Jr_LegalPad_Templete.jpg" alt="img"></div>
                    <div class="info">
                      <div class="info-back">
                        <h3>Legal Pad Poly Template</h3>
                        <p>We have finally done it! Poly templates for one of our favorite projects: leather covers! Cover your legal pad in luxury with this template for only $5.</p>
                      </div>
                    </div>

                  <P> Get Your Legal Pad Template Here!</p>
              </li>
            </ul>
          </ul>

          <hr></code>```

Body:
I am having an odd issue with certain images not displaying in Firefox, but displaying in every other browser.

You can see the differences between Chrome and Firefox here

I am using an unordered list to display a row of images that are list items. However, at the beginning of each row, I am placing a normal image in the list that is not tagged as a list item. This works perfectly in Chrome, Edge, IE and Safari but, for some reason, only a few of those images won't display in Firefox. What is confusing is that there is nothing fundamentally different about rows one and two when compared to rows three and four - that I see anyway.

It is also squishing the images in row three and four and I'm not having that issue in other browsers.

The only differences I can see are image URLs. I tried removing the disable divider to see if that made a difference and it did not.

I have created a JS Fiddle to replicate the issue.

What is included below is a greatly reduced version of what you will find using the link.

  hr {
  opacity: .5;
  display: block;
  margin-top: 0.5em;
  margin-bottom: 0.5em;
  margin-left: 80px;
  margin-right: 100px;
  border-style: inset;
  background: #00adbd;
  border-top: 0.5px dotted #fff;
}

.disabledbutton {
  pointer-events: none;
  opacity: 0.4;
}

#outeroutside {
  background-image: url("/assets/tile.jpg");
  background-color: #a00f14;
  width: 1300px;
  max-width: 100%;
  padding: 10px 10px 10px 10px;
  position: relative;
}

#outside {
  text-align: center;
  background-color: rgba(252, 251, 245, 0.95);
  width: 1200px;
  max-width: 100%;
  padding: 0px 10px 0px 0px;
}

#welcomemain p {
  width: 95%;
  display: inline-block;
  text-align: center;
  margin: 15px 5px;
  height: auto;
}

#welcomemain img {
  padding: 10px;
  max-width: 100%;
}

h2 {
  color: #2e1f11;
}

#outeroutside a:link {
  color: #996515;
  text-decoration: none;
  font-weight: bold;
  font-size: 16px;
}

#outeroutside a:hover {
  color: #FFD700;
  opacity: 0.9;
}

#outeroutside a:visited {
  text-decoration: underline;
  color: #996515;
}

#outeroutside a:active {
  opacity: 0.5;
}

.row2 a {
  color: #C0C0C0 !important;
  text-decoration: none;
  font-weight: bold;
  font-size: 16px;
}

.row2 a:visited {
  text-decoration: underline;
  color: #999999;
}

.row2 a:active {
  opacity: 0.5;
}

#navigation img {
  padding: 10px;
  max-width: 30%;
}

.youtube {
  position: relative;
  padding-bottom: 60%; // This is the aspect ratio
  height: 0;
  overflow: hidden;
}

.youtube iframe {
  padding: 10px 10px 10px 30px;
  position: absolute;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
}

b {
  color: #312112;
}

i {
  color: #b05830;
}

.font {
  font-size: 15px;
}

.ih-item.circle.effect1 .spinner {
  width: 270px;
  height: 270px;
  border: 10px groove #fdec6d;
  border-right-color: #739968;
  border-bottom-color: #739968;
  border-radius: 50%;
  -webkit-transition: all 0.8s ease-in-out;
  -moz-transition: all 0.8s ease-in-out;
  transition: all 0.8s ease-in-out;
}

.ih-item.circle.effect1 .img {
  position: absolute;
  top: 0px;
  bottom: 0px;
  left: 0px;
  right: 0px;
  width: auto;
  height: auto;
}

.ih-item.circle.effect1 .img:before {
  display: none;
}

.ih-item.circle.effect1.colored .info {
  background: #1a4a72;
  background: rgba(26, 74, 114, 0.6);
}

.ih-item.circle.effect1 .info {
  top: 0px;
  bottom: 0px;
  left: 0px;
  right: 0px;
  background: #333333;
  background: rgba(0, 0, 0, 0.6);
  opacity: 0;
  -webkit-transition: all 0.8s ease-in-out;
  -moz-transition: all 0.8s ease-in-out;
  transition: all 0.8s ease-in-out;
}

.ih-item.circle.effect1 .info h3 {
  color: #fff;
  text-transform: uppercase;
  position: relative;
  letter-spacing: 2px;
  font-size: 22px;
  margin: 0 30px;
  padding: 55px 0 0 0;
  height: 110px;
  text-shadow: 0 0 1px white, 0 1px 2px rgba(0, 0, 0, 0.3);
}

.ih-item.circle.effect1 .info p {
  color: #bbb;
  padding: 10px 5px;
  font-style: italic;
  margin: 0 30px;
  font-size: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.5);
}

.ih-item.circle.effect1 a:hover .spinner {
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  -o-transform: rotate(180deg);
  transform: rotate(180deg);
}

.ih-item.circle.effect1 a:hover .info {
  opacity: 1;
}

.ih-item {
  position: relative;
  -webkit-transition: all 0.35s ease-in-out;
  -moz-transition: all 0.35s ease-in-out;
  transition: all 0.35s ease-in-out;
}

.ih-item,
.ih-item * {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.ih-item a {
  color: #333;
}

.ih-item a:hover {
  text-decoration: none;
}

.ih-item img {
  width: 100%;
  height: 100%;
}

.ih-item.circle {
  position: relative;
  width: 270px;
  height: 270px;
  border-radius: 50%;
}

.ih-item.circle .img {
  position: relative;
  width: 260px;
  height: 260px;
  border-radius: 50%;
}

.ih-item.circle .img:before {
  position: absolute;
  display: block;
  content: '';
  width: 100%;
  height: 100%;
  border-radius: 50%;
  box-shadow: inset 0 0 0 16px rgba(255, 255, 255, 0.6), 0 1px 2px rgba(0, 0, 0, 0.3);
  -webkit-transition: all 0.35s ease-in-out;
  -moz-transition: all 0.35s ease-in-out;
  transition: all 0.35s ease-in-out;
}

.ih-item.circle .img img {
  border-radius: 50%;
}

.ih-item.circle .info {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  text-align: center;
  border-radius: 50%;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.ih-item.circle.effect1 .spinner {
  width: 270px;
  height: 270px;
  border: 10px solid #ecab18;
  border-right-color: #1ad280;
  border-bottom-color: #1ad280;
  border-radius: 50%;
  -webkit-transition: all 0.8s ease-in-out;
  -moz-transition: all 0.8s ease-in-out;
  transition: all 0.8s ease-in-out;
}

.ih-item.circle.effect1 .img {
  position: absolute;
  top: 0px;
  bottom: 0;
  left: 0px;
  right: 0;
  width: auto;
  height: auto;
}

.ih-item.circle.effect1 .img:before {
  display: none;
}

.ih-item.circle.effect1.colored .info {
  background: #1a4a72;
  background: rgba(26, 74, 114, 0.6)
}

.ih-item.circle.effect1 .info {
  top: 0px;
  bottom: 0;
  left: 0px;
  right: 0;
  background: #333;
  background: rgba(0, 0, 0, 0.6);
  opacity: 0;
  -webkit-transition: all 0.8s ease-in-out;
  -moz-transition: all 0.8s ease-in-out;
  transition: all 0.8s ease-in-out;
}

.ih-item.circle.effect1 .info h3 {
  color: #fff;
  text-transform: uppercase;
  position: relative;
  letter-spacing: 2px;
  font-size: 20px;
  margin: 0 30px;
  padding: 55px 0 0 0;
  height: 110px;
  text-shadow: 0 0 1px #fff, 0 1px 2px rgba(0, 0, 0, 0.3);
}

.ih-item.circle.effect1 .info p {
  color: #bbb;
  padding: 11px 5px;
  font-style: italic;
  margin: 0 30px;
  font-size: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.5);
}

.ih-item.circle.effect1 a:hover .spinner {
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  -o-transform: rotate(180deg);
  transform: rotate(180deg);
}

.ih-item.circle.effect1 a:hover .info {
  opacity: 1;
}

.row {
  margin: 5px 0px 10px 5px;
  padding: 10px 3px 30px 3px;
  width: 1115px;
  max-width: 100%;
  display: flex;
  flex-wrap: nonwrap;
  align-content: center;
  overflow-y: hidden;
  overflow-x: auto;
  background-color: rgba(238, 155, 195, 0.95);
}

.row2 {
  margin: 5px 0px 5px 5px;
  padding: 10px 3px 15px 3px;
  width: 1115px;
  max-width: 100%;
  display: flex;
  flex-wrap: nonwrap;
  align-content: center;
  overflow-y: hidden;
  overflow-x: auto;
  background-color: rgba(238, 46, 54, 0.95);
}

.col-sm-6 li {
  padding: 10px 20px 10px 20px;
  max-width: 33.3%;
}

a.effect-shine:hover {
  -webkit-mask-image: linear-gradient(-75deg, rgba(0, 0, 0, .6) 30%, #000 50%, rgba(0, 0, 0, .6) 70%);
  -webkit-mask-size: 200%;
  animation: shine 2s infinite;
}

@-webkit-keyframes shine {
  from {
    -webkit-mask-position: 150%;
  }
  to {
    -webkit-mask-position: -50%;
  }

$5 Gator Buckle Sets

Get a selection of 6-piece gator buckle sets for just $5. These opulent adornments are jewel encrusted and waiting to make your belt fancy!

 Click here to see all styles!

Liz's Craft Pack

Explore the possibilities of leather craft with Liz's craft pack. Bursting at the seams with leather components, this not-so-little pack is only $25!

 Get Liz's Craft Pack Here!

25% Off Stamping Tools

Transform your veg tan with stamping tools! For this month only, get select stamping tools at an even lower price! Nearly 100 tools are included!

 Click here to view the selection!

Black Belt Bends

These Hermann Oak drum dyed belt bends are magnificent and they're on sale! Get them in black or brown.

 Get Black Hermann Oak Belt Bend Here!

Brown Belt Bends

These Hermann Oak drum dyed belt bends are magnificent and they're on sale! Get them in black or brown.

 Get Brown Hermann Oak Belt Bend Here!

Veg Tan Split Bundle

Our new splitter has left us swimming in veg tan splits! Get this sweet bundle for just $15!

 Get Your Veg Tan Split Bundle Here!

Legal Pad Poly Template

We have finally done it! Poly templates for one of our favorite projects: leather covers! Cover your legal pad in luxury with this template for only $5.

 Get Your Legal Pad Template Here!

Please note: This code has a number of problems in IE due to lack of support for some features, however even IE is displaying the leading image in each row. There are small circles in the li's that appear in the JS Fiddle that do not display on my actual website.

Body:
You really need to fix your markup.  As pointed out in my comment, you have invalid HTML.  Regardless, to correct the display issue in FF, here is a possible solution:

Flexbox is shrinking your img.  You can configure it not to.  I've added flex-shrink: 0 to .row img

hr {
  opacity: .5;
  display: block;
  margin-top: 0.5em;
  margin-bottom: 0.5em;
  margin-left: 80px;
  margin-right: 100px;
  border-style: inset;
  background: #00adbd;
  border-top: 0.5px dotted #fff;
}

.disabledbutton {
  pointer-events: none;
  opacity: 0.4;
}

#outeroutside {
  background-image: url("/assets/tile.jpg");
  background-color: #a00f14;
  width: 1300px;
  max-width: 100%;
  padding: 10px 10px 10px 10px;
  position: relative;
}

#outside {
  text-align: center;
  background-color: rgba(252, 251, 245, 0.95);
  width: 1200px;
  max-width: 100%;
  padding: 0px 10px 0px 0px;
}

#welcomemain p {
  width: 95%;
  display: inline-block;
  text-align: center;
  margin: 15px 5px;
  height: auto;
}

#welcomemain img {
  padding: 10px;
  max-width: 100%;
}

h2 {
  color: #2e1f11;
}

#outeroutside a:link {
  color: #996515;
  text-decoration: none;
  font-weight: bold;
  font-size: 16px;
}

#outeroutside a:hover {
  color: #FFD700;
  opacity: 0.9;
}

#outeroutside a:visited {
  text-decoration: underline;
  color: #996515;
}

#outeroutside a:active {
  opacity: 0.5;
}

.row2 a {
  color: #C0C0C0 !important;
  text-decoration: none;
  font-weight: bold;
  font-size: 16px;
}

.row2 a:visited {
  text-decoration: underline;
  color: #999999;
}

.row2 a:active {
  opacity: 0.5;
}

#navigation img {
  padding: 10px;
  max-width: 30%;
}

.youtube {
  position: relative;
  padding-bottom: 60%; // This is the aspect ratio
  height: 0;
  overflow: hidden;
}

.youtube iframe {
  padding: 10px 10px 10px 30px;
  position: absolute;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
}

b {
  color: #312112;
}

i {
  color: #b05830;
}

.font {
  font-size: 15px;
}

.ih-item.circle.effect1 .spinner {
  width: 270px;
  height: 270px;
  border: 10px groove #fdec6d;
  border-right-color: #739968;
  border-bottom-color: #739968;
  border-radius: 50%;
  -webkit-transition: all 0.8s ease-in-out;
  -moz-transition: all 0.8s ease-in-out;
  transition: all 0.8s ease-in-out;
}

.ih-item.circle.effect1 .img {
  position: absolute;
  top: 0px;
  bottom: 0px;
  left: 0px;
  right: 0px;
  width: auto;
  height: auto;
}

.ih-item.circle.effect1 .img:before {
  display: none;
}

.ih-item.circle.effect1.colored .info {
  background: #1a4a72;
  background: rgba(26, 74, 114, 0.6);
}

.ih-item.circle.effect1 .info {
  top: 0px;
  bottom: 0px;
  left: 0px;
  right: 0px;
  background: #333333;
  background: rgba(0, 0, 0, 0.6);
  opacity: 0;
  -webkit-transition: all 0.8s ease-in-out;
  -moz-transition: all 0.8s ease-in-out;
  transition: all 0.8s ease-in-out;
}

.ih-item.circle.effect1 .info h3 {
  color: #fff;
  text-transform: uppercase;
  position: relative;
  letter-spacing: 2px;
  font-size: 22px;
  margin: 0 30px;
  padding: 55px 0 0 0;
  height: 110px;
  text-shadow: 0 0 1px white, 0 1px 2px rgba(0, 0, 0, 0.3);
}

.ih-item.circle.effect1 .info p {
  color: #bbb;
  padding: 10px 5px;
  font-style: italic;
  margin: 0 30px;
  font-size: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.5);
}

.ih-item.circle.effect1 a:hover .spinner {
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  -o-transform: rotate(180deg);
  transform: rotate(180deg);
}

.ih-item.circle.effect1 a:hover .info {
  opacity: 1;
}

.ih-item {
  position: relative;
  -webkit-transition: all 0.35s ease-in-out;
  -moz-transition: all 0.35s ease-in-out;
  transition: all 0.35s ease-in-out;
}

.ih-item,
.ih-item * {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.ih-item a {
  color: #333;
}

.ih-item a:hover {
  text-decoration: none;
}

.ih-item img {
  width: 100%;
  height: 100%;
}

.ih-item.circle {
  position: relative;
  width: 270px;
  height: 270px;
  border-radius: 50%;
}

.ih-item.circle .img {
  position: relative;
  width: 260px;
  height: 260px;
  border-radius: 50%;
}

.ih-item.circle .img:before {
  position: absolute;
  display: block;
  content: '';
  width: 100%;
  height: 100%;
  border-radius: 50%;
  box-shadow: inset 0 0 0 16px rgba(255, 255, 255, 0.6), 0 1px 2px rgba(0, 0, 0, 0.3);
  -webkit-transition: all 0.35s ease-in-out;
  -moz-transition: all 0.35s ease-in-out;
  transition: all 0.35s ease-in-out;
}

.ih-item.circle .img img {
  border-radius: 50%;
}

.ih-item.circle .info {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  text-align: center;
  border-radius: 50%;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.ih-item.circle.effect1 .spinner {
  width: 270px;
  height: 270px;
  border: 10px solid #ecab18;
  border-right-color: #1ad280;
  border-bottom-color: #1ad280;
  border-radius: 50%;
  -webkit-transition: all 0.8s ease-in-out;
  -moz-transition: all 0.8s ease-in-out;
  transition: all 0.8s ease-in-out;
}

.ih-item.circle.effect1 .img {
  position: absolute;
  top: 0px;
  bottom: 0;
  left: 0px;
  right: 0;
  width: auto;
  height: auto;
}

.ih-item.circle.effect1 .img:before {
  display: none;
}

.ih-item.circle.effect1.colored .info {
  background: #1a4a72;
  background: rgba(26, 74, 114, 0.6)
}

.ih-item.circle.effect1 .info {
  top: 0px;
  bottom: 0;
  left: 0px;
  right: 0;
  background: #333;
  background: rgba(0, 0, 0, 0.6);
  opacity: 0;
  -webkit-transition: all 0.8s ease-in-out;
  -moz-transition: all 0.8s ease-in-out;
  transition: all 0.8s ease-in-out;
}

.ih-item.circle.effect1 .info h3 {
  color: #fff;
  text-transform: uppercase;
  position: relative;
  letter-spacing: 2px;
  font-size: 20px;
  margin: 0 30px;
  padding: 55px 0 0 0;
  height: 110px;
  text-shadow: 0 0 1px #fff, 0 1px 2px rgba(0, 0, 0, 0.3);
}

.ih-item.circle.effect1 .info p {
  color: #bbb;
  padding: 11px 5px;
  font-style: italic;
  margin: 0 30px;
  font-size: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.5);
}

.ih-item.circle.effect1 a:hover .spinner {
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  -o-transform: rotate(180deg);
  transform: rotate(180deg);
}

.ih-item.circle.effect1 a:hover .info {
  opacity: 1;
}

.row {
  margin: 5px 0px 10px 5px;
  padding: 10px 3px 30px 3px;
  width: 1115px;
  max-width: 100%;
  display: flex;
  flex-wrap: nonwrap;
  align-content: center;
  overflow-y: hidden;
  overflow-x: auto;
  background-color: rgba(238, 155, 195, 0.95);
}

.row img {
  flex-shrink: 0;
}

.row2 {
  margin: 5px 0px 5px 5px;
  padding: 10px 3px 15px 3px;
  width: 1115px;
  max-width: 100%;
  display: flex;
  flex-wrap: nonwrap;
  align-content: center;
  overflow-y: hidden;
  overflow-x: auto;
  background-color: rgba(238, 46, 54, 0.95);
}

.col-sm-6 li {
  padding: 10px 20px 10px 20px;
  max-width: 33.3%;
}

a.effect-shine:hover {
  -webkit-mask-image: linear-gradient(-75deg, rgba(0, 0, 0, .6) 30%, #000 50%, rgba(0, 0, 0, .6) 70%);
  -webkit-mask-size: 200%;
  animation: shine 2s infinite;
}

@-webkit-keyframes shine {
  from {
    -webkit-mask-position: 150%;
  }
  to {
    -webkit-mask-position: -50%;
  }

<ul id="week1">
            <ul class="row">

              <img src="http://springfieldleather.com/assets/Scroll_Week1.1.png">

              <li class="col-sm-6">

                <!-- normal -->
                <div class="ih-item circle effect1">
                  <a href="#">
                    <div class="spinner"></div>
                    <div class="img"><img src="http://springfieldleather.com/assets/Week1_Gator_Buckles.jpg" alt="img"></div>
                    <div class="info">
                      <div class="info-back">
                        <h3>$5 Gator Buckle Sets</h3>
                        <p>Get a selection of 6-piece gator buckle sets for just $5. These opulent adornments are jewel encrusted and waiting to make your belt fancy!</p>
                      </div>
                    </div>
                  </a>
                  <P> <a href="/5-gator-buckle-sets" class="effect-shine">Click here to see all styles! </a></p>
              </li>
              <li class="col-sm-6">

                <!-- normal -->
                <div class="ih-item circle effect1">
                  <a href="#">
                    <div class="spinner"></div>
                    <div class="img"><img src="http://springfieldleather.com/assets/Week1_Liz_CraftPack.jpg" alt="img"></div>
                    <div class="info">
                      <div class="info-back">
                        <h3>Liz's Craft Pack</h3>
                        <p>Explore the possibilities of leather craft with Liz's craft pack. Bursting at the seams with leather components, this not-so-little pack is only $25!</p>
                      </div>
                    </div>
                  </a>

                  <P> <a href="/Lizs-Craft-Pack" class="effect-shine">Get Liz's Craft Pack Here!</a></p>
              </li>
              <li class="col-sm-6">

                <!-- normal -->
                <div class="ih-item circle effect1">
                  <a href="#">
                    <div class="spinner"></div>
                    <div class="img"><img src="http://springfieldleather.com/assets/Week1_Stamping_Tools.jpg" alt="img"></div>
                    <div class="info">
                      <div class="info-back">
                        <h3>25% Off Stamping Tools</h3>
                        <p>Transform your veg tan with stamping tools! For this month only, get select stamping tools at an even lower price! Nearly 100 tools are included!</p>
                      </div>
                    </div>
                  </a>
                  <P> <a href="/tools/Tools-Specials-Closeouts-Deals/SALE-Stamping-Tools" class="effect-shine">Click here to view the selection!</a></p>
              </li>

              <li class="col-sm-6">

                <!-- normal -->
                <div class="ih-item circle effect1">
                  <a href="#">
                    <div class="spinner"></div>
                    <div class="img"><img src="http://springfieldleather.com/assets/Week1_BeltBend_Black.jpg" alt="img"></div>
                    <div class="info">
                      <div class="info-back">
                        <h3>Black Belt Bends</h3>
                        <p>These Hermann Oak drum dyed belt bends are magnificent and they're on sale! Get them in black or brown. </p>
                      </div>
                    </div>
                  </a>
                  <P> <a href="/Hermann-Oak-Belt-Bend-Black" class="effect-shine">Get Black Hermann Oak Belt Bend Here!</a></p>
              </li>

              <li class="col-sm-6">

                <!-- normal -->
                <div class="ih-item circle effect1">
                  <a href="#">
                    <div class="spinner"></div>
                    <div class="img"><img src="http://springfieldleather.com/assets/Week1_BeltBend_Brown.jpg" alt="img"></div>
                    <div class="info">
                      <div class="info-back">
                        <h3>Brown Belt Bends</h3>
                        <p>These Hermann Oak drum dyed belt bends are magnificent and they're on sale! Get them in black or brown.</p>
                      </div>
                    </div>
                  </a>
                  <P> <a href="/Hermann-Oak-Belt-Bend-Brown" class="effect-shine">Get Brown Hermann Oak Belt Bend Here!</a></p>
              </li>

              <li class="col-sm-6">

                <!-- normal -->
                <div class="ih-item circle effect1">
                  <a href="#">
                    <div class="spinner"></div>
                    <div class="img"><img src="http://springfieldleather.com/assets/Week1_VegTan_Split_Bundle.jpg" alt="img"></div>
                    <div class="info">
                      <div class="info-back">
                        <h3>Veg Tan Split Bundle</h3>
                        <p>Our new splitter has left us swimming in veg tan splits! Get this sweet bundle for just $15!</p>
                      </div>
                    </div>
                  </a>
                  <P> <a href="target.html" class="effect-shine">Get Your Veg Tan Split Bundle Here!</a></p>
              </li>
              <li class="col-sm-6">

                <!-- normal -->
                <div class="ih-item circle effect1">
                  <a href="#">
                    <div class="spinner"></div>
                    <div class="img"><img src="http://springfieldleather.com/assets/Week1_Jr_LegalPad_Templete.jpg" alt="img"></div>
                    <div class="info">
                      <div class="info-back">
                        <h3>Legal Pad Poly Template</h3>
                        <p>We have finally done it! Poly templates for one of our favorite projects: leather covers! Cover your legal pad in luxury with this template for only $5.</p>
                      </div>
                    </div>
                  </a>
                  <P> <a href="/Polymer-Templates-Junior-Legal-Pad-Cover" class="effect-shine">Get Your Legal Pad Template Here!</a></p>
              </li>
            </ul>
          </ul>

          <hr>


来源: stackexchange

问:
Knockout checkbox always false
I have a knockout checkbox and when it's checked it's being posted as false.  Any help would be appreciated
View:

```<code><div class="managers" data-bind="foreach: managers">
    <div class="row">
        <div class="col-sm-12">
            <div class="checkbox col-xs-12" data-bind="visible: isVerified == false && postalMessage != '' && postalMessage != null">
                <label>
                    <input type="checkbox" data-bind="attr: { checked: isCorrect, name: 'Personnels[' + $index() + '].IsCorrect' }"> <b>@AddressResource.IsCorrect</b>
                </label>
        </div>
    </div>
</div> <!-- .row -->
</code>```

Javascript:

```<code>function Personnel(personnelId, firstName, middleName, lastName, primaryPhone, primaryPhoneExtension, secondaryPhone, secondaryPhoneExtension, fax, faxExtension, primaryEmail, secondaryEmail, postalAddress, city, state, zip, isVerified, isCorrect, postalMessage) {
        var self = this;
        self.personnelId = personnelId;
        self.firstName = firstName;
        self.middleName = middleName;
        self.lastName = lastName;
        self.primaryPhone = primaryPhone;
        self.primaryPhoneExtension = primaryPhoneExtension;
        self.secondaryPhone = secondaryPhone;
        self.secondaryPhoneExtension = secondaryPhoneExtension;
        self.fax = fax;
        self.faxExtension = faxExtension;
        self.primaryEmail = primaryEmail;
        self.secondaryEmail = secondaryEmail;
        self.postalAddress = postalAddress;
        self.city = city;
        self.state = state;
        self.zip = zip;
        self.isVerified = isVerified;
        self.isCorrect = ko.observable(isCorrect);
        self.postalMessage = postalMessage;
    }

    function KOViewModel() {
        var self = this;

        self.states = ko.observableArray();

        var modelStates = mStates;

        for (var i = 0; i < modelStates.length; i++) {
            var state = modelStates[i];

            self.states.push({
                id: state.Value,
                state: state.Text
            });
        }

        self.managers = ko.observableArray();
        var modelManagers = mManagers;

        if (modelManagers.length === 0) {
            self.managers.push(new Personnel(0, "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""));
        } else {
            for (var x = 0; x < modelManagers.length; x++) {
                var personnel = modelManagers[x];
                self.managers.push(new Personnel(personnel.PersonnelId, personnel.FirstName, personnel.MiddleName, personnel.LastName, personnel.PrimaryPhone, personnel.PrimaryPhoneExtension, personnel.SecondaryPhone, personnel.SecondaryPhoneExtension, personnel.Fax, personnel.FaxExtension, personnel.PrimaryEmail, personnel.SecondaryEmail, personnel.PostalAddress, personnel.City, personnel.State, personnel.Zip5, personnel.IsVerified, personnel.IsCorrect, personnel.PostalMessage));
            }
        }

        self.addPersonnel = function () {
            self.managers.push(new Personnel(0, "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""));
        };
    }
</code>```

答:
You aren't actually using the knockout checked binding. You're using the attr binding with the 'checked' attribute which probably doesn't have all the right event hooks. You just need to move the checked part outside of the attr binding's parameters to its own binding.</p>

```<code>data-bind="attr: { checked: isCorrect, ...
//becomes
data-bind="checked: isCorrect, attr: { ...
</code>```

ContentLicense: CC BY-SA 3.0

Title: Knockout checkbox always false

Body:
I have a knockout checkbox and when it's checked it's being posted as false.  Any help would be appreciated
View:

                    <input type="checkbox" data-bind="attr: { checked: isCorrect, name: 'Personnels[' + $index() + '].IsCorrect' }"> @AddressResource.IsCorrect

Javascript:

function Personnel(personnelId, firstName, middleName, lastName, primaryPhone, primaryPhoneExtension, secondaryPhone, secondaryPhoneExtension, fax, faxExtension, primaryEmail, secondaryEmail, postalAddress, city, state, zip, isVerified, isCorrect, postalMessage) {
        var self = this;
        self.personnelId = personnelId;
        self.firstName = firstName;
        self.middleName = middleName;
        self.lastName = lastName;
        self.primaryPhone = primaryPhone;
        self.primaryPhoneExtension = primaryPhoneExtension;
        self.secondaryPhone = secondaryPhone;
        self.secondaryPhoneExtension = secondaryPhoneExtension;
        self.fax = fax;
        self.faxExtension = faxExtension;
        self.primaryEmail = primaryEmail;
        self.secondaryEmail = secondaryEmail;
        self.postalAddress = postalAddress;
        self.city = city;
        self.state = state;
        self.zip = zip;
        self.isVerified = isVerified;
        self.isCorrect = ko.observable(isCorrect);
        self.postalMessage = postalMessage;
    }

    function KOViewModel() {
        var self = this;

        self.states = ko.observableArray();

        var modelStates = mStates;

        for (var i = 0; i < modelStates.length; i++) {
            var state = modelStates[i];

            self.states.push({
                id: state.Value,
                state: state.Text
            });
        }

        self.managers = ko.observableArray();
        var modelManagers = mManagers;

        if (modelManagers.length === 0) {
            self.managers.push(new Personnel(0, "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""));
        } else {
            for (var x = 0; x < modelManagers.length; x++) {
                var personnel = modelManagers[x];
                self.managers.push(new Personnel(personnel.PersonnelId, personnel.FirstName, personnel.MiddleName, personnel.LastName, personnel.PrimaryPhone, personnel.PrimaryPhoneExtension, personnel.SecondaryPhone, personnel.SecondaryPhoneExtension, personnel.Fax, personnel.FaxExtension, personnel.PrimaryEmail, personnel.SecondaryEmail, personnel.PostalAddress, personnel.City, personnel.State, personnel.Zip5, personnel.IsVerified, personnel.IsCorrect, personnel.PostalMessage));
            }
        }

        self.addPersonnel = function () {
            self.managers.push(new Personnel(0, "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""));
        };
    }

Body:
You aren't actually using the knockout checked binding. You're using the attr binding with the 'checked' attribute which probably doesn't have all the right event hooks. You just need to move the checked part outside of the attr binding's parameters to its own binding.

data-bind="attr: { checked: isCorrect, ...
//becomes
data-bind="checked: isCorrect, attr: { ...


问:
momentJS convert possibility day into Date() js format
I am trying to convert a date in format momentjs into a date from javascript native new Date().

The problem is that if I have moment(myDay).toDate(); it converts to the current date, and I want the date from myDay.

myDay looks like: "YYYY-MM-DD" => 2017-11-24 and I would like to have it with the format: Fri Nov 24 2017 20:17:11 GMT+0100 (Hora estándar romance) but I get Thu Nov 16 2017 etc...

It is possible to convert it like that way?

答:
you want something like this:

```<code>moment(myDay, "YYYY-MM-DD").toString();
</code>```

moment().toString() Returns an english string in a similar format to JS Date's .toString().

```<code>moment().toString() // "Sat Apr 30 2016 16:59:46 GMT-0500"
</code>```

Body:
you want something like this:

moment(myDay, "YYYY-MM-DD").toString();

moment().toString() Returns an english string in a similar format to JS Date's .toString().

moment().toString() // "Sat Apr 30 2016 16:59:46 GMT-0500"


问:
When I run the node.js server, nothing happens
Is there anyone who's familiar with Node.js and mongoDB?
Whenever I run the server, nothing happens. I'm supposed to see that console.log("WE JUST SAVED A CAT TO THE DB")

Here's the code of my app.js:

```<code>var mongoose = require("mongoose");
mongoose.Promise = global.Promise;
mongoose.connect("mongodb://localhost/cat_app", {
  useMongoClient: true
});
var catSchema = new mongoose.Schema({
  name: String,
  age: Number,
  temperament: String
});
var Cat = mongoose.model("Cat", catSchema);
// Add a new cat to the DB
var george = new Cat({
  name: "George",
  age: 11,
  temperament: "Grouchy"
});
george.save(function(err, cat) {
  if (err) {
    console.log("SOMETHING WENT WRONG!")
  } else {
    console.log("WE JUST SAVED A CAT TO THE DB!")
    console.log(cat);
  }
});
// Retrieve all cats from the DB and console.log each one
</code>```

So is there any mistake up there?

答:
This should help.

you start mongod //mongo server either though bash or file.

then start mongo // connect to your server

then node cats.js // in my case it's southpark.js

with code inside like this// and that should work.

```<code>var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/SP_app');

var spSchema = new mongoose.Schema({
    name: String,
    age: Number,
    temperament:String
});

var SP = mongoose.model('SP', spSchema);

var eric = new SP({
    name:'Butters',
    age:10,
    temperament:'confused'
});

eric.save(function(err, sp){
    if(err){
        console.log("404 Something's Wrong")
    }   else{
        console.log('WE JUST SAVED A CHARACTER TO THE DB:')
        console.log(sp);
    }
});
</code>```

Body:
Is there anyone who's familiar with Node.js and mongoDB?
Whenever I run the server, nothing happens. I'm supposed to see that console.log("WE JUST SAVED A CAT TO THE DB")

Here's the code of my app.js:

var mongoose = require("mongoose");
mongoose.Promise = global.Promise;
mongoose.connect("mongodb://localhost/cat_app", {
  useMongoClient: true
});
var catSchema = new mongoose.Schema({
  name: String,
  age: Number,
  temperament: String
});
var Cat = mongoose.model("Cat", catSchema);
// Add a new cat to the DB
var george = new Cat({
  name: "George",
  age: 11,
  temperament: "Grouchy"
});
george.save(function(err, cat) {
  if (err) {
    console.log("SOMETHING WENT WRONG!")
  } else {
    console.log("WE JUST SAVED A CAT TO THE DB!")
    console.log(cat);
  }
});
// Retrieve all cats from the DB and console.log each one

So is there any mistake up there?

Body:
This should help.

you start mongod //mongo server either though bash or file.

then start mongo // connect to your server

then node cats.js // in my case it's southpark.js

with code inside like this// and that should work.

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/SP_app');

var spSchema = new mongoose.Schema({
    name: String,
    age: Number,
    temperament:String
});

var SP = mongoose.model('SP', spSchema);

var eric = new SP({
    name:'Butters',
    age:10,
    temperament:'confused'
});

eric.save(function(err, sp){
    if(err){
        console.log("404 Something's Wrong")
    }   else{
        console.log('WE JUST SAVED A CHARACTER TO THE DB:')
        console.log(sp);
    }
});


问:
OpenCart - Not all products showing on category pages
Here is only 18 products showing but there should be 25 or so.

In  settings > option > items - this is set at 100...

Any ideas how to fix as inherited the site and not an open cart expert

答:
In your case you have two ways, you can add every product to the main category and its sub category or you can just edit the code to show the sub category products on the main category.

Go to catalog/controller/product/category.phpand find this replace with'filter_category_id' => $category_id to 'filter_sub_category' => true
after this all 25 products will show on that category.


问:
Sharepoint 2010 workflow with custom infopath form
I am trying to figure out how to use a custom Infopath form with a Sharepoint 2010 workflow. I have read about a million tutorials on how to do this, but I always end up receiving a "The workflow template has specified no FormURN for this page." error.

I use a Visual Studio project to deploy the solution. I have a Module containing the .XSN form in a "Forms" folder and of course the Workflow itself.

After tons of googling I think these settings should be correct:

My Form Module def:

```<code><?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Module Name="OPF" Url="FormServerTemplates" RootWebOnly="TRUE" xmlns="http://schemas.microsoft.com/sharepoint/">
    <File Path="Travel.xsn" Url="Travel.xsn" Type="GhostableInLibrary" />
  </Module>
</Elements>
</code>```

My Workflow def:

```<code><?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Workflow
     Name="Godkjenning av timelister"
     Description="My SharePoint Workflow"
     Id="d92ce465-4fbd-46ee-9e44-ff0320d2bb75"
     TaskListContentTypeId="0x01080100C9C9515DE4E24001905074F980F93160"
     CodeBesideClass="OPFWorkflowTest2.Godkjenning_av_timelister.Godkjenning_av_timelister"
     InstantiationUrl="_layouts/IniWrkflIP.aspx"
     CodeBesideAssembly="$assemblyname$">
    <Categories/>
    <MetaData>
      <AssociationCategories>List</AssociationCategories>
      <MetaData>
        <Instantiation_FormURN>urn:schemas-microsoft-com:office:infopath:Travel:-myXSD-2005-10-21T21-12-27</Instantiation_FormURN>
      </MetaData>
      <StatusPageUrl>_layouts/WrkStat.aspx</StatusPageUrl>
    </MetaData>
  </Workflow>
</Elements>
</code>```

My Feature def:

```<code><?xml version="1.0" encoding="utf-8" ?>
<Feature xmlns="http://schemas.microsoft.com/sharepoint/"
ReceiverAssembly="Microsoft.Office.Workflow.Feature, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
   ReceiverClass="Microsoft.Office.Workflow.Feature.WorkflowFeatureReceiver">
  <Properties>
    <Property Key="GloballyAvailable" Value="true" />
    <Property Key="RegisterForms" Value="Forms\*.xsn" />
  </Properties>
</Feature>
</code>```

I have published the form from Infopath as an "Administrator approved form template". After I deploy the Visual Studio Solution the form is displayed in the "Central Administration -> Manage Form Templates" list and is marked as "Workflow Enabled=Yes". I get the No FormURN error no matter how I use the form in the workflow. For instance if I try to use it with a task.

Additional things I have tried:

- Used both Infopath 2007 and 2010

- Security on Infopath form is "Domain"

- The alternate access path is left empty when publishing the form

- Used two completely separate environments

- Endless combinations of different settings in the XML files

It seems like some people have managed to get this to work, but no matter what I do it doesn't work for me.

Here is a link that discuss this problem with various solutions (that doesnt work for me):

http://social.msdn.microsoft.com/Forums/en-US/sharepoint2010programming/thread/fac26787-1729-46c8-9021-80652b3734c8

Can only list 1 link on Stack Overflow... first post. Typical...

So if there is any Sharepoint experts out there, please help me resolve this problem! This is the kind of thing that makes me question the whole product!

答:
I'm able to see the InfoPath form after associating with VS 2010 workflow, please find below article on my blog to verify publishing InfoPath form and let me know if you need any help to resolve above issue.

http://sumansharepoint.blogspot.com/2008/05/points-to-remenber-when-designing.html
these steps are same for both InfoPath 2007 and 2010 forms.

Please find below my feature.xml and elements.xml files

Workflow.xml

 Name="MyWorkflow" -->

      List

```<code>  <Task0_FormURN>urn:schemas-microsoft-com:office:infopath:ApprovalForm:-myXSD-2011-01-13T09-41-32</Task0_FormURN>
  <StatusPageUrl>_layouts/WrkStat.aspx</StatusPageUrl>
</MetaData>
</code>```

Feature.xml

I did not see element manifest entry on your feature.xml code, please verify that.

ContentLicense: CC BY-SA 2.5

Body:
I am trying to figure out how to use a custom Infopath form with a Sharepoint 2010 workflow. I have read about a million tutorials on how to do this, but I always end up receiving a "The workflow template has specified no FormURN for this page." error.

I use a Visual Studio project to deploy the solution. I have a Module containing the .XSN form in a "Forms" folder and of course the Workflow itself.

After tons of googling I think these settings should be correct:

My Form Module def:

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Module Name="OPF" Url="FormServerTemplates" RootWebOnly="TRUE" xmlns="http://schemas.microsoft.com/sharepoint/">
    <File Path="Travel.xsn" Url="Travel.xsn" Type="GhostableInLibrary" />
  </Module>
</Elements>

My Workflow def:

<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Workflow
     Name="Godkjenning av timelister"
     Description="My SharePoint Workflow"
     Id="d92ce465-4fbd-46ee-9e44-ff0320d2bb75"
     TaskListContentTypeId="0x01080100C9C9515DE4E24001905074F980F93160"
     CodeBesideClass="OPFWorkflowTest2.Godkjenning_av_timelister.Godkjenning_av_timelister"
     InstantiationUrl="_layouts/IniWrkflIP.aspx"
     CodeBesideAssembly="$assemblyname$">
    <Categories/>
    <MetaData>
      <AssociationCategories>List</AssociationCategories>
      <MetaData>
        <Instantiation_FormURN>urn:schemas-microsoft-com:office:infopath:Travel:-myXSD-2005-10-21T21-12-27</Instantiation_FormURN>
      </MetaData>
      <StatusPageUrl>_layouts/WrkStat.aspx</StatusPageUrl>
    </MetaData>
  </Workflow>
</Elements>

My Feature def:

<?xml version="1.0" encoding="utf-8" ?>
<Feature xmlns="http://schemas.microsoft.com/sharepoint/"
ReceiverAssembly="Microsoft.Office.Workflow.Feature, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
   ReceiverClass="Microsoft.Office.Workflow.Feature.WorkflowFeatureReceiver">
  <Properties>
    <Property Key="GloballyAvailable" Value="true" />
    <Property Key="RegisterForms" Value="Forms\*.xsn" />
  </Properties>
</Feature>

I have published the form from Infopath as an "Administrator approved form template". After I deploy the Visual Studio Solution the form is displayed in the "Central Administration -> Manage Form Templates" list and is marked as "Workflow Enabled=Yes". I get the No FormURN error no matter how I use the form in the workflow. For instance if I try to use it with a task.

Additional things I have tried:

- Used both Infopath 2007 and 2010

- Security on Infopath form is "Domain"

- The alternate access path is left empty when publishing the form

- Used two completely separate environments

- Endless combinations of different settings in the XML files

It seems like some people have managed to get this to work, but no matter what I do it doesn't work for me.

Here is a link that discuss this problem with various solutions (that doesnt work for me):

http://social.msdn.microsoft.com/Forums/en-US/sharepoint2010programming/thread/fac26787-1729-46c8-9021-80652b3734c8

Can only list 1 link on Stack Overflow... first post. Typical...

So if there is any Sharepoint experts out there, please help me resolve this problem! This is the kind of thing that makes me question the whole product!

Body:
I'm able to see the InfoPath form after associating with VS 2010 workflow, please find below article on my blog to verify publishing InfoPath form and let me know if you need any help to resolve above issue.

http://sumansharepoint.blogspot.com/2008/05/points-to-remenber-when-designing.html
these steps are same for both InfoPath 2007 and 2010 forms.

Please find below my feature.xml and elements.xml files

Workflow.xml

 Name="MyWorkflow" -->

      List

  <Task0_FormURN>urn:schemas-microsoft-com:office:infopath:ApprovalForm:-myXSD-2011-01-13T09-41-32</Task0_FormURN>
  <StatusPageUrl>_layouts/WrkStat.aspx</StatusPageUrl>
</MetaData>

Feature.xml

I did not see element manifest entry on your feature.xml code, please verify that.


问:
Azure AD B2C Authentication Firewall Issues
I have implemented a website that uses Azure AD B2C as its authentication mechanism.

Everything works great except I recently ran into a firewall issue with one of my clients.  When the client redirects to either *.onmicrosoft.com and/or login.microsoftonline.com my client's corporate firewall blocks the routes.  And to further complicate my situation my client's corporate firewall restrictions can not be changed.

Is there any work around that anyone can suggest such using a headless login workflow that is orchestrated within the web server that hosts my website or possibly using custom domains that my client trusts such as login.mycompany.com?

答:
Saca is correct, the customer owned domains feature could be used to change the domain name when it becomes available.  Work has started, but it's still going to be some time before it's publicly available.

Regarding your client's firewall restriction that blocks login.microsoftonline.com.  If it helps, there are some things that your client should be aware of.  Blocking this domain doesn't just prevent application / Azure AD B2C scenarios, it blocks all Azure Active Directory sign-ins used for Microsoft Office 365 and Microsoft Azure.  This means that if some other organization were to share Microsoft resources with one of the employees of your client's organization, they would be unable to access them.


问:
How to prevent free distribution of a commercial Excel spreadsheet
I'm not sure if this is more appropriate under a different SE site (Super User?).

I want to build and sell a complex macro driven driven spreadsheet to a certain vertical. I am mainly concerned about free/unauthorised distribution between customers within that vertical.

I can see that there is a few obscure products on the market that might be able to do what I want, but the few reviews that i've been able to find haven't been favourable.

One vendor however lists that free distribution can circumvented by either:

Using a key generator to create license codes

Using the online activation feature

Or by simply using an encrypted password

Is anyone aware of any guidelines/frameworks (any language) for me to build my own solution to achieve this, namely requiring licence codes or online activation?

If this is generally a difficult endeavour, is there a commercial product that anyone recommend?

I'm also thinking the complexities involved in achieving this might push me to building a small SaaS application instead. Am I better off just going that route?

答:
I have created an Excel sheet that I could remotely remove access to if a monthly subscription payment failed. Here is how to accomplish this:

Create and HTML table and upload it to your website

Within your Excel doc go to the data tab and select get from web - import your table into a sheet called "Verify" - make sure your table has 3 columns. Serial Number is in the first column, description of user in 2nd, and your error message in the top of col 3. The error message stored here is what every user that isn't registered will see. The first serial number should appear in cell A2 of the sheet Verify.

Within your Visual Basic editor paste this code into a Module - This code will return an 8 digit serial number based on a PC's Hard Drive serial number:

```<code>Function HDSerialNumber() As String
     Dim fsObj   As Object
    Dim drv     As Object
    Set fsObj = CreateObject("Scripting.FileSystemObject")
     Set drv = fsObj.Drives("C")

    HDSerialNumber = Left(Hex(drv.SerialNumber), 4) _
         & "-" & Right(Hex(drv.SerialNumber), 4)
End Function
</code>```

Also in another module I make sure the Internet is connected. If no Internet then the sheet closes. If you don't do this then if someone disconnects from the Internet your serials won't be loaded.

```<code>Option Explicit
#If VBA7 And Win64 Then
    Private Declare PtrSafe Function InternetGetConnectedStateEx Lib "wininet.dll" (ByRef lpdwFlags As Long, ByVal lpszConnectionName As String, ByVal dwNameLen As Integer, ByVal dwReserved As Long) As Long
#Else
    Private Declare Function InternetGetConnectedStateEx Lib "wininet.dll" (ByRef lpdwFlags As Long, ByVal lpszConnectionName As String, ByVal dwNameLen As Integer, ByVal dwReserved As Long) As Long
#End If

Function IsInternetConnected() As Boolean

Dim strConnType As String, lngReturnStatus As Long, MyScript As String

    If Application.OperatingSystem Like "*Macintosh*" Then
        MyScript = "repeat with i from 1 to 2" & vbNewLine
        MyScript = MyScript & "try" & vbNewLine
        MyScript = MyScript & "do shell script ""ping -o -t 2 www.apple.com""" & vbNewLine
        MyScript = MyScript & "set mystatus to 1" & vbNewLine
        MyScript = MyScript & "exit repeat" & vbNewLine
        MyScript = MyScript & "on error" & vbNewLine
        MyScript = MyScript & "If i = 2 Then set mystatus to 0" & vbNewLine
        MyScript = MyScript & "end try" & vbNewLine
        MyScript = MyScript & "end repeat" & vbNewLine
        MyScript = MyScript & "return mystatus"
        If MacScript(MyScript) Then IsInternetConnected = True
    Else
        lngReturnStatus = InternetGetConnectedStateEx(lngReturnStatus, strConnType, 254, 0)
        If lngReturnStatus = 1 Then IsInternetConnected = True
    End If
End Function
</code>```

Then inside the Workbook_Open area paste this:

```<code>Private Sub Workbook_Open()

If IsInternetConnected Then

Dim objFSO As Object
Dim MyFolder As String
Dim sFileName As String
Dim iFileNum As Integer
Dim sBuf As String
Dim trialstartdate As String
Dim z As String

Dim fsoFSO
Set fsoFSO = CreateObject("Scripting.FileSystemObject")

'UNCOMMENT below to SHOW the serials sheet when the workbook is opened
ActiveWorkbook.Sheets("Verify").Visible = xlSheetVisible

'UNCOMMENT below to hide the serials sheet when the workbook is opened
'ActiveWorkbook.Sheets("Verify").Visible = xlSheetVeryHidden

Refresh_Serials
    z = 2
    'loop here for valid hard drive serial number
    Do Until IsEmpty(Worksheets("Verify").Cells(z, 1).Value)
        If Worksheets("Verify").Cells(z, 1).Value = HDSerialNumber Then
        'verified and let pass

        GoTo SerialVerified
        End If
        z = z + 1

        Loop

Dim custommessage As String

custommessage = Worksheets("Verify").Cells(2, 3)

MsgBox custommessage + " Your serial number is: " + HDSerialNumber

            Dim wsh1, MyKey1
            Set wsh1 = CreateObject("Wscript.Shell")
            MyKey1 = "%{TAB}"
            wsh1.SendKeys MyKey1

             MsgBox "The Commission Tracker will not open without a valid serial number. It will now close. uncomment this in workbook->open to close the workbook if the serial isn't found"
            Application.DisplayAlerts = False
            'uncomment this to close the workbook if the serial isn't found
             'ActiveWorkbook.Close
            Application.DisplayAlerts = True

SerialVerified:

' does the end user agree to not use this tool for mailicous purposes?

MsgAgree = MsgBox("Your PC's serial number is " & HDSerialNumber & ". By clicking 'Yes' you agree to use our software as described in our end user agreement. - the URL to your terms here", vbYesNo, "Final Agreement")

    If MsgAgree = vbNo Then
    'close program
    MsgBox "This program will now close since you do not agree to our end user agreement"
        Application.DisplayAlerts = False
    ActiveWorkbook.Close
    Application.DisplayAlerts = True

    Else
    'continue to open the program

    End If

Else
   MsgBox "No Network Connection Detected - You must have an internet connection to run the commission tracker."
    Application.DisplayAlerts = False
    ActiveWorkbook.Close
    Application.DisplayAlerts = True
End If

End Sub
</code>```

That should do it....

Body:
I have created an Excel sheet that I could remotely remove access to if a monthly subscription payment failed. Here is how to accomplish this:

Create and HTML table and upload it to your website

Within your Excel doc go to the data tab and select get from web - import your table into a sheet called "Verify" - make sure your table has 3 columns. Serial Number is in the first column, description of user in 2nd, and your error message in the top of col 3. The error message stored here is what every user that isn't registered will see. The first serial number should appear in cell A2 of the sheet Verify.

Within your Visual Basic editor paste this code into a Module - This code will return an 8 digit serial number based on a PC's Hard Drive serial number:

Function HDSerialNumber() As String
     Dim fsObj   As Object
    Dim drv     As Object
    Set fsObj = CreateObject("Scripting.FileSystemObject")
     Set drv = fsObj.Drives("C")

    HDSerialNumber = Left(Hex(drv.SerialNumber), 4) _
         & "-" & Right(Hex(drv.SerialNumber), 4)
End Function

Also in another module I make sure the Internet is connected. If no Internet then the sheet closes. If you don't do this then if someone disconnects from the Internet your serials won't be loaded.

Option Explicit
#If VBA7 And Win64 Then
    Private Declare PtrSafe Function InternetGetConnectedStateEx Lib "wininet.dll" (ByRef lpdwFlags As Long, ByVal lpszConnectionName As String, ByVal dwNameLen As Integer, ByVal dwReserved As Long) As Long
#Else
    Private Declare Function InternetGetConnectedStateEx Lib "wininet.dll" (ByRef lpdwFlags As Long, ByVal lpszConnectionName As String, ByVal dwNameLen As Integer, ByVal dwReserved As Long) As Long
#End If

Function IsInternetConnected() As Boolean

Dim strConnType As String, lngReturnStatus As Long, MyScript As String

    If Application.OperatingSystem Like "*Macintosh*" Then
        MyScript = "repeat with i from 1 to 2" & vbNewLine
        MyScript = MyScript & "try" & vbNewLine
        MyScript = MyScript & "do shell script ""ping -o -t 2 www.apple.com""" & vbNewLine
        MyScript = MyScript & "set mystatus to 1" & vbNewLine
        MyScript = MyScript & "exit repeat" & vbNewLine
        MyScript = MyScript & "on error" & vbNewLine
        MyScript = MyScript & "If i = 2 Then set mystatus to 0" & vbNewLine
        MyScript = MyScript & "end try" & vbNewLine
        MyScript = MyScript & "end repeat" & vbNewLine
        MyScript = MyScript & "return mystatus"
        If MacScript(MyScript) Then IsInternetConnected = True
    Else
        lngReturnStatus = InternetGetConnectedStateEx(lngReturnStatus, strConnType, 254, 0)
        If lngReturnStatus = 1 Then IsInternetConnected = True
    End If
End Function

Then inside the Workbook_Open area paste this:

Private Sub Workbook_Open()

If IsInternetConnected Then

Dim objFSO As Object
Dim MyFolder As String
Dim sFileName As String
Dim iFileNum As Integer
Dim sBuf As String
Dim trialstartdate As String
Dim z As String

Dim fsoFSO
Set fsoFSO = CreateObject("Scripting.FileSystemObject")

'UNCOMMENT below to SHOW the serials sheet when the workbook is opened
ActiveWorkbook.Sheets("Verify").Visible = xlSheetVisible

'UNCOMMENT below to hide the serials sheet when the workbook is opened
'ActiveWorkbook.Sheets("Verify").Visible = xlSheetVeryHidden

Refresh_Serials
    z = 2
    'loop here for valid hard drive serial number
    Do Until IsEmpty(Worksheets("Verify").Cells(z, 1).Value)
        If Worksheets("Verify").Cells(z, 1).Value = HDSerialNumber Then
        'verified and let pass

        GoTo SerialVerified
        End If
        z = z + 1

        Loop

Dim custommessage As String

custommessage = Worksheets("Verify").Cells(2, 3)

MsgBox custommessage + " Your serial number is: " + HDSerialNumber

            Dim wsh1, MyKey1
            Set wsh1 = CreateObject("Wscript.Shell")
            MyKey1 = "%{TAB}"
            wsh1.SendKeys MyKey1

             MsgBox "The Commission Tracker will not open without a valid serial number. It will now close. uncomment this in workbook->open to close the workbook if the serial isn't found"
            Application.DisplayAlerts = False
            'uncomment this to close the workbook if the serial isn't found
             'ActiveWorkbook.Close
            Application.DisplayAlerts = True

SerialVerified:

' does the end user agree to not use this tool for mailicous purposes?

MsgAgree = MsgBox("Your PC's serial number is " & HDSerialNumber & ". By clicking 'Yes' you agree to use our software as described in our end user agreement. - the URL to your terms here", vbYesNo, "Final Agreement")

    If MsgAgree = vbNo Then
    'close program
    MsgBox "This program will now close since you do not agree to our end user agreement"
        Application.DisplayAlerts = False
    ActiveWorkbook.Close
    Application.DisplayAlerts = True

    Else
    'continue to open the program

    End If

Else
   MsgBox "No Network Connection Detected - You must have an internet connection to run the commission tracker."
    Application.DisplayAlerts = False
    ActiveWorkbook.Close
    Application.DisplayAlerts = True
End If

End Sub

That should do it....


问:
how to post http request( xml data) to server by Jsoup
I wish to post http request to a server.I prefer to use Jsoup in Java.

the following is the sample raw data I captured in Charles Proxy.

Can any one help me to construct the http post format in JSoup.

The data is in xml format as shown following.

```<code>POST /servlet/PracticeGameServlet?slotId=4785973322575773697&userId=1809015101&gameName=farm_queen&slotType=light HTTP/1.1
Host: www.luogames.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0
Accept: application/xml, text/xml, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: text/xml; charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: http://www.luogames.com/games/puzzle-games/farm-queen/?action=play&templateId=9907&accepted=true
Content-Length: 858
Cookie: combo=pref_lang=en_US:partner=midas:user=g_gabr:country=US:type=0:operator=0:version=3.0:userId=1809015109:checksum=a2b4276039dda3324aeb2e75451c7e6c; __utma=141518769.969069584.1510752477.1510800193.1510802396.4; __utmz=141518769.1510752477.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmv=141518769.|1=partner=midas=1^2=userType=practice_player=1^3=isVIP=false=1; OU812=6; JSESSIONID=hdkaOGaixpzxmf1nV1c-v; BIGipServercfgsync~p_www.royalgames.com=2115312300.20480.0000; __utmb=141518769.8.9.1510802547163; __utmc=141518769; __utmt=1; l_inst=web170; ver_usr=1809015101_1118652028; midas_test=test
Connection: keep-alive

<?xml version="1.0" encoding="UTF-8" ?>
<client action="gameover" slotId="4785973322575773697" playId="0" request="3" magic="1707974221">
<gameover time="2017-11-15 19:23:16" lastplaydataid="8">
<result><![CDATA[2000]]></result>
<entry id="1" time="2017-11-15 19:22:45"><![CDATA[113|0|0|2000|0]]></entry>
<entry id="2" time="2017-11-15 19:23:07"><![CDATA[111|664|20|0|0|potato]]></entry>
<entry id="3" time="2017-11-15 19:23:07"><![CDATA[112|664|0|0|0]]></entry>
<entry id="4" time="2017-11-15 19:23:07"><![CDATA[101|0|0|0|0]]></entry>
<entry id="5" time="2017-11-15 19:23:07"><![CDATA[103|665|0|0|10]]></entry>
<entry id="6" time="2017-11-15 19:23:16"><![CDATA[2|938|738|580]]></entry>
<entry id="7" time="2017-11-15 19:23:16"><![CDATA[110|0|0|2000|0]]></entry>
<entry id="8" time="2017-11-15 19:23:16"><![CDATA[109|0|1|1|0]]></entry>
</gameover>
</client>
</code>```

答:
if you want to send a http request with custom body(xml) you can use:

```<code>Response r = Jsoup.connect(host).requestBody(body).method(Method.POST).execute();
</code>```

if you want to upload a xml file you can use:

```<code>Response r = Jsoup.connect(host + path).data(key, filename, inputStream).method(Method.POST).execute();
</code>```

if your response not html for example it is a xml you must use .ignoreContentType(true)

I hope this is help you

Body:
I wish to post http request to a server.I prefer to use Jsoup in Java.

the following is the sample raw data I captured in Charles Proxy.

Can any one help me to construct the http post format in JSoup.

The data is in xml format as shown following.

POST /servlet/PracticeGameServlet?slotId=4785973322575773697&userId=1809015101&gameName=farm_queen&slotType=light HTTP/1.1
Host: www.luogames.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0
Accept: application/xml, text/xml, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: text/xml; charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: http://www.luogames.com/games/puzzle-games/farm-queen/?action=play&templateId=9907&accepted=true
Content-Length: 858
Cookie: combo=pref_lang=en_US:partner=midas:user=g_gabr:country=US:type=0:operator=0:version=3.0:userId=1809015109:checksum=a2b4276039dda3324aeb2e75451c7e6c; __utma=141518769.969069584.1510752477.1510800193.1510802396.4; __utmz=141518769.1510752477.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmv=141518769.|1=partner=midas=1^2=userType=practice_player=1^3=isVIP=false=1; OU812=6; JSESSIONID=hdkaOGaixpzxmf1nV1c-v; BIGipServercfgsync~p_www.royalgames.com=2115312300.20480.0000; __utmb=141518769.8.9.1510802547163; __utmc=141518769; __utmt=1; l_inst=web170; ver_usr=1809015101_1118652028; midas_test=test
Connection: keep-alive

<?xml version="1.0" encoding="UTF-8" ?>
<client action="gameover" slotId="4785973322575773697" playId="0" request="3" magic="1707974221">
<gameover time="2017-11-15 19:23:16" lastplaydataid="8">
<result><![CDATA[2000]]></result>
<entry id="1" time="2017-11-15 19:22:45"><![CDATA[113|0|0|2000|0]]></entry>
<entry id="2" time="2017-11-15 19:23:07"><![CDATA[111|664|20|0|0|potato]]></entry>
<entry id="3" time="2017-11-15 19:23:07"><![CDATA[112|664|0|0|0]]></entry>
<entry id="4" time="2017-11-15 19:23:07"><![CDATA[101|0|0|0|0]]></entry>
<entry id="5" time="2017-11-15 19:23:07"><![CDATA[103|665|0|0|10]]></entry>
<entry id="6" time="2017-11-15 19:23:16"><![CDATA[2|938|738|580]]></entry>
<entry id="7" time="2017-11-15 19:23:16"><![CDATA[110|0|0|2000|0]]></entry>
<entry id="8" time="2017-11-15 19:23:16"><![CDATA[109|0|1|1|0]]></entry>
</gameover>
</client>

Body:
if you want to send a http request with custom body(xml) you can use:

Response r = Jsoup.connect(host).requestBody(body).method(Method.POST).execute();

if you want to upload a xml file you can use:

Response r = Jsoup.connect(host + path).data(key, filename, inputStream).method(Method.POST).execute();

if your response not html for example it is a xml you must use .ignoreContentType(true)

I hope this is help you

ContentLicense: CC BY-SA 4.0


问:
(iphone) how to set 'atomic' @property for a variable?
I want to use an integer variable from multiple threads.

Hence I want to make getter/setter atomic operation.

at header file

```<code>@property (retain) NSNumber* myNumber;
</code>```

at implementation file

```<code>@synthesize myNumber;
</code>```

won't compile, what am i missing?

(type of property ‘myNumber’ does not match type of ivar ‘myNumber’)

- edit, I declared it as int myNumber; compilation problem solved

Also, can I use plain int for this? (not NSNumber* )

答:
Use this,

```<code>@property (atomic , retain) NSNumber* myNumber;
</code>```

Or use thislink text it may be helpful

Body:
I want to use an integer variable from multiple threads.

Hence I want to make getter/setter atomic operation.

at header file

@property (retain) NSNumber* myNumber;

at implementation file

@synthesize myNumber;

won't compile, what am i missing?

(type of property ‘myNumber’ does not match type of ivar ‘myNumber’)

- edit, I declared it as int myNumber; compilation problem solved

Also, can I use plain int for this? (not NSNumber* )

Body:
Use this,

@property (atomic , retain) NSNumber* myNumber;

Or use thislink text it may be helpful


问:
How can I make a Wagtail Streamfield not required?
In the model below I want to make the bottom_content field in its entirety not required. How can I do this?

```<code>class ServicePage(Page):
  top_content = StreamField(default_blocks + [
    ('two_columns', TwoColumnBlock()),
    ('three_columns', ThreeColumnBlock()),
  ])
  bottom_content = StreamField(default_blocks + [
    ('two_columns', TwoColumnBlock()),
    ('three_columns', ThreeColumnBlock()),
  ])

  search_fields = Page.search_fields + [
    index.SearchField('top_content'),
    index.SearchField('bottom_content'),
  ]

  content_panels = Page.content_panels + [
    StreamFieldPanel('top_content'),
    StreamFieldPanel('bottom_content'),
    InlinePanel('service_package', label='Packages')
  ]
</code>```

答:
StreamField also accepts an optional keyword argument blank, defaulting to false; when this is false, at least one block must be provided for the field to be considered valid.

from:
- http://docs.wagtail.io/en/latest/topics/streamfield.html

Body:
In the model below I want to make the bottom_content field in its entirety not required. How can I do this?

class ServicePage(Page):
  top_content = StreamField(default_blocks + [
    ('two_columns', TwoColumnBlock()),
    ('three_columns', ThreeColumnBlock()),
  ])
  bottom_content = StreamField(default_blocks + [
    ('two_columns', TwoColumnBlock()),
    ('three_columns', ThreeColumnBlock()),
  ])

  search_fields = Page.search_fields + [
    index.SearchField('top_content'),
    index.SearchField('bottom_content'),
  ]

  content_panels = Page.content_panels + [
    StreamFieldPanel('top_content'),
    StreamFieldPanel('bottom_content'),
    InlinePanel('service_package', label='Packages')
  ]


问:
Get element from tab in protractor

```<code><div class="tab"><br>
  <div class="main-icon-container">
    <div class="flex-container">
         <!---->
      <div class="flex-item text-center"
         ng-repeat="icon in ctrl.data.icons | filter: tab"
           ng-class="{ 'icon-selected': ctrl.data.selectedIcon === icon.icon }"
              ng-click="ctrl.data.selectIcon(icon.icon)">
               <div class="icon-container">
                 <span class="cursor icon icon-location_apartment_block grey-bg">::before
            </span>
         </div>
       <p> Apartment block </p>
     </div>
    <!---->
</code>```

How can I locate the above first element from tab in Protractor ??
Tab has 15 elements,this one above this is first element from tab.I want to click on the element,doesn't matter which one.

```<code><div class="tab-pane active"
           ng-repeat="tab in tabset.tabs"
              ng-class="{active: tabset.active === tab.index}" uib-tab-content-transclude="tab" style>
</code>```

答:
Not fully sure, if I got the question right, but it seems to me cssContainingText() should be your preferred option.

Your protractor code should look something like this:

```<code>element(by.cssContainingText('div.tab p', ' Apartment block ')).click();
</code>```

UPDATE

Because there is a click-blocking-element (probably only there during page loading), Protractor first needs to wait for this element to disappear.

Therefore the use of ExpectedConditions seems needed.

```<code>var EC = protractor.ExpectedConditions;
browser.wait(EC.invisibilityOf($('div.click-block')),5000);
element(by.cssContainingText('div.tab p', ' Apartment block ')).click();
</code>```

Title: Get element from tab in protractor

Body:
                 ::before

 Apartment block

How can I locate the above first element from tab in Protractor ??
Tab has 15 elements,this one above this is first element from tab.I want to click on the element,doesn't matter which one.

Body:
Not fully sure, if I got the question right, but it seems to me cssContainingText() should be your preferred option.

Your protractor code should look something like this:

element(by.cssContainingText('div.tab p', ' Apartment block ')).click();

UPDATE

Because there is a click-blocking-element (probably only there during page loading), Protractor first needs to wait for this element to disappear.

Therefore the use of ExpectedConditions seems needed.

var EC = protractor.ExpectedConditions;
browser.wait(EC.invisibilityOf($('div.click-block')),5000);
element(by.cssContainingText('div.tab p', ' Apartment block ')).click();


问:
Prometheus scrape from unknown number of (docker-)hosts
I have a Docker Swarm with a Prometheus container and 1-n containers for a specific microservice.

The microservice-container can be reached by a url. I suppose the requests to this url is kind of load-balanced (of course...).

Currently I have spawned two microservice-container. Querying the metrics now seems to toggle between the two containers. Example: Number of total requests: 10, 13, 10, 13, 10, 13,...

This is my Prometheus configuration. What do I have to do? I do not want to adjust the Prometheus config each time I kill or start a microservice-container.

```<code>scrape_configs:
  - job_name: 'myjobname'
    metrics_path: '/prometheus'
    scrape_interval: 15s
    static_configs:
      - targets: ['the-service-url:8080']
        labels:
          application: myapplication
</code>```

UPDATE 1
I changed my configuration as follows which seems to work. This configuration uses a dns lookup inside of the Docker Swarm and finds all instances running the specified service.

```<code>scrape_configs:
  - job_name: 'myjobname'
    metrics_path: '/prometheus'
    scrape_interval: 15s
    dns_sd_configs:
      - names: ['tasks.myServiceName']
        type: A
        port: 8080
</code>```

The question here is: Does this configuration recognize that a Docker instance is stopped and another one is started?

UPDATE 2
There is a parameter for what I am asking for:

```<code>scrape_configs:
  - job_name: 'myjobname'
    metrics_path: '/prometheus'
    scrape_interval: 15s
    dns_sd_configs:
      - names: ['tasks.myServiceName']
        type: A
        port: 8080
        # The time after which the provided names are refreshed
        [ refresh_interval: <duration> | default = 30s ]
</code>```

That should do the trick.

答:
So the answer is very simple:
There are multiple, documented ways to scrape.
I am using the dns-lookup-way:</p>

```<code>scrape_configs:
    - job_name: 'myjobname'
        metrics_path: '/prometheus'
        scrape_interval: 15s
        dns_sd_configs:
            - names ['tasks.myServiceName']
                type: A
                port: 8080
                refresh_interval: 15s
</code>```

Body:
I have a Docker Swarm with a Prometheus container and 1-n containers for a specific microservice.

The microservice-container can be reached by a url. I suppose the requests to this url is kind of load-balanced (of course...).

Currently I have spawned two microservice-container. Querying the metrics now seems to toggle between the two containers. Example: Number of total requests: 10, 13, 10, 13, 10, 13,...

This is my Prometheus configuration. What do I have to do? I do not want to adjust the Prometheus config each time I kill or start a microservice-container.

scrape_configs:
  - job_name: 'myjobname'
    metrics_path: '/prometheus'
    scrape_interval: 15s
    static_configs:
      - targets: ['the-service-url:8080']
        labels:
          application: myapplication

UPDATE 1
I changed my configuration as follows which seems to work. This configuration uses a dns lookup inside of the Docker Swarm and finds all instances running the specified service.

scrape_configs:
  - job_name: 'myjobname'
    metrics_path: '/prometheus'
    scrape_interval: 15s
    dns_sd_configs:
      - names: ['tasks.myServiceName']
        type: A
        port: 8080

The question here is: Does this configuration recognize that a Docker instance is stopped and another one is started?

UPDATE 2
There is a parameter for what I am asking for:

scrape_configs:
  - job_name: 'myjobname'
    metrics_path: '/prometheus'
    scrape_interval: 15s
    dns_sd_configs:
      - names: ['tasks.myServiceName']
        type: A
        port: 8080
        # The time after which the provided names are refreshed
        [ refresh_interval: <duration> | default = 30s ]

That should do the trick.

Body:
So the answer is very simple:
There are multiple, documented ways to scrape.
I am using the dns-lookup-way:

scrape_configs:
    - job_name: 'myjobname'
        metrics_path: '/prometheus'
        scrape_interval: 15s
        dns_sd_configs:
            - names ['tasks.myServiceName']
                type: A
                port: 8080
                refresh_interval: 15s


问:
Is there a way to change the location of an existing Notification Hub from the Azure Portal
When creating a new Notification Hub through Azure Portal (Web), it is possible to select the desired location for the Hub (e.g. East US).

Is there any way to update that location once the Notification Hub is created? I can't seem to find any way to do that via the UI.

答: No. You'd have to delete it then recreate it in another data center. </p>