text:
Click here to go to the Rabbi's Musings section
Shabbat Candle Lighting times for Spring Valley, NY 10977 courtesy of hebcal.com.
Click here to receive a daily email containing a halacha from Daily Halacha.
Click here to receive a daily email containing a halacha from Halacha For Today. And Click here to visit the Halacha For Today site.
Remember, תנא דבי אליהו כל השונה הלכות בכל יום מובטח לו שהוא בן עולם הבא, שנאמר הליכות עולם לו, אל תקרי הליכות אלא הלכות - one who studies [at least two] Halachos daily is assured a portion in Olam Haba - the world to come. (:מגילה כ"ח )
Click here to receive a daily email containing a short Dvar Torah from A Torah Minute.
Click here to receive a daily email containing a lesson from the Chofetz Chaim's sefer Shmiras Halashon.
Click here to receive a fascinating daily email containing Divrei Chizuk. And Click here to visit the incredible site dedicated to being mechazek people.
A most amazing thought! Rav Eliyahu Lopian would repeat the following in the name of R' Simcha Zissel Broide (aka The Alter of Kelm), one of the prime students of R' Yisroel Salanter;
>> It would be worthy for Hashem to create the entire universe and cause it to exist for 6000 years just so that one Jew would say "Boruch Hu U'voruch Shemo" one time!
>>However, 1000 "Boruch Hu U'voruch Shemo's" is not equal to one "Amein"!
>>Nevertheless, 1000 Amein's is not equal to one "Amein Yehei Shemei Rabbah"!
>>Yet, 1000 "Amein Yehei Shemei Rabbah's" is not equal to one single word of Torah learnt by one Jew!
Dear Stam Torah Faithful עמו״ש
stamtorah
Dear Stam Torah Faithful עמו״ש,
I began writing Stam Torah when I was still a bochur (before I was married). During the years when I was in Fordham graduate school pursuing my master's in social work, I took a hiatus from sending the weekly divrei Torah but began again soon afterwards.
In recent years, I edited and enhanced the divrei Torah sent years ago and those were the ones I emailed. Last year however, I wrote new Stam Torahs each week, based on derashos I was privileged to deliver during my years as rabbi at Kehillat New Hempstead.
I don't know what the future will hold, but for 5780 I will no longer be writing and disseminating Stam Torah on the parsha each week. The reason is so that I can more fully devote myself to a beautiful and exciting project that I embarked upon last year: The Gemara relates that tefilla requires constant Chizuk. If that's true for seasoned scholars, how more more true is it for the younger generation who aren't too familiar with the words in the siddur and have a hard time relating to tefillah generally. This is an issue we need to address constantly because tefillah is such a central component in the life of a Jew, and we spend so much time each day devoted to it. It is the basis of our hopes during challenging times and a vital part of our daily routine.
Last year I suggested to Rabbi Aryeh Stechler, Rosh Yeshiva of our yeshiva, Heichal HaTorah, that we undertake the arduous challenge of producing a siddur, specifically written for a yeshiva student growing up in contemporary American society. Doing so would entail composing a new translation in a vernacular familiar to adolescents, as well as comments and insights that can inspire and help the reader connect to the ancient and yet ever applicable and eternal words of the siddur. The siddur would also include a section of insights from the talmidim and rabbeim of the yeshiva. Rabbi Stechler excitedly embraced and strongly encouraged the project.
The first edition of the siddur was produced and printed in time for the Yeshiva's annual dinner last June. It was an exciting milestone and a beautiful accomplishment.
This year I have undertaken to enhance, edit, and revise the siddur to produce a finished product iy"H later this year. There is a tremendous amount of work to be done so that it can be published professionally and serve the purpose we hope it will.
Therefore, this year as I invest time into the Heichal siddur ("The Walden Edition: Siddur Moshe Aaron"), I hope iy"H to send out weekly insights on our daily tefillos - perhaps some weeks it will consist of some short thoughts and other weeks it may contain one longer essay.
It is my fervent hope that it will be a chizuk for all of us in our davening, and ultimate quest to deepen our connection with Hashem.
Please note that the archives from the many years of Stam Torah on each parsha are posted at stamtorah.info.
I also plan to iyh continue sending out the Rabbi's Musings column each week.
Thank you for your ongoing chizuk and feedback, which I truly value and appreciate.
Dani Staum
Posted by stamtorah at 1:00 PM 0 comments
STAM TORAH
"FAILING OF FAILURE"[1]
Rabbi Fishel Schachter relates:
I have a friend who struggled with his weight for years. He was constantly trying different diets to manage his weight issues, but he hadn't been successful for any extended period with any of them.
Then, at one point, I noticed that he had lost some significant weight. I was close enough to ask him what changed. He explained that he was meeting with a new nutritionist who was helping him. He recounted a conversation they had during their initial meeting. The nutritionist asked him if he was aware that he was three hundred pounds. He nodded. The nutritionist continued, "Do you know that you're a very handsome person? It's true - at a hundred and eighty pounds you're a very handsome person. All you have to do is trim down the excess one hundred twenty pounds."
Those words really motivated him. It was the first time that he wasn't made to feel like a schlub or a glutton. He was told that he was essentially a good-looking person, he just had to rid himself of what was covering it.
That is the perspective and attitude one must have when he approaches teshuva. The Mishna[2] says, "Do not be a wicked person in your own eyes." If a person views himself as a lowly person, he will become deflated and not feel like he can be better.
The truth is that even when one sins, his soul remains untainted and pure. His task is to remove the excess impurities which have become attached to him, so that his inner beauty can once again shine through.
One of the most well-known components of the Service of Yom Kippur that the Kohain Gadol performed in the Bais Hamikdash involved the two goats. "The two goats of Yom Kippur, they were to be equal in appearance, height, and value, and were to be purchased together."[3] The Kohain Gadol performed a lottery that decided which of the goats was offered in the Sanctuary, its blood sprinkled in the Holy of Holies, and which was dispatched to the Azazel mountain, and pushed off to its death.
Why was it necessary for the two goats to be so similar?
Rabbi Samson Rafael Hirsch[4] explains that the two goats represent two lives, originally completely identical, which proceed on two entirely contrasting paths. Both are placed together before God at the entrance of the Sanctuary. The decision whether to go "toward G-d" or to go to "Azazel" hovers over both of them in exactly the same way. The one designated "toward G-d" is admitted to the Holy of Holies, where the ideal of a Jewish Torah life perfects itself as the bearer of G-dliness on earth. The other, designated for Azazel, remains untouched, at the entrance of the Sanctuary, and is sent out of its precincts, away from the sphere of human habitation into the desert. Having turned its back on the Sanctuary, it ends the uncultivated living it had preserved for itself.
Each one of us is a "seir" (goat). Each of us has the power to resist the demands made on our will power. It is in the way we use this power that our worthiness or worthlessness depends. We can use it in attachment to G-d in resisting all internal and external temptation and considerations to become a seir to G-d. Or we can use it in obstinate refusal of G-d and His holy laws of morality. This latter recourse is reflected in the etymology of the term לעזאזל – using one's strength for obstinacy (עז) for no meaningful future (אזל).
In a similar vein, Maharal[5] explains that goat blood is most similar to human blood[6]. The goat offered "to Hashem" was brought into the Holy of holies, symbolizing the ability of a Jew to achieve the greatest levels of connection with his Creator. Blood is our lifeforce, and the blood of the goat, which symbolizes every one of us, was offered in the holiest place on earth.[7]
The other goat, sent to Azazel, which was so similar, whose blood also resembles our blood, is representative of our sins and shortcomings. The sins we commit seem to be an inextricable part of our identity. However, we take those components and symbolically cart them off for destruction in the desert. The Azazel service reminds us that our misdeeds, though our responsibility, do not comprise our essence. Rather they are an external cancer that we must exorcise and distance ourselves from through proper teshuva.
Throughout Yom Kippur, whenever we recite Viduy, we state: "behold I am before You like a vessel of shame and humiliation." The Belzer Rebbe zt'l explained that we feel tremendous embarrassment and shame over what we have done. But it is like a vessel we are grasping, not a core component of who we are. We are ashamed of what we have done; we are not ashamed of who we are. We know we are better and can overcome the negative and foolish things we have committed.
The wisest of men states[8] "The righteous fall seven times, and get up, but the wicked stumble in evil." Rabbi Chaim Friedlander zt'l noted[9] that regarding the righteous it says he falls, whereas regarding the wicked it stays he stumbles. This reflects an integral difference between the perspective of the righteous and the wicked. The righteous person views his sins as mishaps; a failing and a falling from which he must arise; the wicked views his sins as indicative of being a complete failure!
When one sees himself as worthy and capable, he will be able to be resilient when he errs. However, one who sees himself as a complete failure will lack the willpower necessary to bounce back from his inevitable failings.
Rabbi Yisrael Reisman relates that on occasion a yeshiva student cries to him about struggles he has viewing inappropriate things on the internet whenever he comes home for yeshiva for bain hazmanim[10]. Rabbi Reisman notes that the first thing he discusses with the young man is the perspective he must have. If he sees himself as a wicked sinner, he doesn't have much chance overcoming such a formidable challenge. He needs to realize the truth – that he is a worthy and aspiring ben Torah, albeit who has a serious problem which must be addressed. The negative behaviors he has committed, although spiritually damaging, do not negate all the good he has accomplished and is accomplishing. Only when that perspective is clear, can they proceed by formulating a plan of action and rectification.
Psychologists note that a person acts in accordance with how he views himself. If I see myself as a good person, I'll act accordingly, and vice versa. If someone asks a person to perform an act of kindness when its inconvenient for him to do so, his decision to do so or not is very much connected with whether he views myself as "that type of guy" or not. In fact, we act differently in the same situation when different people are involved, because being with certain people may elicit different senses of identity than others.
The prerequisite for Yom Kippur is the perspective that, despite our sins and mishaps, we are inherently pure and pristine. That in no way exonerates us from rectifying the sins we have committed. However, it does remind us that we are not repenting because we are lowly sinners, but rather because we maintain our sense of greatness and ability to reconnect with our internal greatness.
"The two goats of Yom Kippur were to be equal"
"The righteous fall seven times, and get up"
Rabbi Dani Staum, LMSW
Rebbe/Guidance Counselor – Heichal HaTorah
Principal – Ohr Naftoli- New Windsor
[1] Adapted from the derasha delivered in Kehillat New Hempstead, Yom Kippur eve 5773, after Kol Nidrei.
[2] Avos 2:13
[3] Mishna Yoma 6:1
[4] Vayikra 16:10
[5] Derasha l'Shabbos Shuva
[6] That was why the brothers dipped the tunic of Yosef in goat's blood when they wanted to make Yaakov think Yosef was killed.
[7] "הרי כשהכהן מכניס את דמו לבית קה"ק הרי הוא מכניס בזה את עצם חיותינו לשם והוא מצרף את חיינו לפני ולפנים"
[8] Mishlei 24:16
[9] Sifsei Chaim – Moadim volume 3, page 9
[10] Yeshiva vacation
Posted by stamtorah at 9:25 AM 0 comments


Traditional Chapel Hill home gets a stunning top to bottom modern remodel.
This home in Chapel Hill was completely remodeled. We removed six walls to achieve a flowing open concept. The kitchen is a gourmet chef's dream with high end stainless steel appliances and a 10 foot island to prepare any meal. The master bedroom boasts a spa-like master bath with sliding custom barn doors to enter and beautiful tile throughout. Double vanity, his and her sinks. With a custom exterior design and pergola, unique exposed beams, a light filled basement apartment. New HVAC, upgraded electrical panel, and new upgraded energy-efficient insulation.


text:
6th Annual Go Red For Women Luncheon and Fashion Show Attracts Hundreds
This past Friday, February 6, over 700 men and women came together, dressed in red in support of the 6th Annual Go Red for Women Luncheon and Fashion Show.
Then two years ago in the summer of 2006, I got a call from my father who was vacationing in Las Vegas. While gambling with a handful of chips he had suffered an aortic artery aneurism rupture, a rupture so deadly that only one out of every two people survive. My father was one of the lucky survivors.
Future Wilmington University...
Wilmington University Welcomes...
Dover, DE (Vocus) February 11, 2009
This past Friday, February 6, over 700 men and women came together, dressed in red in support of the 6th Annual Go Red for Women Luncheon and Fashion Show. The event was hosted by the American Heart Association and held at the Sheraton Dover Hotel on North DuPont Highway. Held every year the Luncheon is a social and educational event designed to encourage women to focus on heart health, increase awareness and promote heart research. Wilmington University was proud to be among the many sponsors of the event that benefits the Kent County Division of the American Heart Association. Students from the University's Information Technology and Advanced Communications division also designed a multi-media presentation and video in conjunction with University Relations.
Dr. Betty Caffo, Wilmington University Provost and Vice President of Academic Affairs attended the event as well as other University staff all dressed in red to support the American Heart Association. Janet Gill, Site Associate at Wilmington University's Dover site participated in the fashion show as a Go Red models.
"My story with heart disease began fifteen years ago when my mother, complaining that her asthma medication wasn't working, went to the doctor only to find out that she had coronary artery disease," said Gill. "Then two years ago in the summer of 2006, I got a call from my father who was vacationing in Las Vegas. While gambling with a handful of chips he had suffered an aortic artery aneurism rupture, a rupture so deadly that only one out of every two people survive. My father was one of the lucky survivors."
After seeing how heart disease had affect her family Janet Gill decided to talk to her doctor. "They gave me an EKG," said Gill, "and when the doctor came back I excitedly said, 'So did I pass?' She said, 'no, you failed.'" Gill came to find out that although she had an irregular electrocardiogram (EKG) it was normal for her. "I was happy to find out my heart is healthy, I just have to keep it that way from now on." Janet Gill says she keeps her heart healthy by taking a daily low-dose aspirin regimen and keeping people aware. "Awareness is key!" said Gill, "Because women have different symptoms of heart disease and heart attack than men do, so it's so important to stay aware and know all the symptoms."
Miss Delaware 2008 Galen Giaccone and Wilmington University student Lynn Bullock, who is Mrs. Kent County also participated in the fashion show as Go Red Models. Go Red models are people who have had their lives affected by heart disease, or people who are active volunteers for the American Heart Association. Each model had their own story to tell and helped to inspire women to be concerned about heart health.
More than 870,000 American women are killed by heart disease, cardiovascular disease or stroke each year, that is one every 36 seconds.
To get involved with the American Heart Association find your local office at http://www.americanheart.org
To see more pictures from this event visit http://www.wilmu.edu/ur/multimedia/galleries/galleryselect.aspx.
Suki Deen
University Relations Associate
31 Read's Way
T:(302) 295-1164
Suki.r.deen(at)wilmu.edu
Press Release AttachmentJanet Gill, Associate Site Director at the Dover campus told her story of how heart disease has affected her family. Miss Delaware Galen Giaccone participated as a Go Red Model. Wilmington University student Lynn Bullock, who is Mrs. Kent County participated as a Go Red Model.

redpajama_set_name: RedPajamaCommonCrawl


I have had my eye on the FINIS Strapless Agility Paddles since they first came out and have been anxious to give them a try. I recently got a pair from the good folks at AquaGear.com and have been using them over the past few weeks.
First of all, if you haven't seen them in person, these are COOL looking paddles! They are molded from transparent yellow plastic and look very "futuristic".
The paddles I have always used have all had some type of rubber or silicone strap. After a while in the chlorine filled pool, the straps tend to break down and come apart. The Agility paddles have taken care of that problem by eliminating the straps all together. Instead of straps that go over your fingers or wrist, there is a single thumb hole in each paddle. You may wonder, how do they stay on? The paddles are designed to teach correct "palm positive" position for every stroke and will only stay on when you apply pressure by pulling your hands through the water. If you glide too long or if your hands are not in the right position, the paddles will twist or come off. They take some getting used to (especially on the recovery), but after a while they felt very natural to me.
The paddles can be used for all four strokes (Back, Breast, Fly and Free). Although I am almost exclusively a freestyler, I do work other strokes into my workouts. Typially I do not use paddles for any of the other strokes, but I found that I like the Agility paddles a lot for backstroke. I also liked the paddles one-arm butterfly (regular butterfly with paddles is too tough on my shoulders).
Another advantage of these paddles over the strap variety is that they can be taken off very quickly if you are switching between pull and swim sets on a tight interval.
My only minor complaint is that the thumb holes were a little rough on the edges. This should be easily fixed by using a file to get rid of the ridges.
Overall, I like these paddles quite a bit and would recommend them to other swimmers without hesitation. You can pick up a pair at AquaGear.com for $19.95.


text:
The Rickey Smiley Morning Show
Comedian. Television host. Movie Star. Top-rated syndicated Radio Personality. Father of 6. For over 20 years. Rickey Smiley is one of the most beloved performers in American media, earning a reputation for delivering boundless laughter on-air, on-stage, and on-screen.
Every morning, millions of Americans in nearly 60 cities listen to Rickey Smiley and his 6 outrageous cast members on "The Rickey Smiley Morning Show." His interviews with major celebrities, social political awareness and trademark prank phone calls have made Smiley one of the most listened to radio personalities in history.
Rickey Smiley's down home southern humor, opting to use insight rather than vulgarity to get laughs, is at the core of his success. His audiences are treated to such original characters as "Mrs. Bernice Jenkins", "Lil' Darrl," "Joe Willie" and "Beauford." Smiley is known for his clean comedic style and his reputation to sell out venues across the country.
To movie audiences, Smiley is best known for "All About The Benjamins" and "Friday After Next". He's recorded 8 best-selling CDs including iTunes #1 Best Selling Comedy Album, "Rickey Smiley- Prank Calls Number 6". On television he's hosted BET's "Open Casket Sharp" and "Comic View", appeared on "Showtime At The Apollo," "Uptown Comedy Club", HBO's "Def Comedy Jam" and "Snaps".
Smiley graduated from Alabama State University, became KBFB's (Dallas) morning show personality in 2004, and soon moved his show to WHTA Atlanta. When not performing, Smiley is the ultimate devoted father, single handedly raising 6 kids, the subject of a soon to be released parenting book. QUOTE: "Success is when preparation meets opportunity."
Wake up with the Rickey Smiley Morning Show with Rickey Smiley, Headkrack, Da Brat, Gary With Da Tea, Rock T, Juicy, and Jeff Johnson starting at 6 a.m. until 10 a.m. Plus, the Hot Sheet with Bria Fachon on Hot 96.3 .
Ashmac
Follow Ash on Twitter
Like Ash on Facebook
Check her photos on Instagram
Ashmac is a radio personality and host with a background in marketing, promotions and production. Ashley first explored her passion for the music industry as an intern for Universal Motown Records in New York City. She graduated from Norfolk State University with a BA in Music Media emphasis in Communications. Her radio career began on Norfolk State University's WNSB Hot91 as an intern in 2011. She then worked her way up to iHeart Media rising from Production Assistant to Promotions Coordinator for 103 JAMZ and on-air talent for KISS92 from 2012-2014. In 2015, she became the Assistant Program Director and on-air talent for WNSB HOT91, where she won awards such as Most Supportive Radio Station in Hampton Roads, Employee of the month consecutively, amongst others. Ashmac currently resides in Cincinnati, OH as on-air midday personality, from 10-3p, and is currently Cincinnati's #1 Urban midday show on 101.1 The Wiz. She can also be heard in Columbus, OH on Power 1075/106 and Indianapolis, IN's #1 Station for Hip-Hop and R&B, Hot963. She's been featured as a host on BET's College Tour, the Hampton's Jazz Festival, the Nationally syndicated Rickey Smiley Morning Show and as a media correspondent for Cincinnati's FOX19.
Aside from her radio and media career, Ashley is passionate about giving back to the community. She supports many charitable programs and campaigns such as, but not limited to: Saving the Music, Feed The City Campaign, 1K Shoes for 1K Smiles, Toys for Tots, Stomp Out Hazing, Worth the Wait Campaign, Teens with a Purpose, The Urban League, and Susan G. Komen Tidewater. As an active member of Sigma Gamma Rho Sorority Inc. and Tau Beta Sigma National Honorary Band Sorority Inc., Ashley continues to use her leadership and talent to make marks throughout the city as well as pursuing her career with nothing but passion.
"I've always followed my love for music. Music is a universal language that everyone can understand without using one word. Music can bring out emotion from someone, make you reminisce, make you dance, make you cry, or make you turn up. I turn up everyday and celebrate the fact I do something I love. Talk about music, your favorite artists, interview them, national news, local news, politics, entertainment, and more. That is a blessing."
Dani D
Follow Dani D on Twitter
Like Dani D on Facebook
Dani D is the voice of afternoons in Indianapolis. She recently moved from her hometown, Chicago IL to thrive in her first full time on air slot at Hot 96.3.
Dani fell in love with radio as a small child and it didn't stop there. She studied Radio/TV Broadcasting at Southern Illinois University-Carbondale, while serving as an on air talent, personnel director, and eventually the general manger of the school's student run station. Dani also interned for 2 FM stations and accepted her first official job in radio at 1 of them, WPWX Power 92 FM in Chicago. She quickly climbed the latter and moved on to do weekends, and assist with production at 107.5 WGCI Chicago. From there, her talents grew and she became known by many within the radio industry, and she landed her current job in Indianapolis. "Thank you so much for welcoming me into your home Indy. It truly means the world to me." Dani D can be heard on Hot 96.3, Mon- Fri from 3 to 7pm and Sat from 1 to 4pm! #YouMyGirlDaniD
B-Swift
Follow @Swift317 on Twitter
Like Swift on Facebook
Check his Photos on Instagram
B-Swift born and raised on the west side of "the 317", the "Voice Box of Indiana" began his radio career as an intern (with Big Swole) here at Hot 963. His work in the studios and the streets gave him the opportunity to becoming the host of the weekend Mix-show called "the Chop Shop". B-Swift's tireless work and experience as the Russ Parr morning show producer and swing-shift personality, helped earned his spot as Hot963's night time personality, rockin out 7pm to 12am weeknights.
His family experience also benefited Swift as he began his career in radio. His father is a member of a national band where no doubt where Swift got his love for music and being on stage.
"My father played for The Deele in the early 80's with Baby face and L.A. Reid, then in the 90's he performed with After 7. I also have an uncle who traveled with LL Cool J and Monica. My family really had a huge impact in my love for music and performances. Music has always been apart of me and my family."
B-Swift has been doin' it for his city by "livin in these streets", speaking with and to young people in schools and hosting social events and concerts all around Indiana. You can always find him in every club in Indianapolis on the microphone.
"My best moment in radio is everyday, when I get to rock the microphone and reach the city that I love. I feel like the city looks at me like [Andrew Luck] or the quarterback for the city and they always show me love everyday."


, we all picks the best libraries along with ideal quality exclusively for you all, and now this photographs is considered one of photographs choices within our greatest photos gallery in relation to Free Resume Builder Templates. I really hope you might like it.
submitted by onlinesna on 2017-08-24 04:10:42. To find out all pictures within Free Resume Builder Templates pictures gallery make sure you follow this particular hyperlink.
Do not forget to explore the following image gallery, which also includes the Free Resume Builder Templates Best Of Resume Builder Template Download Awesome Resume Builder Software picture showed above. If you have any thoughts, questions or just want to say hello to other people, please do not hestitate to submit your opinion/ideas via the following comment form.


text:
mobile and pc games
pc and mobile
Can you see who viewed your Instagram Reels? Nope!
Matthew Wilhelm Kapell
@matthewwilhelmkapell
EXTERNAL REFERENCES:
SOURCES CONSULTED:
Author and references
If you want to up your Instagram game and get more followers, creating reels is a great way to do it. These short and exciting videos will help you gain popularity and may even let you know if you have a public account.
When creating Instagram Reels, one of the things you may be interested in is who is watching them. If you want to know who viewed your Instagram reels, this article is for you. We will discuss this issue in detail and provide important information about Instagram Reel statistics.
Can you see who's watching your reels on Instagram?
Unfortunately, Instagram doesn't allow you to see who has viewed your Instagram Reels. There are several potential reasons for this.
First off, if you have a public account and post a reel, it will likely get thousands and thousands of views. Providing a list of all viewers would potentially create technical difficulties for Instagram. Also, the functionality would become cumbersome over time. Imagine scrolling through thousands of names just to see if you can find a specific person or two who have viewed your reel.
Another thing to consider is privacy. While you might want to know who watched your reels, think of the reverse situation. When you're browsing reels and viewing one, you may not want anyone to know you've seen it. Keeping your identity private while viewing reels is an advantage, not a disadvantage.
Although you can't see who has viewed your reels, you can see how many people have viewed them:
Open the Instagram app and go to the reels section.
Find the reel for which you want to see the number of views.
Tap the number under the heart icon.
You will see the number of times your reel has been played.
On top of that, you can actually see a list of people who have liked or commented on your reels:
Find the reel you want to see a list of people who have liked or commented on it.
To view the list of people who have liked it, tap the number under the heart icon. To view the list of people who have commented on the reel, tap the number under the speech bubble.
Since there's no direct way to see who watched your reels, you can use one of the alternatives to at least see who liked or commented, which can give you some insight. These methods are not reliable, but they can help.
Another method to see who has liked or commented is to post your reel to your story. If you also share your reel with your Instagram stories, you will be able to see who has viewed it. Just tap "Add Reel to Your Story" when you're done recording it.
The next method that can help you determine who has viewed your reel is to check the stories sections. Usually the first people in the section are the people you interact with frequently. Of course, this doesn't mean these people have actually seen your reel, but it can give you an idea of who is most likely to have seen it.
Finally, watch out for people who frequently like and comment on your posts and stories. These people usually see your reels too.
How to Check Your Instagram Reels Stats
Apart from the basic stats mentioned above, Instagram has a feature called Instagram Insights. This function allows you to know more about the trends of the reels you have recorded. You can see what your audience likes and dislikes, which reels are most popular, and more. Instagram Insights allows you to draw conclusions and adjust your strategy to attract more viewers.
Keep in mind that this option is only available on the Instagram mobile app. Also, you can only access this option if you have a business or creator account. Fortunately, you can easily switch to them. It's worth mentioning that if you have a private account, switching to a business or creator will make it public.
Follow the steps below to upgrade to a business or creator account:
Open the Instagram app.
Tap your profile picture in the lower right corner.
Tap the three lines in the upper right corner.
Tap "Settings".
Tap "Account".
Tap "Switch to Business Account".
If you're switching from a personal account, you'll see a list of categories to select to specialize your profile. Some of the categories are artist, blogger, community, education, writer, photographer, etc.
Link a Facebook page to your Instagram account if you wish.
Complete your account setup.
You will now have access to Instagram Insights. Here's how to find them in your Instagram mobile app:
Tap your profile picture.
Tap on "Insights".
If you want to display information for a specific reel, do the following:
Tap on your profile picture and open the reels section.
Find a reel you want information about and tap the three dots.
Tap "Show Stats".
Instagram Insights allows you to gather valuable information about your reels and the general trends associated with them. Here is what you can see:
Reached Accounts – This shows you how many people have viewed your reel. You will see the number of people who viewed your reel at least once.
Plays – This shows you how many times your reel has been played. This number is usually higher than the number of accounts reached because some people will see your reel more than once.
Likes – This metric shows how many people liked your reel.
Comments – This shows you the number of comments on a reel.
Saves – This data tells you how many people have bookmarked your reel.
Shares – This number tells you how many times Instagram users have shared your reel or sent it to someone else.
As mentioned earlier, you can view this information for all of your reels and each reel. The data will help you gain detailed insight into what your audience prefers, allowing you to adjust your reels accordingly.
If you're new to Instagram Insights and Reels, there are a few things you can do to experiment and quickly find out what your audience likes:
Try different styles – At first it can be hard to tell what your audience likes. By experimenting with different styles, you can gauge how many likes, comments, saves, and shares each style gets, gaining insight into what works for your audience. Feel free to experiment with different filters and effects. Over time, you will learn what works for you and your audience.
Experiment with lengths of reels – The maximum length of a reel is 60 seconds. But that doesn't mean you should always make your coils that long. Sometimes shorter rolls are more effective. Depending on the type of reels you post and the preferences of your audience, you can choose the optimal length.
Test out different audio settings – In addition to enjoying the reel itself, your viewers appreciate good sound. There are a few things to consider regarding the audio of your reels. First of all, you can choose to use the original sound of your video. It's a good option if you're at a concert or recording a conversation. Pay attention to the sound quality; if it's mediocre, your viewers probably won't like it. Another option is to use narration. If you're recording a recipe or explaining a process, recording your voice and using it in your reel is a good idea. You can also use a song from the Instagram music library. Whatever you choose, make sure it matches your reel type and purpose.
Try posting reels at different times and days – Timing is key. For example, if you post a reel at 1 a.m., you probably won't attract the same number of viewers as you did when posting at 18 p.m. attention than those posted on Sunday morning. Of course, there are no universal times to post a reel. Much depends on your audience, age, etc. Let's say you are targeting an older audience. If you post your reel at 2am on a Saturday, you probably won't get many views.
How to Check Someone Else's Instagram Reel Views
Besides checking your reels' views, likes, and comments, Instagram lets you do the same for someone else. If you want to check how many people have viewed someone else's Instagram Reel, follow the steps below:
Find the reel you want to check views for and tap on it.
Tap the number under the heart icon. You will see the number of games and a list of people who liked the reel.
Seal the deal with coils
While Instagram doesn't let you see who specifically watched your reels, it does let you see the number of people who viewed them. Plus, you can always see a list of people who have liked and commented on your reels.
If you want to track your reels trends and progress, upgrade your account to pro and enjoy Instagram Insights. The feature allows you to dig deep into your reels and adjust them according to your audience's preferences.
Do you often post reels on Instagram? Do you keep track of how many people view them? Tell us in the comments section below.
Audio Video Can you see who viewed your Instagram Reels? Nope!
Power Rangers: Legacy Wars Cheats: Top 5 Tips and Tricks ❯
How to View Pending Connections in LinkedIn
How to create a board on Pinterest
How to Stop Facebook Comment Filtering
How to delete a Telegram account
How to permanently delete a Pinterest account
How to Disable Autoplay Videos on Facebook
add a comment of Can you see who viewed your Instagram Reels? Nope!
Comment sent successfully! We will review it in the next few hours.
How to Block a Group in WhatsApp
How to Edit Comments on Instagram
How to Add Text to Instagram Stories
How to create a poll in Telegram on a PC or mobile device
How to identify fake followers for an Instagram account
How to Fix Instagram Could Not Refresh Feed
How to Add Pronouns to LinkedIn
How to Add Multiple Images to a Single Instagram Story
How to Change the Location on an Instagram Post
Facebook stories not working
How to Add Lyrics to Instagram Stories
How to Send Attachments in Messenger
LinkedIn – How to see who viewed your profile
How to tag someone on TikTok
How to bookmark a tweet
How to Leave a Group in Facebook Messenger
How to create a poll in TikTok
How to Add Text to an Instagram Photo
How to use GIFs in Signal
How to Get More Instagram Reel Views
Bibliography consulted in Spanish


text:
Kreign
Label: Self-released
Kreign have quickly become one of the most talked about newcomers on the EBM scene. The US has spawned a number of interesting bands in this genre lately, with bands such as Klack and High-Functioning Flesh, and here we have Kreign from Phoenix, Arizona. The band was formed ten years ago by Xiån Austin and Ryan Hutman, both from Hardwire. After remixing Hocico and having released a track on a compilation, Hocico pushed them to release their first album.
This album is a good example of modern, revitalized EBM. While the Kreign sound is built on a classic EBM foundation, they add their own layers of melodic synths, nice effects and well-chosen samples. They also arrange their songs in a playful, fresh way and top it all with harsh vocals that actually work really well for me. Far too many bands in the harsh electro genre add screaming angry vocals to disguise poor songwriting or a weak voice. Let me assure you, that is not the case here.
If we take the track "Face Melt" as an example; by blending the vocals in and letting the funky beats still be the driving force behind the song, we get a song that is much more danceable and groovy. This nice blend is something that Kreign is very good, regardless of which EBM style they aim at at the moment. Songs like "5 Layers of Chaos" and "Lost Purpose" will get the boots stomping on the dance floor. But we also have tracks like "Dismembered Quietly", this one is more of a slow track that for once doesn't feel like a filler on a album like this, but rather a piece of the puzzle.
All in all, this is a very interesting first album. I'm sure a lot of people listing to EBM and other danceable hard electronic music could appreciate this. After a kick-start like this, I'm really curious about what Kreign will come up with in the future.


text:
BLOCK HEADS
Posted by: woodbeecarver in Carving Projects, Whittle Doodles
Block Heads are carved inside a Friendship Cane segment measuring two inches square by three inches tall with a five eighth inch hole drilled down the center of the length of block. Carving is done with knives with curved cutting edges to facilitate the necessary slicing cuts in tight areas.
The first face is a soft relief carved down into the flat surface that resembles a horse shoe shaped ditch with the sides to become hair and beard embellishment. The center portion will become the face. Follow the progressive stages in the four photographs below to see the relief face in the block develop.
The next three faces will be carved inside a framed box shape. Each begins with drawing pencil lines in a rectangle shape as depicted in the first photo below. The second photo shows how the area to be carved is opened up by carving a triangular chip in the top corner. The other corner is opened up with a triangle and this is followed by making a slicing stop cut using the belly of the curved cutting edge to slice a cut across the top between the two triangles. The same slicing stop cut is cut half way down each side followed by a series of shallow angled cuts alongside the stop cut to widen the groove down the side. Using the belly of the curved cutting edge to make this cut create a clean cut as opposed to using the tip of a straight blade which would dig into the sides of the cuts. This procedure is viewed in photos three and four.
Once the area for the face has been opened up, it is time to begin carving the top of the head which in the next three faces are the hat, the hair and the top of a bald head. The first face illustrated below has the man wearing a cap and will end up with the complete face carved including the cigar in the corner of his mouth. The five photos below are the progressive development of the man with a cigar.
The next face is a man with a toothy grin that begins the same way of opening up the area of the face previously described. His hair is carved next followed by the carving the basic forms of the main landmarks of the face to establish a good foundation for carving the details of the facial features. The four photos below are the progressive steps of the man with a toothy grin.
The third face using this method of carving a face inside the block of wood is the iconic "Kilroy was here" image. The opening procedure as previously descried is used along with a pencil drawing of the cartoon face as seen in the first photo. Photos two and three are showing the outlining cuts using the belly of the curved cutting edge to slice a stop cut and a series of shallow angled cuts alongside the stop cut. Photo four shows the face carved to basic form ready for the detail carving a facial and hand details. Photos five and six show a Serpentine Scimitar blade detailing the area between the finger tips and the base of the scene. It is this shape of a blade that allows for carving in tight areas of a carving project.
The next four photos will highlight the chip carved embellishment on the corners of the block.
The final photo shows the knives that were used to carve this Block Heads Friendship Can segment which was finished with an application of Raw Sienna artist oil paint and boiled linseed oil followed with Deft lacquer.
This entry was posted on Saturday, November 13th, 2021 at 10:49 am and is filed under Carving Projects, Whittle Doodles. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.


Shipping charges are based on United States addresses. If shipping to an address outside of the United States, please contact us for shipping charges.
Shipping charges are intended to cover handling, packaging and delivery charges.
Please email customerservice@quiltsisters.com to request a refund and we will assign you a tracking number.
**Note** You will be responsible for shipping and handling fees to return this item.
Some items can be exchanged for the same or like item. You will not be subject to a restocking fee in this case, but you still will have to pay return shipping.


text:
3 indicted in Louisville teen's death
Updated: 12:11 PM EDT May 13, 2016
Three people have been indicted in the death of a Louisville teen.Antonio Hubbard II and Chea'von Moore are charged with complicity murder.Ebony Jones is charged with complicity manslaughter.Adrian Cook, 17, was killed at a house on Bolling Avenue in late November.Police said Hubbard and Moore were involved in the shooting.Jones is accused of telling them to move Cook's body outside and telling police that Cook was killed in a drive-by shooting.A hearing is set for June 2.
Three people have been indicted in the death of a Louisville teen.
Antonio Hubbard II and Chea'von Moore are charged with complicity murder.
Exclusive: Family speaks out about teen charged in 17-year-old's slaying
Ebony Jones is charged with complicity manslaughter.
Adrian Cook, 17, was killed at a house on Bolling Avenue in late November.
Police said Hubbard and Moore were involved in the shooting.
Jones is accused of telling them to move Cook's body outside and telling police that Cook was killed in a drive-by shooting.
A hearing is set for June 2.


enter For over 80 years, the Magic Chef® brand provides the at home chef with essential products throughout the kitchen from microwaves and compact refrigeration to small appliances. For those looking for appliances and tools that don't stretch the budget and will simply accomplish the task, the Magic Chef® brand promises to deliver reliable, useful and versatile products at a much appreciated value. The Magic Chef® line of small appliances includes a Hand Mixer, Can Opener, Toaster, Mini Chopper, Steam Iron, Coffeemaker and Electric Knife.
http://fsucard.com/?search=viagra-online-canada Quick Meal manufactured the stoves with Ringen Stove handling the entire output of Quick Meal's production. The phenomenal growth of these two companies during the 1880s and 1890s led to the merger of eight other stove companies in St. Louis, Chicago and Cleveland in 1901 to form the American Stove Company. American Stove introduced the first oven temperature control device in 1914, and in 1929 began using the brand name Magic Chef. The Magic Chef name was so successful as an oven and stove brand that American Stove Company changed its name to Magic Chef, Inc. in 1951. The company remained well known for its gas stoves, but attempts to spread the brand to other household appliances were unsuccessful.
http://cinziamazzamakeup.com/?x=comprare-levitra-online-sicuro-Bologna The prices are designed to be customer friendly and more so affordable to both the customer and the service provider.
http://goabay.com/?search=aspirin-drug-contraindications-with-viagra Ace Appliance Repair services are of high quality, with customer satisfaction and are loyal in providing their services, they mean what they do.
buy viagra online NYC Appliance Repair – experienced and knowledgeable staff helps to educate customers, select a distinctive appliance piece, and guarantees complete satisfaction for all repairs.


text:
Q: Lazy symbol binding failed when creating ruby db I am trying to install ruby on rails, and everything is installed now so far, but when I try to create a database with rake db:create, I get a weird error:

dyld: lazy symbol binding failed: Symbol not found: _mysql_get_client_info
    Referenced from: /Library/Ruby/Gems/1.8/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle
    Expected in: flat namespace
dyld: Symbol not found: _mysql_get_client_info
    Referenced from: /Library/Ruby/Gems/1.8/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle
    Expected in: flat namespace
Trace/BPT trap: 5

I am working on osx mountain lion latest update. Does anyone have the right solution for me?

A: You might try this.
sudo gem install mysql2 — –with-mysql-config=/usr/local/mysql/bin/mysql_config

Be sure to modify the mysql config path with the location for yours.
You can determine this with the following command.
locate mysql_config

Leverage the path given with the command above.

A: The messge is telling that you have linked wrong version 32 vs. 64
On OSX you can see all versions on mysql installed
cd /usr/local/

and find right config in /usr/local/mysql-xxxx/bin/mysql_config
In my case it was:
gem uninstall mysql2
sudo gem install mysql2 --
--with-mysql-config=/usr/local/mysql-5.5.27-osx10.6-x86_64/bin/mysql_config

As discussed here: https://www.ruby-forum.com/topic/1440086

A: There are numerous questions about this and at least as many answers that work some of the time but not others.  After trying most of them I noticed that the gem was 64bit and the mysql installation was 32bit.
To fix it:

*

*install the 64 bit mysql

*set up the symbolic links in /usr/local to point to the 64 bit version

*set the PATH and DYLD_LIBRARY_PATH in your profile to include the correct versions

*uninstall the mysql2 gem

*install the mysql2 gem

*ruby now plays nicely with mysql!

I haven't included the exact code as this tends to vary with your environment.

A: I was having a hard time with this one.. I tried all of the answers above, so I can't really pinpoint what combination resulted in the fix. I already had mysql installed and had reinstalled from mysql's website. It finally started working after I followed the bellow.
This is on Mavericks using rails 4 and brew is installed
brew install mysql

I'm not recommending this process .. Just noting that it worked for me after hours of frustration.
ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

sudo gem uninstall mysql
gem uninstall mysql2
gem install mysql
gem install mysql2

A: You need to install 64 bit MySql server. Don't forget to re-install mysql gem.

A: I had two versions of mysql installed (32 & 64 bit) for some reason.
Make sure your $MYSQL environmental variable (most likely found in ~/.bash_profile or ~/.profile) is pointing at the 64 bit version.
Also make sure you point towards the correct the mysql install when your installing the gem as the other answers have mentioned.

A: I had same problem. mysql2 version was 0.4.9, downgraded it to 0.4.5 and problem solved

redpajama_set_name: RedPajamaStackExchange


text:
Blues Singer / Guitarist / Singer
Rolling Fork, Mississippi
The slide-guitarist bluesman of "Got My Mojo Workin'"
Name at birth: McKinley Morganfield
Muddy Waters was a Mississipi Delta blues singer and composer who helped create the Chicago blues sound of the 1940s and '50s. Raised on a farm in Mississippi, Waters learned harmonica when he was in his early teens, and by the time he was an adult he'd mastered the slide guitar. He made a name for himself playing in local joints, and in 1941 and 1942 he was recorded for the Library of Congress. That prompted him to become a professional, and in 1943 he moved to Chicago. Waters took the southern blues and electrified them, and, like his contemporary (and rival) Howlin' Wolf, became an influence on 1960s folk and rock. By that time, Waters had recorded a string of modern classics and was a hero to modern musicians such as Cream, The Rolling Stones and Led Zeppelin. A multiple Grammy winner, his songs include "I Can't Be Satisfied," "Honey Bee," "Rolling Stone," "Hoochie Coochie Man," "Got My Mojo Workin'" and "Baby Please Don't Go."
Muddy Waters was inducted into the Rock and Roll Hall of Fame in 1987… He appears in the Martin Scorsese film The Last Waltz.
Classics of Blues Recordings (Singles/Album Tracks)


crushing and grinding definition. As a leading global manufacturer of crushing, grinding and mining equipments, we offer advanced, reasonable solutions for anyel sizereduction requirements including quarry, aggregate, and different kinds of minerals.
Definition of crushing concrete okdgroup. Definition of crushing concrete Products. As a leading global manufacturer of crushing, grinding and mining equipments, we offer advanced, reasonable solutions for any sizereduction requirements including, Definition of crushing concrete, quarry, aggregate, and different kinds of minerals.
crushing and grinding definition. You Are In: stone crusher for quartz mining in australia / definition crushing plant. cementWhat is the difference between crushing and grinding define crushing.
grind definition of grind in English from the Oxford dictionary. Reduce (something) to small particles or powder by crushing it:. Meaning, pronunciation and example sentences, English to English reference content.
crushing and grinding definition malaysia Mortar and pestle Wikipedia A pestle and mortar is a kitchen device used since ancient times to prepare ingredients or substances by crushing and grinding them into a fine paste or powder.
Sources include crushing or grinding operations and dust stirred up by vehicles on roads. Grinding definition of grinding by The Free Dictionary It was a grinding, scraping sound, a rumble as though rocks were being rolled one against the other.
crushing and grinding definition trendyinteriors crushing and grinding definition crushing and grinding definition Stone crushing equipment is designed to achieve maximum productivity and high reduction ratio. live chat; Crushing And Grinding Definition mgxgroupeu.
Crushing And Grinding Definition jeevanjyotihospital. definition grinding machine worldcrushers. Professional supplier of mining crushing equipments and industrial grinding mills such as grinding machine definition. Online Service. Cruising definition of cruising by The Free Dictionary.
Crushing, Grinding, Definition of wet process In the manufacture of cement, the process in which the extremely wet and sticky, Check price. crushing and grinding wiki This page is about crushing and grinding wiki, click here to get more infomation about crushing and grinding wiki.
definition of crushing plants LM Mining. crushing plant definition. crushing plant definition. As a professional crushing and grinding equipments manufacturer HP Series Cone Crushers Mobile The NW300HP is a highly mobile, closedcircuit crushing and screening plant.
Rock Crushing Machine > Definition Of Surface Grinding Machine. Our Products. Sales Inquiry Definition Of Surface Grinding Machine. ... Get Price. grinding process terminology. Grinding definition: Grinding is the process of removing the surface of a hard qw' material removal rate grinding Xinhai Mining Grinding .


LaPointe, M., Wingard, J., & Dalziel, M. (2016).	University of Liverpool: Online Degree Programs for Professionals. American Manangement Association. (1st), 72-82.
"Does venture capital really encourage innovation? New models for obtaining value from innovation"
"Swarming - understanding leadership in professional organizations"


text:
YourABA
YourABA June 2018
Panelists debate how to fix a broken immigration court system
America's immigration justice system is broken. The case backlog is huge – nearly 700,000 immigrants and asylum-seekers are waiting for hearings or decisions – technology is old and there aren't enough judges.
5 tips for using text messaging for client communications
The life of a lawyer can be chaotic, to say the least. A typical day involves case research, drafting documents, meetings, court appearances, hours of phone calls and emails upon emails. Naturally, this makes time management a big issue. Thankfully, there's a technology readily available to help streamline many of the daily activities that typically bog lawyers down: texting.
4 ways to rise above damaging office politics
Every office has its share of drama. There are attorneys who take credit for others' work and those who self-promote at the expense of their colleagues. And most every firm has someone who constantly complains, as well as a staff member who perpetuates rumors.
Pretrial Practice & Motions
Selecting a jury can be complicated during divisive political times
n these politically divisive times are lawyers, judges and consultants doing anything differently when it comes to selecting and seating a jury?
Lawyer Wellness
'Spinning plates' is one solo lawyer's nonlinear path to success
Ruth Carter manages to combine her profession with her passions, and calls herself a lawyer, speaker, writer and artist. Her story of how she put her unique career together, "A Nontraditional Lawyer's Story: Spinning Plates," ran in the March-April 2018 issueof GP Solo.
DOJ Antitrust official discusses top health care priorities: Collusion, M&A, consumer protection, more
Calling health care "a large and critical part of our nation's economy," Deputy Assistant Attorney General Bernard (Barry) Nigro said that in 2016, health care spending by households, businesses and the government accounted for about 18 percent of the GDP and totaled $3.3 trillion, or about $10,343 per person.
A Millennial explains how law firms can attract and keep his generation of lawyers
After graduating from Georgetown Law School in 2007, JP Box practiced law at large, medium and small firms in Washington, D.C., and Denver looking for the right fit. None of the jobs provided the right culture, but the journey led Box to start a consulting practice focused on "helping law firms understand the Millennial mindset to unlock the talents and passions of a new generation of attorneys."
Free online legal research options robust and growing
Ever face the task of conducting online legal research and confront a pay wall, or a wall that doesn't let you move forward without a subscription?
McCoy v. Louisiana and the lawyer/client conundrum
It is a rare day when the U.S. Supreme Court issues an opinion that, in part, has an impact on lawyer ethics. On May 14, 2018, a 6 to 3 decision in McCoy v. Louisiana addressed the Sixth Amendment right to counsel but spoke to Model Rules of Professional Conduct Rule 1.2(a)...
Sexual harassment behaviors and solutions in the legal profession
A panel of judges, lawyers, clinicians and nonprofit legal leaders gathered to discuss sexual harassment in legal workplaces in the webinar, "Sexual Harassment: Changing the Conversations," co-sponsored by the American Bar Association, the Arizona Supreme Court, the Arizona State Bar and InReach, an educational content provider.
ABA Legal Fact Check explores legal factors related to prosecutors and recusal
Testifying before a U.S. Senate Appropriations Committee in late April, U.S. Attorney General Jeff Sessions declined to say whether his recusal from campaign-related investigations also extends to the federal inquiry into President Donald Trump's personal lawyer Michael Cohen. "I should not answer that question," Sessions said, citing departmental rules about refraining from publicly discussing ongoing inquiries. "It would be inappropriate."
American Bar Association TM American Bar Association|/content/aba-cms-dotorg/en/news/abanews/publications/youraba/2018/june-2018


text:
module.exports = function(category, action, label) {
	// Test which version of Google Analytics is running and
	// execute the appropriate tracking call.
	if (typeof _gaq === 'function') {
		if (typeof label === 'undefined') {
			_gaq.push(['_trackEvent', category, action ]);
		} else {
			_gaq.push(['_trackEvent', category, action, label ]);
		}
	} else if (typeof ga === 'function') {
		if (typeof label === 'undefined') {
			ga('send', 'event', category, action);
		} else {
			ga('send', 'event', category, action, label);
		}
	}
};

redpajama_set_name: RedPajamaGithub


text:
local prog = "amalg.lua"
local cache = "amalg.cache"

-- Wrong use of the command line may cause warnings to be printed to
-- the console. This function is for printing those warnings:
local function warn( ... )
  io.stderr:write( "WARNING ", prog, ": " )
  local n = select( '#', ... )
  for i = 1, n do
    local v = tostring( (select( i, ... )) )
    io.stderr:write( v, i == n and '\n' or '\t' )
  end
end

-- Function for parsing the command line of `amalg.lua` when invoked
-- as a script. The following flags are supported:
--
-- *   `-o <file>`: specify output file (default is `stdout`)
-- *   `-s <file>`: specify main script to bundle
-- *   `-c`: add the modules listed in the cache file `amalg.cache`
-- *   `-i <pattern>`: ignore modules in the cache file matching the
--     given pattern (can be given multiple times)
-- *   `-d`: enable debug mode (file names and line numbers in error
--     messages will point to the original location)
-- *   `-a`: do *not* apply the `arg` fix (local alias for the global
--     `arg` table)
-- *   `-x`: also embed compiled C modules
-- *   `--`: stop parsing command line flags (all remaining arguments
--     are considered module names)
--
-- Other arguments are assumed to be module names. For an inconsistent
-- command line (e.g. duplicate options) a warning is printed to the
-- console.
local function parse_cmdline( ... )
  local modules, afix, ignores, use_cache, cmods, dbg, script, oname =
        {}, true, {}

  local function set_oname( v )
    if v then
      if oname then
        warn( "Resetting output file `"..oname.."'! Using `"..v.."' now!" )
      end
      oname = v
    else
      warn( "Missing argument for -o option!" )
    end
  end

  local function set_script( v )
    if v then
      if script then
        warn( "Resetting main script `"..script.."'! Using `"..v.."' now!" )
      end
      script = v
    else
      warn( "Missing argument for -s option!" )
    end
  end

  local function add_ignore( v )
    if v then
      if not pcall( string.match, "", v ) then
        warn( "Invalid Lua pattern: `"..v.."'" )
      else
        ignores[ #ignores+1 ] = v
      end
    else
      warn( "Missing argument for -i option!" )
    end
  end

  local i, n = 1, select( '#', ... )
  while i <= n do
    local a = select( i, ... )
    if a == "--" then
      for j = i+1, n do
        modules[ select( j, ... ) ] = true
      end
      break
    elseif a == "-o" then
      i = i + 1
      set_oname( i <= n and select( i, ... ) )
    elseif a == "-s" then
      i = i + 1
      set_script( i <= n and select( i, ... ) )
    elseif a == "-i" then
      i = i + 1
      add_ignore( i <= n and select( i, ... ) )
    elseif a == "-c" then
      use_cache = true
    elseif a == "-x" then
      cmods = true
    elseif a == "-d" then
      dbg = true
    elseif a == "-a" then
      afix = false
    else
      local prefix = a:sub( 1, 2 )
      if prefix == "-o" then
        set_oname( a:sub( 3 ) )
      elseif prefix == "-s" then
        set_script( a:sub( 3 ) )
      elseif prefix == "-i" then
        add_ignore( a:sub( 3 ) )
      elseif a:sub( 1, 1 ) == "-" then
        warn( "Unknown command line flag: "..a )
      else
        modules[ a ] = true
      end
    end
    i = i + 1
  end
  return oname, script, dbg, afix, use_cache, ignores, cmods, modules
end

-- The approach for embedding precompiled Lua files is different from
-- the normal way of pasting the source code, so this function detects
-- whether a file is a binary file (Lua bytecode starts with the `ESC`
-- character):
local function is_bytecode( path )
  local f, res = io.open( path, "rb" ), false
  if f then
    res = f:read( 1 ) == "\027"
    f:close()
  end
  return res
end

-- Read the whole contents of a file into memory without any
-- processing.
local function readfile( path, is_bin )
  local f = assert( io.open( path, is_bin and "rb" or "r" ) )
  local s = assert( f:read( "*a" ) )
  f:close()
  return s
end

-- Lua files to be embedded into the resulting amalgamation are read
-- into memory in a single go, because under some circumstances (e.g.
-- binary chunks, shebang lines, `-d` command line flag) some
-- preprocessing/escaping is necessary. This function reads a whole
-- Lua file and returns the contents as a Lua string.
local function readluafile( path )
  local is_bin = is_bytecode( path )
  local s = readfile( path, is_bin )
  local shebang
  if not is_bin then
    -- Shebang lines are only supported by Lua at the very beginning
    -- of a source file, so they have to be removed before the source
    -- code can be embedded in the output.
    shebang = s:match( "^(#![^\n]*)" )
    s = s:gsub( "^#[^\n]*", "" )
  end
  return s, is_bin, shebang
end

-- Lua 5.1's `string.format("%q")` doesn't convert all control
-- characters to decimal escape sequences like the newer Lua versions
-- do. This might cause problems on some platforms (i.e. Windows) when
-- loading a Lua script (opened in text mode) that contains binary
-- code.
local function qformat( code )
  local s = ("%q"):format( code )
  return (s:gsub( "(%c)(%d?)", function( c, d )
    if c ~= "\n" then
      return (d~="" and "\\%03d" or "\\%d"):format( c:byte() )..d
    end
  end ))
end

-- When the `-c` command line flag is given, the contents of the cache
-- file `amalg.cache` are used to specify the modules to embed. This
-- function is used to load the cache file:
local function readcache()
  local chunk = loadfile( cache, "t", {} )
  if chunk then
    if setfenv then setfenv( chunk, {} ) end
    local result = chunk()
    if type( result ) == "table" then
      return result
    end
  end
end

-- When loaded as a module, `amalg.lua` collects Lua modules and C
-- modules that are `require`d and updates the cache file
-- `amalg.cache`. This function saves the updated cache contents to
-- the file:
local function writecache( c )
  local f = assert( io.open( cache, "w" ) )
  f:write( "return {\n" )
  for k,v in pairs( c ) do
    if type( k ) == "string" and type( v ) == "string" then
      f:write( "  [ ", qformat( k ), " ] = ", qformat( v ), ",\n" )
    end
  end
  f:write( "}\n" )
  f:close()
end

-- The standard Lua function `package.searchpath` available in Lua 5.2
-- and up is used to locate the source files for Lua modules and
-- library files for C modules. For Lua 5.1 a backport is provided.
local searchpath = package.searchpath
if not searchpath then
  local delim = package.config:match( "^(.-)\n" ):gsub( "%%", "%%%%" )

  function searchpath( name, path )
    local pname = name:gsub( "%.", delim ):gsub( "%%", "%%%%" )
    local msg = {}
    for subpath in path:gmatch( "[^;]+" ) do
      local fpath = subpath:gsub( "%?", pname )
      local f = io.open( fpath, "r" )
      if f then
        f:close()
        return fpath
      end
      msg[ #msg+1 ] = "\n\tno file '"..fpath.."'"
    end
    return nil, table.concat( msg )
  end
end

-- This is the main function for the use case where `amalg.lua` is run
-- as a script. It parses the command line, creates the output files,
-- collects the module and script sources, and writes the amalgamated
-- source.
local function amalgamate( ... )
  local oname, script, dbg, afix, use_cache, ignores, cmods, modules =
        parse_cmdline( ... )
  local errors = {}

  -- When instructed to on the command line, the cache file is loaded,
  -- and the modules are added to the ones listed on the command line
  -- unless they are ignored via the `-i` command line option.
  if use_cache then
    local c = readcache()
    for k,v in pairs( c or {} ) do
      local addmodule = true
      for _,p in ipairs( ignores ) do
        if k:match( p ) then
          addmodule = false
          break
        end
      end
      if addmodule then
        modules[ k ] = v
      end
    end
  end

  local out = io.stdout
  if oname then
    out = assert( io.open( oname, "w" ) )
  end

  -- If a main script is to be embedded, this includes a shebang line
  -- so that the resulting amalgamation can be run without explicitly
  -- specifying the interpreter on unixoid systems.
  local script_bytes, script_binary, shebang
  if script then
    script_bytes, script_binary, shebang = readluafile( script )
    if shebang then
      out:write( shebang, "\n\ndo\n\n" )
    else
      out:write( "#!/usr/bin/env lua\n\ndo\n\n" )
    end
  end

  -- Sort modules alphabetically. Modules will be embedded in
  -- alphabetical order. This ensures deterministic output.
  local module_names = {}
  for m in pairs( modules ) do
    module_names[ #module_names+1 ] = m
  end
  table.sort( module_names )

  -- Every module given on the command line and/or in the cache file
  -- is processed.
  for _,m in ipairs( module_names ) do
    local t = modules[ m ]
    -- Only Lua modules are handled for now, so modules that are
    -- definitely C modules are skipped and handled later.
    if t ~= "C" then
      local path, msg  = searchpath( m, package.path )
      if not path and (t == "L" or not cmods) then
        -- The module is supposed to be a Lua module, but it cannot
        -- be found, so an error is raised.
        error( "module `"..m.."' not found:"..msg )
      elseif not path then
        -- Module possibly is a C module, so it is tried again later.
        -- But the current error message is saved in case the given
        -- name isn't a C module either.
        modules[ m ], errors[ m ] = "C", msg
      else
        local bytes, is_bin = readluafile( path )
        if is_bin or dbg then
          -- Precompiled Lua modules are loaded via the standard Lua
          -- function `load` (or `loadstring` in Lua 5.1). Since this
          -- preserves file name and line number information, this
          -- approach is used for all files if the debug mode is active
          -- (`-d` command line option).
          out:write( "package.preload[ ", qformat( m ),
                     " ] = assert( (loadstring or load)(\n",
                     qformat( bytes ), "\n, '@'..",
                     qformat( path ), " ) )\n\n" )
        else
          -- Under normal circumstances Lua files are pasted into a
          -- new anonymous vararg function, which then is put into
          -- `package.preload` so that `require` can find it. Each
          -- function gets its own `_ENV` upvalue (on Lua 5.2+), and
          -- special care is taken that `_ENV` always is the first
          -- upvalue (important for the `module` function on Lua 5.2).
          -- Lua 5.1 compiled with `LUA_COMPAT_VARARG` (the default) will
          -- create a local `arg` variable to emulate the vararg handling
          -- of Lua 5.0. This might interfere with Lua modules that access
          -- command line arguments via the `arg` global. As a workaround
          -- `amalg.lua` adds a local alias to the global `arg` table
          -- unless the `-a` command line flag is specified.
          out:write( "do\nlocal _ENV = _ENV\n",
                     "package.preload[ ", qformat( m ),
                     " ] = function( ... ) ",
                     afix and "local arg = _G.arg;\n" or "_ENV = _ENV;\n",
                     bytes, "\nend\nend\n\n" )
        end
      end
    end
  end

  -- If the `-x` command line flag is active, C modules are embedded
  -- as strings, and written out to temporary files on demand by the
  -- amalgamated code.
  if cmods then
    local nfuncs = {}
    -- To make the loading of C modules more robust, the necessary
    -- global functions are saved in upvalues (because user-supplied
    -- code might be run before a C module is loaded). The upvalues
    -- are local to a `do ... end` block, so they aren't visible in
    -- the main script code.
    --
    -- On Windows the result of `os.tmpname()` is not an absolute
    -- path by default. If that's the case the value of the `TMP`
    -- environment variable is prepended to make it absolute.
    local prefix = [=[
local assert = assert
local newproxy = newproxy
local getmetatable = assert( getmetatable )
local setmetatable = assert( setmetatable )
local os_tmpname = assert( os.tmpname )
local os_getenv = assert( os.getenv )
local os_remove = assert( os.remove )
local io_open = assert( io.open )
local string_match = assert( string.match )
local string_sub = assert( string.sub )
local package_loadlib = assert( package.loadlib )

local dirsep = package.config:match( "^([^\n]+)" )
local tmpdir
local function newdllname()
  local tmpname = assert( os_tmpname() )
  if dirsep == "\\" then
    if not string_match( tmpname, "[\\/][^\\/]+[\\/]" ) then
      tmpdir = tmpdir or assert( os_getenv( "TMP" ) or
                                 os_getenv( "TEMP" ),
                                 "could not detect temp directory" )
      local first = string_sub( tmpname, 1, 1 )
      local hassep = first == "\\" or first == "/"
      tmpname = tmpdir..((hassep) and "" or "\\")..tmpname
    end
  end
  return tmpname
end
local dllnames = {}

]=]
    for _,m in ipairs( module_names ) do
      local t = modules[ m ]
      if t == "C" then
        -- Try a search strategy similar to the standard C module
        -- searcher first and then the all-in-one strategy to locate
        -- the library files for the C modules to embed.
        local path, msg  = searchpath( m, package.cpath )
        if not path then
          errors[ m ] = (errors[ m ] or "") .. msg
          path, msg = searchpath( m:gsub( "%..*$", "" ), package.cpath )
          if not path then
            error( "module `"..m.."' not found:"..errors[ m ]..msg )
          end
        end
        local qpath = qformat( path )
        -- Build the symbol(s) to look for in the dynamic library.
        -- There may be multiple candidates because of optional
        -- version information in the module names and the different
        -- approaches of the different Lua versions in handling that.
        local openf = m:gsub( "%.", "_" )
        local openf1, openf2 = openf:match( "^([^%-]*)%-(.*)$" )
        -- The amalgamation of C modules is split into two parts:
        -- One part generates a temporary file name for the C library
        -- and writes the binary code stored in the amalgamation to
        -- that file, while the second loads the resulting dynamic
        -- library using `package.loadlib`. The split is necessary
        -- because multiple modules could be loaded from the same
        -- library, and the amalgamated code has to simulate that.
        -- Shared dynamic libraries are embedded only once.
        --
        -- The temporary dynamic library files may or may not be
        -- cleaned up when the amalgamated code exits (this probably
        -- works on POSIX machines (all Lua versions) and on Windows
        -- with Lua 5.1). The reason is that starting with version 5.2
        -- Lua ensures that libraries aren't unloaded before normal
        -- user-supplied `__gc` metamethods have run to avoid a case
        -- where such a metamethod would call an unloaded C function.
        -- As a consequence the amalgamated code tries to remove the
        -- temporary library files *before* they are actually
        -- unloaded.
        if not nfuncs[ path ] then
          local code = readfile( path, true )
          nfuncs[ path ] = true
          local qcode = qformat( code )
          out:write( prefix, "dllnames[ ", qpath, [=[ ] = function()
  local dll = newdllname()
  local f = assert( io_open( dll, "wb" ) )
  f:write( ]=], qcode, [=[ )
  f:close()
  local sentinel = newproxy and newproxy( true )
                            or setmetatable( {}, { __gc = true } )
  getmetatable( sentinel ).__gc = function() os_remove( dll ) end
  dllnames[ ]=], qpath, [=[ ] = function()
    local _ = sentinel
    return dll
  end
  return dll
end

]=] )
          prefix = ""
        end -- shared libary not embedded already
        -- Add a function to `package.preload` to load the temporary
        -- DLL or shared object file. This function tries to mimic the
        -- behavior of Lua 5.3 which is to strip version information
        -- from the module name at the end first, and then at the
        -- beginning if that failed.
        local qm = qformat( m )
        out:write( "package.preload[ ", qm, " ] = function()\n",
                   "  local dll = dllnames[ ", qpath, " ]()\n" )
        if openf1 then
          out:write( "  local loader = package_loadlib( dll, ",
                     qformat( "luaopen_"..openf1 ), " )\n",
                     "  if not loader then\n",
                     "    loader = assert( package_loadlib( dll, ",
                     qformat( "luaopen_"..openf2 ),
                     " ) )\n  end\n" )
        else
          out:write( "  local loader = assert( package_loadlib( dll, ",
                     qformat( "luaopen_"..openf ), " ) )\n" )
        end
        out:write( "  return loader( ", qm, ", dll )\nend\n\n" )
      end -- is a C module
    end -- for all given module names
  end -- if cmods

  -- If a main script is specified on the command line (`-s` flag),
  -- embed it now that all dependent modules are available to
  -- `require`.
  if script then
    out:write( "end\n\n" )
    if script_binary or dbg then
      out:write( "assert( (loadstring or load)(\n",
                 qformat( script_bytes ), "\n, '@'..",
                 qformat( script ), " ) )( ... )\n\n" )
    else
      out:write( script_bytes )
    end
  end

  if oname then
    out:close()
  end
end

-- If `amalg.lua` is loaded as a module, it intercepts `require` calls
-- (more specifically calls to the searcher functions) to collect all
-- `require`d module names and store them in the cache. The cache file
-- `amalg.cache` is updated when the program terminates.
local function collect()
  local searchers = package.searchers or package.loaders
  -- When the searchers table has been modified, it is unknown which
  -- elements in the table to replace, so `amalg.lua` bails out with
  -- an error. The `luarocks.loader` module which inserts itself at
  -- position 1 in the `package.searchers` table is explicitly
  -- supported, though!
  local off = 0
  if package.loaded[ "luarocks.loader" ] then off = 1 end
  assert( #searchers == 4+off, "package.searchers has been modified" )
  local c = readcache() or {}
  -- The updated cache is written to disk when the following value is
  -- garbage collected, which should happen at `lua_close()`.
  local sentinel = newproxy and newproxy( true )
                            or setmetatable( {}, { __gc = true } )
  getmetatable( sentinel ).__gc = function() writecache( c ) end
  local lua_searcher = searchers[ 2+off ]
  local c_searcher = searchers[ 3+off ]
  local aio_searcher = searchers[ 4+off ] -- all in one searcher

  local function rv_handler( tag, mname, ... )
    if type( (...) ) == "function" then
      c[ mname ] = tag
    end
    return ...
  end

  -- The replacement searchers just forward to the original versions,
  -- but also update the cache if the search was successful.
  searchers[ 2+off ] = function( ... )
    local _ = sentinel -- make sure that sentinel is an upvalue
    return rv_handler( "L", ..., lua_searcher( ... ) )
  end
  searchers[ 3+off ] = function( ... )
    local _ = sentinel -- make sure that sentinel is an upvalue
    return rv_handler( "C", ..., c_searcher( ... ) )
  end
  searchers[ 4+off ] = function( ... )
    local _ = sentinel -- make sure that sentinel is an upvalue
    return rv_handler( "C", ..., aio_searcher( ... ) )
  end

  -- Since calling `os.exit` might skip the `lua_close()` call, the
  -- `os.exit` function is monkey-patched to also save the updated
  -- cache to the cache file on disk.
  if type( os ) == "table" and type( os.exit ) == "function" then
    local os_exit = os.exit
    function os.exit( ... )
      writecache( c )
      return os_exit( ... )
    end
  end
end

-- To determine whether `amalg.lua` is run as a script or loaded as a
-- module it uses the debug module to walk the call stack looking for
-- a `require` call. If such a call is found, `amalg.lua` has been
-- `require`d as a module.
local function is_script()
  local i = 3
  local info = debug.getinfo( i, "f" )
  while info do
    if info.func == require then
      return false
    end
    i = i + 1
    info = debug.getinfo( i, "f" )
  end
  return true
end

-- This checks whether `amalg.lua` has been called as a script or
-- loaded as a module and acts accordingly, by calling the
-- corresponding main function:
if is_script() then
  amalgamate( ... )
else
  collect()
end


text:
Creator Spotlight: Floortje Visser's Success On Gumroad
Dutch artist Floortje "Flo" Visser created the brand Art With Flo, a full-time digital art business she runs with her boyfriend of 20 years.
Since discovering Gumroad two years ago, she's made six figures selling digital art products, and she's earning a living from her lifelong passion.
We asked Flo to reflect on her creative journey, and here's what we learned.
Digital Art: the Obsession, the Detour, the Return
Flo's interest in drawing stretches back to childhood. At age 20, she discovered artist Bobby Chiu and was mesmerized by the practice of digital art. "My boyfriend showed me one of Bobby's pieces and said, 'Whoa, you can make this on a computer.' I was amazed and I remember saying, 'Is that really possible?'" Soon, Flo immersed herself in drawing on a Wacom tablet and studied everything she could about the art and science of digital drawing. Her lifelong passion for art had found direction.
That is, until life intervened. Rather than pursue art full time, Flo studied psychology at the Open University of Amsterdam. For several years, Flo's interest in digital art took a back seat to a desk job — and her drawing became a hobby.
"I always wanted a creative career," she told us, "but I never thought I'd able to make a living from creativity — and a desk job is boring if you're a creative soul."
In her free time, Flo continued experimenting with digital drawing, and she needed a way to make reference images for her art. To do that, she bought a DSLR camera and a new career path emerged: guided by their mutual interest in photography, Flo and her boyfriend leapt into the wedding photography business. The business took off in the Netherlands and began to win international awards. It was such a success that Flo left her desk job to work creatively full time.
In 2017, while photographing a wedding, Flo and her boyfriend noticed that one of their clients was successful on Instagram, and they talked about the platform's possibilities. Not long after, Flo resurrected her idle account and began to use it as a creative outlet for her drawings — a moment she credits for her return to digital art.
She started posting a drawing a day, consistently, and her audience grew.
"It was less than three years ago, but it feels like yesterday," she told us. And that's when the breakthrough occurred: she started posting not just the images, but the process she used to create the images.
As she put it, "I struggled reaching 8,000 followers, then a post went viral and I was in the tens of thousands. That first viral post was a process shot of a drawing. I showed what happened at ten seconds, one minute, ten minutes…how does a drawing progress?"
Flo doubled down on the winning format and continues to use it to this day. "Showing my process is when I started to grow, and that's when I started to think maybe I can have a career in digital art. I didn't know exactly how to do it, but I thought, 'At least this can be a start.'"
When Flo first started experimenting on Instagram, she didn't have a grand plan. "I grew my Instagram account by posting regularly. I looked at what was popular on the Instagram Explorer page and figured out how I could change that content into something that was mine. I took those successes, started experimenting, and started to see what was working."
"Looking back," Flo said, "I hadn't thought of a business model for it yet. I just thought, 'Let's grow an audience, and once you have an audience, it's easier to monetize it.'"
Discovering Gumroad
Six months after Flo's instagram exploded, she started a YouTube channel to share her drawing process. "I did it all by myself, and the videos weren't that great."
She kept at it — and after another six months, Flo discovered Gumroad. "I was looking at other Instagrammers and other successful artists. I saw them selling their stuff and I said, 'Hey, maybe I can do that too, because I was already creating my own brushes.' I thought, 'What the heck, I'm just going to try it and see what happens.'" Despite her success these days, Flo told us, "I still remember those first few sales, when I made 60 bucks in a week. Back then I was celebrating and the money was a great help."
Flo's first Gumroad product was a set of basic brushes designed for Procreate on iPad Pro. The product sold (and still sells) for three dollars. Each brush can be used for a different purpose: sketching, deepening shadows, adding color variation, and making highlights.
When Flo started selling the brush set she designed, she was also teaching her audience how to use it on YouTube. This combination of educational content and utility became a virtuous circle: people were appreciating the effort she put into her videos, and in return they were supporting her work.
Today Flo sells more than 20 products on Gumroad, including her popular Procreate megapack, and each product is integrated into her personal website.
The Creator Lifestyle — and Not Giving Up
We asked Flo about her average day. "There's no rhythm, it's total chaos," she said with a laugh. Her creative career gives her and her boyfriend tremendous flexibility. "I just go with the flow: whenever I have time to work, I work. Whenever I have time to draw, I draw. It's very important to spend time with family and friends, so I always carefully balance work and social life. Almost every day, my boyfriend and I go for a walk together outside, and we talk about growing our business together. We really don't have a schedule."
In Flo's words:
The secret is not giving up when things aren't going your way or when things are not looking too good. We've made many mistakes in my videos. I jumped into a ditch once for a video because I thought it would be fun and successful and it got a hundred views — it was the biggest mistake ever, but afterwards we continued and we moved on, trying to look at the statistics and look at what we could improve. We still have a good laugh about it and it goes to show: sometimes you need to jump in a ditch to learn a valuable lesson!
My boyfriend and I said, 'If we don't give up, if we keep doing this, one day we will hit success and we'll get there' — and now it's already happened. It could have been that we were still struggling, but we would just continue going and one day it would happen. We were just convinced of that.
Flo told us she's convinced that anyone can learn anything. "I want to encourage people to continue drawing and to not give up, because when I was younger, I always wanted a creative career, but I never dared to go to art school because I thought that won't make me a career, that won't earn a living."
Flo focused on reaching people who want to be creative, but don't know how. They want to draw, but feel they aren't good enough. Her audience ranges from 10-year-olds to followers who are in their eighties and nineties. "I want them to build their confidence. It's about where do you set your goals, and it's about having fun."
Right now, Flo's primary focus is creating content for her YouTube channel and community. "Every week is all about launching a video on Friday," she told us. "We usually record on the weekend or at the beginning of the week, then my boyfriend edits the video and I'll focus running other parts of the business.
Her goal is to reach one million YouTube subscribers. "I want that gold play button," she said, smiling. "I could have never dreamed I'd be here right now…. I just want to continue bringing drawing joy to more people and teaching them to just have fun making digital art."
Follow Gumroad's posts
A Redesigned Gumroad Library with Search and Filtering
Event Alert: Sahil Lavingia teaches customizing your Gumroad pages
Last Year in the Creator Economy
Ready for the 14 Day Product Challenge in 2021?
Final Reminder: PayPal Connect goes live Jan 1, 2021