This pounding album by the all-girl band from California allows listeners to experience the journey of overcoming death and detachment. Just by looking at the album cover it seems like the music will give the listener some sort of out-of-body experience. However, Only in Dreams is much more than just a good album cover.
Before signing to Sub Pop Records in 2009, the lead singer, known as Dee Dee, would play shows in the San Diego area. Since then, the music and lyrics produced by this band have developed into songs of great force that are all projected in this album
In contrast to their previous album, “I Will Be,” the band wrote about extremely real things they were experiencing in their lives. The Dum Dum Girls stated that they just wrote about things they knew and were familiar with. The lyrics in all of the songs are an excellent reflection of that.
When you first listen to the album, it reflects a very positive vibe. Even though the lyrics express despair, the upbeat persona passes the message of overcoming hard times in life. One main thing the lead singer and songwriter, Dee Dee, was experiencing when writing these songs was the passing of her mother.
In the song “Hold Your Hand”, Dee Dee writes about when she discovered her mother’s fatal illness. “Coming Down” was written right after Dee Dee received news that her mother had passed away.
Other songs were written as a reflection of facing the challenge of detachment not only from Dee Dee’s mother, but from society as a whole. One main idea the lyrics reveal is the challenge of being apart from her husband, Brandon Welchez.
Since the duo both have their own bands, they constantly face the battle of being apart due to tour scheduling. Many of the songs in this album deal with that separation.
“Bedroom Eyes” was written right after Dee Dee had returned home to a lonely and empty house from a European tour. This song is just a single example of the pain Dee Dee felt being away from her husband.
Only in Dreams is an album of genuine lyrics which people from all scales of life are able to connect to on a personal level. The feel-good vibe mixed with absolutely amazing lyrics is what definitely makes this album a success.
Every song on the album has its own special story behind it. After finishing the album and connecting with the lyrics the listener is able to have some sort of closure. It’s the kind of closure that whispers to the listener that no matter what struggle or issue people are faced with in life, everything will eventually be alright.
Last week I promised that I’d post about the Betsy Morgan workshop I attended, so here it is! The workshop was offered through my local EGA chapter and the class was Betsy’s Sampler Casket Etui. Of course, you’ve seen my pre-stitching (above) before. I was rather impressed with myself that I was able to come to class with all my pre-stitching done (unlike that Hare Pyns debacle).
Of course, it is always a treat to get to see the full kit for the piece the first time! Such lovely silks.
In class we worked on assembling our little thimble bag, which was fun. Betsy’s directions are very clear and concise, which I very much appreciate. She also provided us with color copies of each of the pieces too, which will make completing this that much easier.
Anyway, I was able to get my little thimble purse sewn together and my little loops made for the cording to go through for the drawstring.
We also learned in class how to do the Aztec stitch, which we will need for one of our little pieces. She had us practice on something big enough to really be able to see what we were doing. This was my first time cutting and removing threads…eeek! That first snip is the worst.
Anyway, the class was great and I thoroughly enjoyed Betsy. If you haven’t taken a class from her, I highly recommend doing so.
This weekend was spent working on the finishing of my ornament for the guild’s ornament exchange. I’m really looking forward to our holiday party tomorrow night and I’m anxious to see what I’ll come home with in the exchange. But for now, I’ll keep mine a surprise. I think it turned out pretty darn cute, though!!
Author MichellePosted on December 3, 2012 December 16, 2016 Categories Casket Etui, EGA, StitchingTags Betsy Morgan, Casket Etui, EGA, Stitching, Workshop18 Comments on Et Tu, Etui!
It hardly seems possible that Labor Day is now behind us and it’s September. I’ve been working on a little project as sort of a last hurrah of summer. It’s Chessie & Me’s Glory House. Sweet little thing, isn’t it?
And you may be wondering what I’ve been up to, since I haven’t blogged in a bit? Well, I had a birthday. And my birthday was full of fun celebrations with friends and family. You can see a little recap in photos over on the other blog here. But I just had to share a few of the wonderful gifts I received.
And she must have gotten tired of me bugging her about the fabulous fingerless gloves with owls on them that she made for her daughter a while back. So she made some for me!!!! I LOVE THEM! (And in case you’re wondering…I’m modeling them with my blue moon manicure in honor of the blue moon that was on August 31st).
I was also treated to a day of wonderful food, laughter, stitching and a little Downton Abbey by some friends. One of them stitched this sweet Needlework Press piece for me. I am in love with the color thread she used.
I have lots more to show you, but I’m attempting to not overload you with photos! So, here’s a quick peek at what I’ve been working on. I’ve found it difficult to settle in and stitch lately, but I’ve been working a little bit on my John Reed sampler. I’m working my way across the top border. I love love love how the AVAS silks are popping on that Confederate Grey linen.
It’s been awhile since I showed you ATS too. Not a lot of progress. I stitched that strawberry band and have started on the alphabet.
Tuesday night I picked up the pre-stitching for a class I’m taking in October with Betsy Morgan. I’m excited about this one.
That’s it for me today. I’ll post again soon with some other birthday pretties I received, a new quilt start, and hopefully some more stitching progress! Thanks, as always, for stopping by. I really appreciate it!
Author MichellePosted on September 4, 2012 December 16, 2016 Categories And They Sinned, Casket Etui, Gifts, Glory House, John Reed 1844, Knitting, Stitching, WIPocalypseTags And They Sinned, Casket Etui, Chessie & Me, EGA, Forget Me Not in Stitches, Gifts, Glory House, John Reed 1844, knitting, Stitching, WIPocalypse, Workshop16 Comments on The Last of Summer
We are your trusted partner in success. Our firm is large enough to offer a full range of professional services and small enough to give you the individual attention that you deserve.
Photographers from The Associated Press, Reuters, Agence France-Presse, and other news outlets documented historic events in 2011, often at great peril. The Year in Photographs: Press Freedom in 2011 features images from the Arab uprisings, South Asia's armed conflicts, and political repression in the Americas, Africa, and Europe.
Sexual violence against journalists is discussed more openly, but few concrete changes have been made.
Coverage of street protests grows ever risky. The journalist security field also confronts sexual violence, organized crime, and digital vulnerability.
Murders decline, but fatalities rise during coverage of protests. Photographers and freelancers pay an especially high price.
The enemies of free speech are monitoring journalists, filtering online content, and attacking news websites.
Trade, communication make us global citizens. But essential information often stops at national borders.
Pledges from government leaders offer hope, but the campaign against impunity will be long and difficult.
7pm Thursday October 11 / Spooky Monogram - $ 50.00 USD 7pm Thursday October 11 / Happy Fall Y'all - $ 50.00 USD 7pm Thursday October 11 / Hello Fall - $ 50.00 USD 7pm Thursday October 11 / Trick or Treat - $ 50.00 USD 7pm Thursday October 11 / I Put A Spell On You - $ 50.00 USD 1pm Sunday October 14 / Spooky Monogram - $ 50.00 USD 1pm Sunday October 14 / Happy Fall Y'all - $ 50.00 USD 1pm Sunday October 14 / Hello Fall - $ 50.00 USD 1pm Sunday October 14 / Trick or Treat - $ 50.00 USD 1pm Sunday October 14 / I Put A Spell On You - $ 50.00 USD 4pm Saturday October 20 / Spooky Monogram - $ 50.00 USD 4pm Saturday October 20 / Happy Fall Y'all - $ 50.00 USD 4pm Saturday October 20 / Hello Fall - $ 50.00 USD 4pm Saturday October 20 / Trick or Treat - $ 50.00 USD 4pm Saturday October 20 / I Put A Spell On You - $ 50.00 USD
Like many of you I have already set up the Christmas tree and the lights are already twinkling. Every year I decorate the tree in my own way. Yes, you guessed it right - most of my ornaments are handmade. This year I made one with my daughter. She was more excited about this quick and easy Christmas photo ornament. Excited because it was her photo that I was about to put. The photograph we chose is the one where she is mere 6 months old and giving that perfect smile. I suggest you let your child pick their favorites if they are old enough to do so. Let me walk you through this project quickly.
This is a very easy project.Cut the photo into a 2" diameter circle and the outer card stock into 2 pieces of 2.5" diameter circle.
The lace is glued using all purpose glue. As it is a circle, making little pleats make the work easier and neater. I have used the easiest of the paper quilling shapes - the coil. Alternate red and white quilled coils are used to make the border.You can use any shape you like.You can have a look at our older posts on Paper quilling for basic shapes. I added glitter to the coils to make them more festive.
Give the ornament to your kid to hang it on his/her favorite spot. Every-time my daughter looks at this ornament she is so delighted and says " Mommy made it", "Nice".Believe me it is the best compliment you can get for your craft project.
Folks, I’m still working with the Organic Health Response on IT support, and we just got an update in from the radio team on Mfangano Island, Kenya. They interviewed community members and asked them about the future of the radio station. The Ekialo Kiona Radio, EK FM, is proud to be Suba. “Turi alala,” its slogan, means “together” in the local Suba language.
The Organic Health Response (OHR) had a vision to establish a youth-driven, wind-powered, Suba language radio station on Mfangano Island, Kenya. On World AIDS Day Dec. 1st, 2012, OHR successfully launched the radio station EK-FM. Today they broadcast live from a hand-welded communications tower on Mfangano to over 200,000 residents in rural Kenya, Uganda, and Tanzania.
EK-FM is grounded in the philosophy of open community discourse as a cornerstone of holistic and sustainable responses to cultural erosion, environmental degradation, infectious disease, and economic isolation among remote indigenous populations.
EK-FM mobilizes youth activism, empowers marginalized groups, promotes HIV prevention and treatment services, encourages sustainable agriculture, and most importantly, preserves the endangered indigenous Suba language (Olusuba).EK-FM has had a very impactful first year of broadcast, putting OHR and the Ekialo Kiona Center (with IT support from Craig Newmark) at the center of the Suba cultural map in Kenya.
Last week, youth presenters from the station interviewed community members on Mfangano Island and asked them about the future of EK-FM. This is what they had to say:
“I see EK Radio as the only communication tool for the people of Abasuba and that it will be the only way to help salvage the almost extinct Suba language,” paused Ex-Assistant Chief, Mzee Charles Kasera, a Suba elder who helps run the Ekidiori Radio Program focused on Suba culture.
“Aaaaaa …. This is our voice! No one can take it out from us. In fact is has given us, our men, children, and community at large to share together. So, EK is there to stay. It is for eternity,” said Suba, a Piki (Motor cycle) rider on Mfangano Island.
“This is the clearest radio station along the Lake Victoria region. It is even clearer than those with sophisticated equipments. I don’t want it to go away since it is my favorite station. Let it stay forever,” said Pema, a boat manager who resides at Kakiimba village in Mfangano Island.
“I see a radio station that accommodates thousands of people from different regions in the Island, who have come to seek and experience its services. With all the programs, I see a community that is well informed and equipped with first hand information,” says Nancy Sungu, a young radio presenter with the EK Community Youth Radio.
The newly built, ferro-cement studio on the island. The team moved into the new space in February 2014.
Multiple imputation using Fully Conditional Specification (FCS) implemented by the MICE algorithm as described in Van Buuren and Groothuis-Oudshoorn (2011) <doi:10.18637/jss.v045.i03>. Each variable has its own imputation model. Built-in imputation models are provided for continuous data (predictive mean matching, normal), binary data (logistic regression), unordered categorical data (polytomous logistic regression) and ordered categorical data (proportional odds). MICE can also impute continuous two-level data (normal model, pan, second-level variables). Passive imputation can be used to maintain consistency between variables. Various diagnostic plots are available to inspect the quality of the imputations.
When GPU renders triangle meshes, various stages of the GPU pipeline have to process vertex and index data. The efficiency of these stages depends on the data you feed to them; this library provides algorithms to help optimize meshes for these stages, as well as algorithms to reduce the mesh complexity and storage overhead.
Currently there is only a single monolithic demo example, which runs nearly the entire feature matrix. In the near future I will make a straight forward tool example that shows the minimal calls to perform mesh optimization in a typical game engine pipeline. In demo, the opt_complete routine is the approach to get 100% optimal GPU performance. Further CPU improvements can be chosen through the various packing and encoding routines.
When optimizing a mesh, you should typically feed it through a set of optimizations (the order is important!):
Most algorithms in this library assume that a mesh has a vertex buffer and an index buffer. For algorithms to work well and also for GPU to render your mesh efficiently, the vertex buffer has to have no redundant vertices; you can generate an index buffer from an unindexed vertex buffer or reindex an existing (potentially redundant) index buffer using generate_vertex_remap.
After generating the remap table, you can perform remapping with remap_index_buffer and remap_vertex_buffer.
You can then further optimize the resulting buffers by calling the other functions on them in-place.
When the GPU renders the mesh, it has to run the vertex shader for each vertex; usually GPUs have a built-in fixed size cache that stores the transformed vertices (the result of running the vertex shader), and uses this cache to reduce the number of vertex shader invocations. This cache is usually small, 16-32 vertices, and can have different replacement policies; to use this cache efficiently, you have to reorder your triangles to maximize the locality of reused vertex references; this reordering can be done with optimize_vertex_cache.
After transforming the vertices, GPU sends the triangles for rasterization which results in generating pixels that are usually first ran through the depth test, and pixels that pass it get the pixel shader executed to generate the final color. As pixel shaders get more expensive, it becomes more and more important to reduce overdraw. While in general improving overdraw requires view-dependent operations, this library provides an algorithm to reorder triangles to minimize the overdraw from all directions, which you should run after vertex cache optimization; the routine for this is optimize_overdraw.
When performing the overdraw optimization you have to specify a floating-point threshold parameter. The algorithm tries to maintain a balance between vertex cache efficiency and overdraw; the threshold determines how much the algorithm can compromise the vertex cache hit ratio, with 1.05 meaning that the resulting ratio should be at most 5% worse than before the optimization.
After the final triangle order has been established, we still can optimize the vertex buffer for memory efficiency. Before running the vertex shader GPU has to fetch the vertex attributes from the vertex buffer; the fetch is usually backed by a memory cache, and as such optimizing the data for the locality of memory access is important. You can do this by running this code:
This will reorder the vertices in the vertex buffer to try to improve the locality of reference, and rewrite the indices in place to match; if the vertex data is stored using multiple streams, you should use optimize_vertex_fetch_remap instead. This optimization has to be performed on the final index buffer since the optimal vertex order depends on the triangle order.
Note that the algorithm does not try to model cache replacement precisely and instead just orders vertices in the order of use, which generally produces results that are close to optimal.
To optimize memory bandwidth when fetching the vertex data even further, and to reduce the amount of memory required to store the mesh, it is often beneficial to quantize the vertex attributes to smaller types. While this optimization can technically run at any part of the pipeline (and sometimes doing quantization as the first step can improve indexing by merging almost identical vertices), it generally is easier to run this after all other optimizations since some of them require access to float3 positions.
Quantization is usually domain specific; it's common to quantize normals using 3 8-bit integers but you can use higher-precision quantization (for example using 10 bits per component in a 10_10_10_2 format), or a different encoding to use just 2 components. For positions and texture coordinate data the two most common storage formats are half precision floats, and 16-bit normalized integers that encode the position relative to the AABB of the mesh or the UV bounding rectangle.
The number of possible combinations here is very large but this library does provide the building blocks, specifically functions to quantize floating point values to normalized integers, as well as half-precision floats.
After all of the above optimizations, the geometry data is optimal for GPU to consume - however, you don't have to store the data as is. In case storage size or transmission bandwidth is of importance, you might want to compress vertex and index data. While several mesh compression libraries, like Google Draco, are available, they typically are designed to maximize the compression ratio at the cost of preserving the vertex/index order (which makes the meshes inefficient to render on GPU) or decompression performance. Additionally they frequently don't support custom game-ready quantized vertex formats and thus require to re-quantize the data after loading it, introducing extra quantization errors and making decoding slower.
Alternatively you can use general purpose compression libraries like zstd or Oodle to compress vertex/index data - however these compressors aren't designed to exploit redundancies in vertex/index data and as such compression rates can be unsatisfactory.
To that end, this library provides algorithms to "encode" vertex and index data. The result of the encoding is generally significantly smaller than initial data, and remains compressible with general purpose compressors - so you can either store encoded data directly (for modest compression ratios and maximum decoding performance), or further compress it with zstd et al, to maximize compression rate.
Note that vertex encoding assumes that vertex buffer was optimized for vertex fetch, and that vertices are quantized; index encoding assumes that the vertex/index buffers were optimized for vertex cache and vertex fetch. Feeding unoptimized data into the encoders will produce poor compression rates. Both codecs are lossless - the only lossy step is quantization that happens before encoding.
Decoding functions are heavily optimized and can directly target write-combined memory; you can expect both decoders to run at 1-2 GB/s on modern desktop CPUs. Compression ratios depend on the data; vertex data compression ratio is typically around 2-4x (compared to already quantized data), index data compression ratio is around 5-6x (compared to raw 16-bit index data). General purpose lossless compressors can further improve on these results.
On most hardware, indexed triangle lists are the most efficient way to drive the GPU. However, in some cases triangle strips might prove beneficial:
On extremely memory constrained systems, index buffers for triangle strips could save a bit of memory
This library provides the stripify routine for converting a vertex cache optimized triangle list to a triangle strip; the inverse can be performed with the unstripify routine.
Typically you should expect triangle strips to have ~50-60% of indices compared to triangle lists (~1.5-1.8 indices per triangle) and have ~5% worse ACMR. Note that triangle strips require restart index support for rendering; using degenerate triangles to connect strips is not supported.
While the only way to get precise performance data is to measure performance on the target GPU, it can be valuable to measure the impact of these optimization in a GPU-independent manner. To this end, the library provides analyzers for all three major optimization routines. For each optimization there is a corresponding analyze function, like analyze_overdraw, that returns a struct with statistics.
analyze_vertex_cache returns vertex cache statistics. The common metric to use is ACMR - average cache miss ratio, which is the ratio of the total number of vertex invocations to the triangle count. The worst-case ACMR is 3 (GPU has to process 3 vertices for each triangle); on regular grids the optimal ACMR approaches 0.5. On real meshes it usually is in [0.5..1.5] range depending on the amount of vertex splits. One other useful metric is ATVR - average transformed vertex ratio - which represents the ratio of vertex shader invocations to the total vertices, and has the best case of 1.0 regardless of mesh topology (each vertex is transformed once).
analyze_vertex_fetch returns vertex fetch statistics. The main metric it uses is overfetch - the ratio between the number of bytes read from the vertex buffer to the total number of bytes in the vertex buffer. Assuming non-redundant vertex buffers, the best case is 1.0 - each byte is fetched once.
analyze_overdraw returns overdraw statistics. The main metric it uses is overdraw - the ratio between the number of pixel shader invocations to the total number of covered pixels, as measured from several different orthographic cameras. The best case for overdraw is 1.0 - each pixel is shaded once.
Note that all analyzers use approximate models for the relevant GPU units, so the numbers you will get as the result are only a rough approximation of the actual performance.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Contributions are always welcome; please look at the issue tracker to see what known improvements are documented.
Contribution to the meshopt crate is organized under the terms of the Contributor Covenant, the maintainer of meshopt, @gwihlidal, promises to intervene to uphold that code of conduct.