The ALS Ice Bucket Challenge was groundbreaking, in that it turned the traditional fundraising model on its ear. It was truly grassroots in nature, allowed for flexibility in participation and donation, and was timed perfectly with the super-hot summer of 2014. It raised $100 million in donations with very little overhead or downside, complaints about water waste notwithstanding.
According to Wikipedia, the success of the Ice Bucket Challenge prompted the Muscular Dystrophy Association to discontinue its Labor Day telethon to focus on new, creative and organic ways to raise money for the organization. For those who grew up with the Telethon, this was a watershed moment (no pun intended).The fact that its $100 million in donations helped lead to a research breakthrough is the icing on the cake (or ice in the bucket, again.
no pun intended). In its final year, the Muscular Dystrophy television benefit (by then, not a strict telethon anymore) raised a little under $60 million.Though ALS charities tried to revive the Ice Bucket Challenge in 2015, they didnt get quite the response: only a million was raised.
More Ice Bucket Challenges arent the answer. But there seems to be a great deal of potential in grassroots-style fundraising campaigns incorporating similar elements.The Ice Bucket Challenge was easy to enter, did not require a donation, and visually appealing in a Jackass sort of way.
The rules were loose: which opened the door to a variety of creative and funny interpretations. You didnt even need ice, or a bucket. And you could show, or see, some skin, which made it even more media-genic.
Grownups could do it, little kids could do it, it was hot enough outside to take the edge off the shivering sensation. The challenge didnt focus on the disease, although it was easy enough to Google to see the devastating effects and decide ALS research was worth supporting. Charities wishing to raise money could take cues from the Ice Bucket Challenge by following these guidelines:Make it free and low-risk to participate, and make it inclusive to people of all ages, genders, and abilities.
Pretty much anyone could do an Ice Bucket Challenge, even without ice or a bucket.Dont set too many rules. Allowing participants to make up their own variants keeps it interesting, and increases engagement by upping the ante.
Give participants a chance to show off. The action should be visual in nature, and something that people are going to want to share on social media, and inspire others to try it as well. If you can get celebrities into it, all the better.
Make the donation plea clear and the mechanism for giving easy. The Ice Bucket Challenge was a little weak in these areas, because it was completely grassroots. If you want to try something like this for your charity, establish social channels, a hashtag, and a landing page where people can make their donation.
Establish a seasonal tie-on or, better yet, an ending point. Viral phenomena have a short shelf life. The Ice Bucket Challenge didnt have this, either, but the fact that it tied in with hot weather and summer vacation helped it spread.
The Ice Bucket Challenge wouldnt have worked in the winter.None of this is rocket science, so its not surprising that several charities have had success with Ice Bucket Challenge-style fundraisers. The American Diabetes Association (ADA) asked participants to add a blue streak to their hair (via hair dye or temporary extension) in honor of Diabetes Awareness Month.
Streakers were encouraged to post their pic to the ADA website or social sites using the #bluestreakchallenge hashtag. You cant tell a person is diabetic by looking at them, but a blue streak of hair is pretty obvious, they said. Another extremely popular challenge, which predated the Ice Bucket by several years, is Movember, which challenges men to grow a moustache during the month of November to raise funds for diseases which affect men.
(This spawned the parody challenge Mufftober, which asked women to grow hair in an area theyd typically shave, but this didnt exactly catch on.)So while charity galas, golf tournaments, and TV telethons might still have their place, the Ice Bucket Challenge showed its possible to raise millions, and promote scientific breakthroughs, through leveraging social media and the potential of the human ego. We wont be needing another Ice Bucket Challenge, but the principles behind it could be helpful indeed
· Other Questions
How were software engineers in the previous generation able to write complex pieces of software like Operating systems whereas I am not?
I am looking into the MINIX source as a reference but still not able to piece together different components.
Maybe it is because you donu2019t know enough, yet.Looking at the source of an Operating System will not teach you how it works.
Designing an operating system involves researching all the requirements, studying the instruction set, interrupt mechanism, memory structure, capabilities, I/O facilities, and idiosyncrasies of the targeted hardware. Designing an organized file structure for your devices, determining what security methods to use, and more.You canu2019t learn enough to write an operating system by studying the source code.
Operating systems are designed from system requirements leading to system specifications. Today there are college courses and books about operating systems that the early software engineers didnu2019t have.The u201csoftware engineers in the previous generationu201d originally had a basic need to load a single program (from cards, tape, etc.
) into memory and start the program running. The programs need a way to get data (cards, tape, etc.) and to output data (cards, tape, print, etc.
). The system program did this and also supplied a generic way for a program to access the input and output devices so they didnu2019t have to be programmed for each device separately. The original digital business computers were incredibly expensive, had large word sizes (often 36 bit or more) with instructions that were able to access all of word (not byte) addressable memory without requiring additional registers to be loaded first to access memory.
Of course there wasnu2019t that much memory, but neither was there a lot of memory in the 8 bit PCs. The machine design allowed system developers to concentrate on system functionality without having to deal with the primitive addressing methods needed for the PC. So what was involved in programming a Operating System:With the inclusion of memory protection architecture and other advances, the systems design added methods to split/partition memory into fixed sections allowing more than one program loaded in memory at a time.
Also necessary was a way to decide which partition is active, for how long, what to do when a running program had to wait for a request (i/O or otherwise) to complete, how and when to make another partition active and have the current running program u201csleepu201d, how and where to save information from a u201csleepingu201d partitionu201d and how to wake it up. Also needed was the ability to only allow designated programs from accessing certain devices and not allow other programs to do so. With disk drives used as random access devices, a method was needed to identify the part of the disk being used.
The concept of a file structure was invented. An entry in a file structure pointed to the beginning of a file and a way was also needed to get to any desired part of a file. Programming needed to be added to an operating system to support all this.
Eventually, files were assigned ownership to users and programming was added to implement security protocols to do this as well as assign read/write protections to files.Instead of splitting memory into fixed sections, system designers learned to allocate memory as necessary to individual programs. A program needing more memory would acquire it from the system from a pool of unused available memory and release memory to the system to make it available to other programs.
For this to happen, there had to be a way for memory hardware to be accessible by the assigned program but still be protected from other programs.For this, memory was u201csplitu201d into allocatable blocks called pages (or segments). A table was used as part of a users environment to point to assigned memory areas and memory translation hardware used the table to automatically translated a program memory reference to an actual memory address.
Some hardware even implemented two address mapping tables, one for instruction execution addresses and one for data access addressing. Among the benefits was the prevention of a runway program from modifying itself. If a program modified address xxxxx, it would not succeed if xxxxx was the address of an instruction.
A programming error would not be able to flow or branch to an address used for data. Unfortunately, some good assembly or machine language programs were intentionally written that way and they no longer worked. Address mapping tables were expanded to allow for having much more memory than an instruction address or register could reach.
As disk drives became faster it became practical for an inactive program (waiting for something) to moved out of memory to the disk drive. System developers invented a swap area or pagefile area and programmed how it associated user program memory areas with locations on the disk drive so that it could be reloaded into memory. The memory mapping tables made it possible to restore swapped out programs to different memory addresses.
It also became possible to put just part of a program in memory and when a program wanted to accessory instructions or data not in memory, an exception (or interrupt) would occur, the system would detect the situation, find the desired part of the program in the swap area, loaded it in, and let the program continue running. Considering the speed of everything in a computer, an interactive user usually does not realize any of this happened. All this is just part of what an operating system does and unless the source code is very heavily documented (it never is), and the documentation is up to date (it never is), it is unlikely that you would be able to learn much from reading the code