Five Minutes of Fame: Difference between revisions

From Noisebridge
Jump to navigation Jump to search
(zoom'd)
(197 intermediate revisions by 51 users not shown)
Line 1: Line 1:
==What is it?==
<div style="margin:auto;text-align: center;border: 6px solid #00b;background-color:#fff;color:#000; margin:0.5em;">
<br>
<span style="font-size:50px; color: red; font-weight: bold">5MoF</span>
<br>


Five Minutes of Fame (5MoF) is an adaptation of CCC's Lightning Talks. Our implementation is ten five minute talks in an hour, with a short intermission so you can get another beer.


==When and where does it happen?==
<span style="font-size:24px; text-decoration: bold; color: #f50">8:00pm Third Thursdays of every month!</span>


Third Thursday of every month at 8pm, at Noisebridge, 2169 Mission St, San Francisco.
<!--
Noisebridge Hackerspace is inviting you to a scheduled Zoom meeting.
Topic: 5MoF &nbsp;
Time: Jul 16, 2020 06:00-10:00 PM Pacific Time (US and Canada)
Join Zoom Meeting
https://us02web.zoom.us/j/82627370726
Meeting ID: 826 2737 0726
One tap mobile
+16699006833,,82627370726# US (San Jose)
+12532158782,,82627370726# US (Tacoma)
Dial by your location
        +1 669 900 6833 US (San Jose)
-->


<!--- [[File:5MoF_flyer_111512.jpg|400px|right]] --->
'''<span style="font-size:42px; text-decoration: underline; color: #f00">[[https://us02web.zoom.us/j/82627370726 --> broadcasting to the internet (Zoom) <--]]</span>'''
=== Thursday, March 21st, 8 PM, It's on! [http://5mof.net/signup/ Sign up!]===
                         
As if you needed ANY reminder, Five Minutes of Fame is Noisebridge's ADD
show-and-tell, squashing octets of human awesomeness into an hour like
booleans in a packed byte.


<pre>
  _  _  _____ __  __  ____  ______
_| || |_| ____|  \/  |/ __ \|  ____| Noisebridge 8PM Thursday 21st March
|_  __  _| |__ | \  / | |  | | |__    Four Years of Childlike Wonder and
_| || |_|___ \| |\/| | |  | |  __|  Adult Technological Themes in
|_  __  _|___) | |  | | |__| | |      San Francisco's 543rd Finest
  |_||_| |____/|_|  |_|\____/|_|      Hacker Show and Tell.




This week's Five Minutes of Fame will contain:
'''<span style="font-size:32px; text-decoration: underline; color: #0ff">[[Five_Minutes_of_Fame_2020_06_18|June 18th 2020]]</span>'''


* LEE FELSENSTEIN, the man who hew the Osborne 1 from sand! Who ran the
</div>
  Homebrew Computer Club with a Ruler of Steel! Who soldered free
Next: [[Five_Minutes_of_Fame_2020_07_16|July 16th 2020]]
  speech to the dreams of the digital revolution!


* Straight outa copyright, it's the DATA2.ME people guerilla revamping public documents
Prev: [[Five_Minutes_of_Fame_2020_06_18|June 18th 2020]]


* RACHEL CHALMERS, who will powerpoint the clue electric
[[5MOF_Template|5 MoF Template]]
{{5mof}}
{{box}}
Five Minutes of Fame (5MoF) is ten five minute talks in an hour, with a short intermission so you can get another beer. Talks tend to be ad-hoc, poorly-planned, and awe-inspiring.


* Mozilla's LIZ HENRY, Talking Bugs Bugs Bug Bugs Bugs Bugs Bugs Bugs Bugs [1]
Sign up to speak by following the link above, clicking "edit", and adding yourself to the list.


* PLUS The amazing ANNOUNCEMENTS of MILOH (now with saxophone backing)
5MoF happens at Noisebridge, 2169 Mission St, San Francisco every 3rd Thursday of the month at 8pm.
{{boxend}}


  and FOR ONE DAY ONLY:


* The TRIUMPHANT RETURN of AL SWEIGART, Author of the BEST GODDAMN INTRODUCTION TO PYTHON
== 2019 ==


All this, plus I hope about fifteen people offering to do their talk
[[Five_Minutes_of_Fame_2019_1_17|January 17th -- 5MoF 2019]]
because otherwise I'm going to have to do my extended Kellis Milkshake
routine and frankly I don't think it's quite there yet. Mail me if so.


So come one, come all, come FIVE MINUTES OF FAME to Noisebridge Hackitorium
[[Five_Minutes_of_Fame_2019_02_21|February 21st -- ]]


8PM Thursday 21st, Noisebridge.
[[Five_Minutes_of_Fame_2019_03_21|March 21st -- ]]


_____  _____
[[Five_Minutes_of_Fame_2019_04_18|April 18th -- ]]
| __ \ / ____|
| |__) | (___
|  ___/ \___ \
| |    ____) |
|_|    |_____/


_____
[[Five_Minutes_of_Fame_2019_05_16|May 16th --]]
| __ \
| |  | | ___  ___  ___    __ _ _ __  _  _  ___  _ __  ___
| |  | |/ _ \ / _ \/ __|  / _` | '_ \| | | |/ _ \| '_ \ / _ \
| |__| | (_) |  __/\__ \ | (_| | | | | |_| | (_) | | | |  __/
|_____/ \___/ \___||___/  \__,_|_| |_|\__, |\___/|_| |_|\___|
                                      __/ |
                                      |___/
_                    _                          _
| |                  | |                        | |
| |__  ___ _ __ ___  | | ___ __  _____      __ | |__  _____      __
| '_ \ / _ \ '__/ _ \ | |/ / '_ \ / _ \ \ /\ / / | '_ \ / _ \ \ /\ / /
| | | |  __/ | |  __/ |  <| | | | (_) \ V  V /  | | | | (_) \ V  V /
|_| |_|\___|_|  \___| |_|\_\_| |_|\___/ \_/\_/  |_| |_|\___/ \_/\_/


[[Five_Minutes_of_Fame_2019_06_20|June 20th -- ]]


_          _______ _    _ _____  _  _
[[Five_Minutes_of_Fame_2019_07_18|July 18th -- ]]
| |        |__  __| |  | |  __ \| \ | |
| |_ ___      | |  | |  | | |__) |  \| |
| __/ _ \    | |  | |  | |  _  /| . ` |
| || (_) |    | |  | |__| | | \ \| |\  |
\__\___/    |_|  \____/|_|  \_\_| \_|


[[Five_Minutes_of_Fame_2019_08_15|August 15th --]]


______ _____ _____ _      ______ _______    ____  ______ ______
[[Five_Minutes_of_Fame_2019_09_19|September 19th -- ]]
|  ____|_  _/ ____| |    |  ____|__  __|  / __ \|  ____|  ____|
| |__    | || |  __| |    | |__    | |    | |  | | |__  | |__
|  __|  | || | |_ | |    |  __|    | |    | |  | |  __| |  __|
| |    _| || |__| | |____| |____  | |    | |__| | |    | |
|_|    |_____\_____|______|______|  |_|    \____/|_|    |_|


[[Five_Minutes_of_Fame_2019_10_17|October 17th -- ]]


[1] bugs
[[Five_Minutes_of_Fame_2019_11_15|November 21st -- ]]


[[Five_Minutes_of_Fame_2019_12_13|December 19th -- ]]


Third Thurs, 8PM, Noisebridge, 2169 Mission St, SF, CA, Earth Prime
==What is Five Minutes of Fame?==
Five Minutes of Fame (5MoF) is ten five minute talks in an hour, with a short intermission so you can get another beer.
Talks tend to be ad-hoc, poorly-planned, and awe-inspiring.


More info: http://nburl.net/5mof
==How do I sign up to give a talk?==
Get here: http://nburl.net/gethere
Sign up to speak by following the link above, clicking "edit", and adding yourself to the list.
 
Submit your talk now! http://5mof.net/signup/
</pre>


==Why are we doing this?==
==When and Where?==
5MoF happens [[Getting_here|at Noisebridge, 2169 Mission St, San Francisco]] every 3rd Thursday of the month at 8pm.


There are many reasons:
==Questions, comments, and more info==
* It's great for people who are interested in what's going on at Noisebridge -- no need to sit through long lectures.
* Some people are working on projects that are not ready for a full 30 minute or hour long talk, but they want to get their ideas out. Maybe they need help, maybe they want to propose an idea to the Noisebridge community.
* Some people are shy to public speaking and want to practice without giving an "official" conference talk, which can be daunting. This is a great way to try it out, in a community of peers.
* San Francisco is the mecca for startups. If you're trying to sell your idea to someone, you need to be able to explain it in five minutes or less.
* [http://en.wikipedia.org/wiki/Discordianism#Law_of_Fives "The Law of Fives"]


==How can I participate?==
Interested in [[Past 5mofs]]? Or the [https://www.meetup.com/noisebridge/events/hprdhqyxnbxb/ meetup page]?


[[Category:Events]]
==Past 5MoFs==


===[http://5mof.net/signup/ Sign up to speak at 5 Minutes of Fame here!] ===
== 2018 ==


Or just mail me at danny@spesh.com and I will put you on my secret spreadsheet. I will also mail you on the Monday before the event!
*  [[Five_Minutes_of_Fame_2018_01_18|2018-01-18]]
*  [[Five_Minutes_of_Fame_2018_02_15|2018-02-15]]
*  [[Five_Minutes_of_Fame_2018_03_08|2018-03-08]]
*  [[Five_Minutes_of_Fame_2018_03_15|2018-03-15]]
*  [[Five_Minutes_of_Fame_2018_04_19|2018-04-19]]
*  [[Five_Minutes_of_Fame_2018_05_17|2018-05-17]]
*  [[Five_Minutes_of_Fame_2018_06_21|2018-06-21]]
*  [[Five_Minutes_of_Fame_2018_07_19|2018-07-19]]
*  [[Five_Minutes_of_Fame_2018_08_16|2018-08-16]]
*  [[Five_Minutes_of_Fame_2018_10_18|2018-10-18]]
*  [[Five_Minutes_of_Fame_2018_11_15|2018-11-15]]
*  [[Five_Minutes_of_Fame_2018_12_13|2018-12-13]]


==How can I attend?==


Just show up! 2169 Mission St, San Francisco
=== 2017 ===
* [[Five_Minutes_of_Fame_NB10|10 Years of noisebridge]]
* [[Five_Minutes_of_Fame_2017_08_17|2017-08-17]]
* [[Five_Minutes_of_Fame_2017_07_20|2017-07-20]]
* [[Five_Minutes_of_Fame_2017_02_02 | 2017-02-02]]
* [[Five_Minutes_of_Fame_2017_01_26 | 2017-01-26]]


We're located at:<br>'''[[Getting Here|2169 Mission St]], San Francisco'''<br>[http://www.openstreetmap.org/?mlat=37.762352&mlon=-122.419372&zoom=16 OpenStreetMap] - [http://maps.google.com/?q=2169+Mission+Street,+94110 Google Maps]<br>2 blocks South of [[Getting_Here#Getting_Here_by_BART | 16th & Mission BART]]
=== 2016 ===
* [[Five_Minutes_of_Fame_2016_12_08 | 2016-12-08]]
* [[Five_Minutes_of_Fame_2016_12_01 | 2016-12-01]]


=== 2015 ===
* [[Five Minutes of Fame 2015 06 18 | 2015-06-18]]


If for any reason you're unable to attend, you can usually watch it live on our [http://www.ustream.tv/user/noisebridge UStream Channel].
* [[Five Minutes of Fame 2015 05 21 | 2015-05-21]]
=== 2014 ===
* [[Five_Minutes_of_Fame_2014_09_18 | 2014-09-18]]


==Other Questions==
* [[Five_Minutes_of_Fame_2014_05_15 | 2014-05-15]]


Can anyone attend or speak?
* [[Five_Minutes_of_Fame_2014_04_16 | 2014-04-16]]


:''There are a limited number of slots for speakers, and members or regulars are given priority to speak about the projects they are working on. Although there are substitutes for people don't show, schedule early to be assured your 5MoF!''
* [[Five_Minutes_of_Fame_2014_03_20 | 2014-03-20]]


What if I show up late?
:''If you are giving a talk, please notify me so we can rearrange the schedule. If you want to see a talk that you're going to miss, find the person who gave it and chat with them for five minutes :)''
==Past 5MoFs==
=== 2013 ===
=== 2013 ===
* [[Five_Minutes_of_Fame_2013_02_21 | 2013-02-21]]
* [[Five_Minutes_of_Fame_2013_02_21 | 2013-02-21]]
Line 143: Line 131:
* [[Five_Minutes_of_Fame_2011_01_20 | 2011-01-20]]
* [[Five_Minutes_of_Fame_2011_01_20 | 2011-01-20]]
=== 2010 ===
=== 2010 ===
* [[Five_Minutes_of_Fame_2010_01_21 | 2010-01-21]]
* [[Five_Minutes_of_Fame_2010_12_16 | 2010-12-16]]
 
* [[Five_Minutes_of_Fame_2010_11_18 | 2010-11-18]]
 
* [[Five_Minutes_of_Fame_2010_10_21 | 2010-10-21]]
 
* [[Five_Minutes_of_Fame_2010_09_16 | 2010-09-16]]
 
* [[Five_Minutes_of_Fame_2010_08_19 | 2010-08-19]]
 
* [[Five_Minutes_of_Fame_2010_07_15 | 2010-07-15]]
 
* [[Five_Minutes_of_Fame_2010_06_17 | 2010-06-17]]
 
* [[Five_Minutes_of_Fame_2010_05_20 | 2010-05-20]]
 
* [[Five_Minutes_of_Fame_2010_04_15 | 2010-04-15]]
 
* [[Five_Minutes_of_Fame_2010_03_18 | 2010-03-18]]


* [[Five_Minutes_of_Fame_2010_02_18 | 2010-02-18]]
* [[Five_Minutes_of_Fame_2010_02_18 | 2010-02-18]]


* [[Five_Minutes_of_Fame_2010_03_18 | 2010-03-18]]
* [[Five_Minutes_of_Fame_2010_01_21 | 2010-01-21]]
=== 2009 ===
 
* [[Five_Minutes_of_Fame_2009_12_17 | 2009-12-17]]


* [[Five_Minutes_of_Fame_2010_04_15 | 2010-04-15]]
* [[Five_Minutes_of_Fame_2009_11_19 | 2009-11-19]]


* [[Five_Minutes_of_Fame_2010_05_20 | 2010-05-20]]
* [[Five_Minutes_of_Fame_2009_10_15 | 2009-10-15]]


* [[Five_Minutes_of_Fame_2010_06_17 | 2010-06-17]]
* [[Five_Minutes_of_Fame_2009-09-17 | 2009-09-17]]


* [[Five_Minutes_of_Fame_2010_07_15 | 2010-07-15]]
* [[Five Minutes of Fame 2009-08-20 | 2009-08-20]]


* [[Five_Minutes_of_Fame_2010_08_19 | 2010-08-19]]
* [[Five Minutes of Fame 2009-07-16 | 2009-07-16]]


* [[Five_Minutes_of_Fame_2010_09_16 | 2010-09-16]]
* [[Five Minutes of Fame 2009-06-18 | 2009-06-18]]


* [[Five_Minutes_of_Fame_2010_10_21 | 2010-10-21]]
* [[Five Minutes of Fame 2009-05-21 | 2009-05-21]]


* [[Five_Minutes_of_Fame_2010_11_18 | 2010-11-18]]
* [[Five Minutes of Fame 2009-04-16 | 2009-04-16]]


* [[Five_Minutes_of_Fame_2010_12_16 | 2010-12-16]]
* [[Five Minutes of Fame 2009-03-19 | 2009-03-19]]
=== 2009 ===


* [[Five Minutes of Fame 2009-02-19 | 2009-02-19]]
* [[Five Minutes of Fame 2009-02-19 | 2009-02-19]]


* [[Five Minutes of Fame 2009-03-19 | 2009-03-19]]
== CODE ==
 
<pre>
/*
  _  _  _____ __  __  ____  ______
_| || |_| ____|  \/  |/ __ \|  ____| Noisebridge 8PM third Thursdays
|_  __  _| |__ | \  / | |  | | |__    Years & years of Childlike Wonder &
_| || |_|___ \| |\/| | |  | |  __|  Adult Technological Themes in
|_  __  _|___) | |  | | |__| | |      San Francisco's XXXth Finest
  |_||_| |____/|_|  |_|\____/|_|      Hacker Show and Tell.
 
 
_    _            _      _  _            _____  _                  _  _
| |  | |          | |    | | | |          |  __ \| |                | | | |
| |__| | __ _  ___| | __ | |_| |__  ___  | |__) | | __ _ _ __  ___| |_| |
|  __  |/ _` |/ __| |/ / | __| '_ \ / _ \ |  ___/| |/ _` | '_ \ / _ \ __| |
| |  | | (_| | (__|  <  | |_| | | |  __/ | |    | | (_| | | | |  __/ |_|_|
|_|  |_|\__,_|\___|_|\_\  \__|_| |_|\___| |_|    |_|\__,_|_| |_|\___|\__(_)
                                                                         
 
Third Thurs, 8PM, Noisebridge, 2169 Mission St, SF, CA, Earth Prime
 
More info: http://nburl.net/5mof
Get here: http://nburl.net/gethere
 
Submit your talk now! http://5mof.net/signup/
 
                                                            1/13/14
                                                              -thex
                                                              #fort
                                                             
        Hardware h4x0r extradonaire, the hilaire.
 
    Send b33r or b!tcoin to noisebridge, c/o #fort
 
*/
 
// Number of segments (Shift Register * 8)
#define numOfRegisterPins 24
 
int SER_Pin = 8;  //pin 14 on the 75HC595
int RCLK_Pin = 9;  //pin 12 on the 75HC595
int SRCLK_Pin = 10; //pin 11 on the 75HC595
 
// Number of seconds to count from (5 minutes)
int counter = 301;
 
boolean registers[numOfRegisterPins];
 
// Time has expired, count up
boolean timeUp = false;
 
int segments[] = {1, 2, 4, 5, 6, 7, 0, // 0
                  2, 4, 0, 0, 0, 0 ,0, // 1
                  1, 2, 3, 6, 7, 0, 0, // 2
                  1, 2, 3, 4 ,7, 0, 0, // 3
                  2, 3, 4, 5, 0, 0, 0, // 4
                  1, 3, 4, 5, 7, 0, 0, // 5
                  3, 4, 5, 6, 7, 0, 0, // 6
                  1, 2, 4, 0, 0, 0, 0, // 7
                  1, 2, 3, 4, 5, 6, 7, // 8
                  1, 2, 3, 4, 5, 7, 0  // 9
                                      // A
                                      // B
                                      // C
                                      // D
                                      // E
                                    };// F
 
void setup()
{
  pinMode(SER_Pin, OUTPUT);
  pinMode(RCLK_Pin, OUTPUT);
  pinMode(SRCLK_Pin, OUTPUT);
}             


* [[Five Minutes of Fame 2009-04-16 | 2009-04-16]]
void loop()
{
  int minutes, seconds;
 
  if (!timeUp)
  { 
    if(--counter < 0)
    {
      counter = 1;
      timeUp = true;
    }
  } else {
 
    if (++counter > 599)
    {
      n0153();
    }
  }
 
  minutes = floor(counter / 60);
  seconds = counter - (minutes * 60);


* [[Five Minutes of Fame 2009-05-21 | 2009-05-21]]
  setDigits(minutes * 100 + seconds);


* [[Five Minutes of Fame 2009-06-18 | 2009-06-18]]
  delay(1000);
}


* [[Five Minutes of Fame 2009-07-16 | 2009-07-16]]
void setDigits(int num)
{
  int digit0, digit1, digit2;
 
  clearRegisters();
  writeRegisters();
 
  digit0 = num;
  while(digit0 >= 10)
    digit0 -= 10;
 
  digit1 = (num - digit0) / 10;
  while(digit1 >= 10)
    digit1 -= 10;
   
  digit2 = (num - digit0 - digit1 * 10) / 100;
  setDigit(0, digit0);
  setDigit(1, digit1);
  setDigit(2, digit2);
 
  writeRegisters();
}


* [[Five Minutes of Fame 2009-08-20 | 2009-08-20]]
// Update individual digit with number
void setDigit(int digit, int num)
{
  // Determine register offset
  int offset = digit * 8;
 
  // Determine num offset
  int numOff = num * 7;
 
  // Set on segments HIGH
  for (int i = 0; i < 7; i++)
  {
    if (segments[i + numOff] > 0)
      registers[segments[i + numOff] + offset] = HIGH;
  }
}


* [[Five_Minutes_of_Fame_2009-09-17 | 2009-09-17]]
//set all register pins to LOW
void clearRegisters()
{
  for(int i = 0; i < numOfRegisterPins; i++)
    registers[i] = LOW;
}


* [[Five_Minutes_of_Fame_2009_10_15 | 2009-10-15]]


* [[Five_Minutes_of_Fame_2009_11_19 | 2009-11-19]]
//Set and display registers
//Only call AFTER all values are set how you would like (slow otherwise)
void writeRegisters()
{
  digitalWrite(RCLK_Pin, LOW);
 
  for(int i = 0; i < numOfRegisterPins; i++)
  {
    digitalWrite(SRCLK_Pin, LOW);
   
    digitalWrite(SER_Pin, registers[i]);
   
    digitalWrite(SRCLK_Pin, HIGH);
  }
  digitalWrite(RCLK_Pin, HIGH);
}


* [[Five_Minutes_of_Fame_2009_12_17 | 2009-12-17]]
void n0153()
{
  while(true)
  {
    for (int i = 0; i < numOfRegisterPins; i++)
      registers[i] = random(2) > 0.5 ? HIGH : LOW;
    writeRegisters();
    delay(round(random(314)));
  }
}
</pre>

Revision as of 18:09, 16 July 2020


5MoF


8:00pm Third Thursdays of every month!


[--> broadcasting to the internet (Zoom) <--]


June 18th 2020

Next: July 16th 2020

Prev: June 18th 2020

5 MoF Template

Noisebridge | About | Visit | 272 | Manual | Contact | Guilds | Resources | Events | Projects | 5MoF | Meetings | Donate | (Edit)
Five Minutes of Fame | Past 5mofs | 5MoF Meetup Page | 5MOF Template | Five Minutes of Fame Speaker Invitation | (Edit)

Five Minutes of Fame (5MoF) is ten five minute talks in an hour, with a short intermission so you can get another beer. Talks tend to be ad-hoc, poorly-planned, and awe-inspiring.

Sign up to speak by following the link above, clicking "edit", and adding yourself to the list.

5MoF happens at Noisebridge, 2169 Mission St, San Francisco every 3rd Thursday of the month at 8pm.


2019

January 17th -- 5MoF 2019

February 21st --

March 21st --

April 18th --

May 16th --

June 20th --

July 18th --

August 15th --

September 19th --

October 17th --

November 21st --

December 19th --

What is Five Minutes of Fame?

Five Minutes of Fame (5MoF) is ten five minute talks in an hour, with a short intermission so you can get another beer. Talks tend to be ad-hoc, poorly-planned, and awe-inspiring.

How do I sign up to give a talk?

Sign up to speak by following the link above, clicking "edit", and adding yourself to the list.

When and Where?

5MoF happens at Noisebridge, 2169 Mission St, San Francisco every 3rd Thursday of the month at 8pm.

Questions, comments, and more info

Interested in Past 5mofs? Or the meetup page?

Past 5MoFs

2018


2017

2016

2015

2014

2013

2012

2011

2010

2009

CODE

/*
   _  _   _____ __  __  ____  ______
 _| || |_| ____|  \/  |/ __ \|  ____| Noisebridge 8PM third Thursdays
|_  __  _| |__ | \  / | |  | | |__    Years & years of Childlike Wonder &
 _| || |_|___ \| |\/| | |  | |  __|   Adult Technological Themes in
|_  __  _|___) | |  | | |__| | |      San Francisco's XXXth Finest
  |_||_| |____/|_|  |_|\____/|_|      Hacker Show and Tell.


 _    _            _      _   _            _____  _                  _   _ 
| |  | |          | |    | | | |          |  __ \| |                | | | |
| |__| | __ _  ___| | __ | |_| |__   ___  | |__) | | __ _ _ __   ___| |_| |
|  __  |/ _` |/ __| |/ / | __| '_ \ / _ \ |  ___/| |/ _` | '_ \ / _ \ __| |
| |  | | (_| | (__|   <  | |_| | | |  __/ | |    | | (_| | | | |  __/ |_|_|
|_|  |_|\__,_|\___|_|\_\  \__|_| |_|\___| |_|    |_|\__,_|_| |_|\___|\__(_)
                                                                           

Third Thurs, 8PM, Noisebridge, 2169 Mission St, SF, CA, Earth Prime

More info: http://nburl.net/5mof
Get here: http://nburl.net/gethere

Submit your talk now! http://5mof.net/signup/

                                                            1/13/14
                                                              -thex
                                                              #fort
                                                              
        Hardware h4x0r extradonaire, the hilaire.

     Send b33r or b!tcoin to noisebridge, c/o #fort

*/

// Number of segments (Shift Register * 8)
#define numOfRegisterPins 24

int SER_Pin = 8;   //pin 14 on the 75HC595
int RCLK_Pin = 9;  //pin 12 on the 75HC595
int SRCLK_Pin = 10; //pin 11 on the 75HC595

// Number of seconds to count from (5 minutes)
int counter = 301;

boolean registers[numOfRegisterPins];

// Time has expired, count up
boolean timeUp = false;

int segments[] = {1, 2, 4, 5, 6, 7, 0, // 0
                  2, 4, 0, 0, 0, 0 ,0, // 1
                  1, 2, 3, 6, 7, 0, 0, // 2
                  1, 2, 3, 4 ,7, 0, 0, // 3
                  2, 3, 4, 5, 0, 0, 0, // 4
                  1, 3, 4, 5, 7, 0, 0, // 5
                  3, 4, 5, 6, 7, 0, 0, // 6
                  1, 2, 4, 0, 0, 0, 0, // 7
                  1, 2, 3, 4, 5, 6, 7, // 8 
                  1, 2, 3, 4, 5, 7, 0  // 9
                                       // A
                                       // B
                                       // C
                                       // D
                                       // E
                                     };// F

void setup()
{
  pinMode(SER_Pin, OUTPUT);
  pinMode(RCLK_Pin, OUTPUT);
  pinMode(SRCLK_Pin, OUTPUT);
}               

void loop()
{
  int minutes, seconds;
  
  if (!timeUp)
  {  
    if(--counter < 0)
    {
      counter = 1;
      timeUp = true;
    }
  } else {
   
    if (++counter > 599)
    {
       n0153();
    }
  }
   
  minutes = floor(counter / 60);
 
  seconds = counter - (minutes * 60);

  setDigits(minutes * 100 + seconds);

  delay(1000);
}

void setDigits(int num)
{
  int digit0, digit1, digit2;
  
  clearRegisters();
  writeRegisters();
  
  digit0 = num;
  while(digit0 >= 10)
    digit0 -= 10;
  
  digit1 = (num - digit0) / 10;
  while(digit1 >= 10)
    digit1 -= 10;
    
  digit2 = (num - digit0 - digit1 * 10) / 100;
 
  setDigit(0, digit0);
  setDigit(1, digit1);
  setDigit(2, digit2);
  
  writeRegisters();
}

// Update individual digit with number
void setDigit(int digit, int num)
{
  // Determine register offset
  int offset = digit * 8;
  
  // Determine num offset
  int numOff = num * 7;
  
  // Set on segments HIGH
  for (int i = 0; i < 7; i++)
  {
    if (segments[i + numOff] > 0)
      registers[segments[i + numOff] + offset] = HIGH;
  }
}

//set all register pins to LOW
void clearRegisters()
{
  for(int i = 0; i < numOfRegisterPins; i++)
    registers[i] = LOW;
} 


//Set and display registers
//Only call AFTER all values are set how you would like (slow otherwise)
void writeRegisters()
{
  digitalWrite(RCLK_Pin, LOW);
  
  for(int i = 0; i < numOfRegisterPins; i++)
  {
    digitalWrite(SRCLK_Pin, LOW);
    
    digitalWrite(SER_Pin, registers[i]);
    
    digitalWrite(SRCLK_Pin, HIGH);
  }
 
  digitalWrite(RCLK_Pin, HIGH);
}

void n0153()
{
  while(true)
  {
    for (int i = 0; i < numOfRegisterPins; i++)
      registers[i] = random(2) > 0.5 ? HIGH : LOW;
    writeRegisters();
    delay(round(random(314)));
  }
}