Fun with Microsoft’s Online OneDrive ….

So MSFT…in a last gasp effort to get you to use their software; is offering a newer; slightly more useful version of DropBox. You not only get some free cloud space; but instead of loading you up with a 90-day bloatware trial of Office 365 [as they did last time], they give you trial access to OneDrive.com (sorry no backlink –btw caution; the parody mktg doc im going to try and post HAS active links, one will take right back to the homepage at Tapper7.com; but the rest will take you to #NSFW in any way shape or form sites….just dont click them (crud now I KNOW you will…) anyway lets try n post this….it should be obvious what was weitten by Microsoft Marketing and what was edited by this writer ….Test – see if link to awful parody works ….Getting started with OneDrive parody by Tapper v0
Happy 2017!

Support our sponsor below – help keep The Pick running like a well-oiled ..err… ok I really mailed this one in – better content and a new podcast coming soon – we have new equipment here at SStudios. Woot!


Update – WP doesnt want to post their PDF either – so here is the text in raw cut & paste form – remember I changed the link-rels; (if they work which I doubt…) dont click if at work or want to retain marriage! xD
What is OneDrive?
OneDrive is another shit product from Microsoft. And it’s free[mium] this means it has in-app purchases so we can try to trick you out of your $ or try to convince you to buy crap you don’t need. You get 15 GB of free storage with your Microsoft account, so you can store all types of pr0n in one place and get to them from any Starbucks
Friends & family can easily hack into your OneDrive files, including photos, login credentials, dating Websites and your bank account – even your “secret” pr0n videos, And OneDrive works with Windows and Office (in case you didn’t know that your OS is compatible with our nearly value-less desktop publishing programs such as “Word” “Excel” “Access” and PowerPoint – you may still use these programs if you fell through a wormhole and landed in 1998, so it’s simple to work with OneDrive files on your computer and collaborate with other people on documents. You can do this for free using Google Docs; or if you need to collaborate at the “above two guys running a weed clinic” -level; we have SharePoint; Sun, oops, we mean Oracle also has a far better product for this; but it does MRP/ERP and other useful shit rendering “Office” utterly useless; they call it Salesforce.com. On a budget? Open-source pioneers Apache offer a suite of tools for publishing; drawing; collaboration; dB, spreadsheets and all sorts of other useful functions; it’s called OpenOffice.
The clock is really ticking on our ability to make $ on Office so buy now….please!
Add files from your computer
To add files to OneDrive, just drag them into your computer’s OneDrive folder using File Explorer or Finder. The files will automatically sync across all of your devices that have OneDrive installed (so not your iPhone, your Mac desktop or your Android device (sorry!). So you can drag a photo from your laptop to your
OneDrive—and later open it in OneDrive on your phone. By that we mean the Windows Phone you don’t own.
Add files from your phone or tablet
To add photos and videos on your phone or tablet to OneDrive, use the OneDrive app. Even better—you can also choose to turn on camera backup to automatically save the photos and videos you take to OneDrive. So even if you lose your phone or tablet, you won’t lose your memories!
Add files using the OneDrive website
You can also add files from any computer, tablet, or phone by using the OneDrive website. Just go to OneDrive.com, sign in, and then tap or click Upload.
Share files
You can share individual files and even entire folders without attaching anything. Send an email with a link to what you’d like to share (in case you didn’t know you could already do this using any email client made in the last 25 years)—and rest assured that everything else in your OneDrive will stay private (except for all the people who already fished, socially engineered, brute-forced or simply requested your login credentials). To share items from the OneDrive website, just select the check box in the upper-right corner of the item and choose Share.
See, in software engineering; the requirements were to “add a method to share objects with other users” Sharing takes one step IRL; I hand you my smoke – done. But since this is Microsoft; where we begin sentemnces with words like “but,” “and” ….we build outdated software one wants or needs; our OS will crash if you forget to reboot; perhaps our most famously idiotic OS UI/UX design flaw goes all the way back to our first GUI; Windows 3.0 (which Xerox’s Parc Research Facility allowed us AND a marketing firm called Blueberry [or something] to build a OS’s that would put a PC in every home in America, later the Western World; now nearly the Globe) so it wasn’t us that invented it; but we know when to repurpose software & weasel out of paying! Anyway; as we started to create Windows; the topic of “shutting down” the computer came up….a senior engineer who hated C & C++ (said we should built it in Ada…anyway) he said “we already made “start” button; let’s just put it there.” A pesky C++ programmer piped up and said “…but stop is the opposite of start, therefore one can’t be designed as a subset of the other.” He was promptly fired. We hired another C/C++ guy who nodded and agreed with the sr. Engineer in all the right places; so we released his family from captivity and had the FBI drop the treason charge against him.
Collaborate with Office
OneDrive works with Office, so it’s easy to collaborate [its also easy to repeat yourself 3 times in 2 sentences!). Instead of sending around different copies of documents, you can give other people permission
to edit the document directly (just like any other CMS on the market!). You can even collaborate with people who don’t have Office installed on their computers—they can open and edit documents in OneDrive using Office Online. Of course; we aren’t responsible for other OS’s so the preceding statement is not only untested –if it fails its YOUR FUCKIN PROBLEM JACK!
Get OneDrive on your devices
Use OneDrive on your computer, tablet, and phone to get to your stuff from anywhere. You can download OneDrive apps at OneDrive.com/download.
Where can I learn more? For more info, check out OneDrive.com/about or go to OneDrive.com/support.
Whats the best way to kill myself?
Auto-erotic asphyxiation is in style for winter 2017!

Let’s play…I mean…create a prototype ’13’ deck aka Korean Poker!

If you are like me you played this addictive game at lunch, on the bus, during class…whatever you played it constantly because it’s seriously fun and a great way to pass the time. At Capo Valley, we loved this game because it was winnable even if you were dealt a shitty hand, the game encouraged a great deal of shit-talking and merriment. We’d also enhanced it with “insult rules” such as, while dealing, you throw a few of them face-up, just to piss off whoever you want to piss off. It also lended itself to so much cheating that we overlayed a rule; “If no one saw it, it wasn’t cheating.” Technically that is true in the absolute…the difference is that we encouraged cheating because it added more layers of fun, strategy, dexterity, options to win…the perfect game for college-prep band geeks who think to much and are fiercely competitive.

Common ways to cheat when you re the dealer is place a card you want on the bottom of the deck, dealing, 13 cards to each player beginning with west, you get the final card. Desirable cards include the 3 of clubs (whomever holds this card goes 1st…it is much like other games where whomever runs out 1st wins, going 1st on a good hand could end it). The ace of hearts is valued – any run ending in this card is unbeatable (thus you get to go again). Likewise, the 2 of hearts is valued for being the highest card – it is not unbeatable (a two-killer is a double-run-of-three such as 4,4,5,5,6,6) but it’s always nice to have, especially late in the game when most pairs and runs are likely to be all down. Another great way to cheat it to simply hide a card (or two, or more…) wherever you can hide it. The best place seemed to be under the left thigh or up my right sleeve. Another “layered” rule is that if you are caught cheating you forfeit the game (and winning if gambling is involved) – simply trying to look at other people’s cards is another surprisingly easy way cheat.

I won’t waste time with any more specific rules…most of you have never played it…still, the f-ed up ways to mess with the game applies to all of them (and that only scratches the surface) and you can apply the tenets and ideas in this post to YOUR preferred card game.

On topic – I’ve been brushing up on mu Java programming again so as a thought experiment I began to build a “Card” class (ADT, data-type, etc). Once I got that to work I decided to test it by creating an array (a list) of them and ordering them in the exact order they would go in 13. On higher level of this project are the following:

  1. A Deck Class
  2. A 13 Class
  3. A user-interface for the game itself

For now, I simply used my Card data-type to see if I could use a nested-for loop to populate the deck with cards as they from low to high in the game of 13. Software Engineers know that regardless of language, arrays begin at zero. In an object-oriented mode, I decided that “zero” had so little to do with cards/decks/card-games that I would use a place-holder for it. What else is not used…I mean…in actual card games? For most; the Joker(s), so in the interest of something w/in striking distance of elegant design; (in pseuodocode) 0=(string)”joker”
The following is the output from a Deck prototype, which hints at an actual 13 prototype, which is a thought rxp[eriment for the future…particularly the design of three players who can strategize against me…and..on an absurd level of abstraction…try to cheat me if the opportunity comes up and allow me to cheat the non-player-characters.

Below is the successful output from the v0 prototype of a 13-Deck
run:
whomever gets the 3 of spades goes first.
The following list will create a deck of 52 cards in ’13’ order
1. created the 3 of spades
2. created the 3 of clubs
3. created the 3 of diamonds
4. created the 3 of hearts
5. created the 4 of spades
6. created the 4 of clubs
7. created the 4 of diamonds
8. created the 4 of hearts
9. created the 5 of spades
10. created the 5 of clubs
11. created the 5 of diamonds
12. created the 5 of hearts
13. created the 6 of spades
14. created the 6 of clubs
15. created the 6 of diamonds
16. created the 6 of hearts
17. created the 7 of spades
18. created the 7 of clubs
19. created the 7 of diamonds
20. created the 7 of hearts
21. created the 8 of spades
22. created the 8 of clubs
23. created the 8 of diamonds
24. created the 8 of hearts
25. created the 9 of spades
26. created the 9 of clubs
27. created the 9 of diamonds
28. created the 9 of hearts
29. created the 10 of spades
30. created the 10 of clubs
31. created the 10 of diamonds
32. created the 10 of hearts
33. created the J of spades
34. created the J of clubs
35. created the J of diamonds
36. created the J of hearts
37. created the Q of spades
38. created the Q of clubs
39. created the Q of diamonds
40. created the Q of hearts
41. created the K of spades
42. created the K of clubs
43. created the K of diamonds
44. created the K of hearts
45. created the A of spades
46. created the A of clubs
47. created the A of diamonds
48. created the A of hearts
49. created the 2 of spades
50. created the 2 of clubs
51. created the 2 of diamonds
52. created the 2 of hearts
*QA test* The highest ranking card in 13 is the 2 of hearts
BUILD SUCCESSFUL (total time: 0 seconds)

It works! Created using the Netbeans IDE 8.0.2 on a win8.1 box using the Java SE 8 or Java 1.8 as I call it. SRC follows:

package card;
/** WIP - create a card ADT and enumerate it into a deck
* per "13" rules aka Korean Poker
* @author Tapper7.com last stable build - 12/15 &c ssstudios, los angeles, ca
*/
public class Card{
int suit;
int rank;
Card(){
this.suit = 0;
this.rank = 0;
}//null constr
Card(int suit, int rank){
this.suit = suit;
this.rank = rank;
}//fully-formed constructor to be used when a new card is instantiated
public static void showCard(Card theCard){
//cards are ranked as they are in 13 aka korean poker
//"jokers" hold null memory space so we arent using zeroes
String[] s = {"joker", "spades", "clubs", "diamonds", "hearts"};
String[] r = {"joker", "3", "4", "5", "6", "7", "8",
"9", "10", "J", "Q", "K", "A", "2"};
System.out.println(r[theCard.rank] + " of " + s[theCard.suit]);
}

public static void main(String[] args){
//create an array of cards
Card[] mydeck = new Card[54]; //array is oversized for debug
mydeck[0] = new Card(1,1);       //initialize
//test that the lowest card is created correctly
System.out.print(“whomever gets the “);
Card.showCard(mydeck[0]);
System.out.println(“goes first.”);
//populate the 13 deck in order fro m low to high
int currentCard = 1;
int suits = 1;
int ranks = 1;
System.out.println(“The following list will create a deck of 52 cards in ’13’ order”);
for(ranks = 1; ranks < 14; ranks++){//outerloop the ranks from 3 to 2
for(suits = 1; suits < 5; suits++){
mydeck[currentCard] = new Card(suits, ranks);
System.out.print(currentCard+”. “);
System.out.print(” created the “);
Card.showCard(mydeck[currentCard]);
currentCard++; //increment deck position
}//end inner loop
}//end outer loop
//test that the algorithm put the highest card in the correct index:
System.out.print(“*QA test* The highest ranking card in 13 is the “);
Card.showCard(mydeck[52]);
}//end mn
}//end prototype
thanks for stopping by! and now [below], a word form one of our sponsors

The Binary Power Series and Java 1.8 ….

A numeric depiction of 18.44 Quintillion

Series follow a specific pattern and obey explicit, ineffable rules, like prime numbers….
1, 3, 5, 7, 11, 13, 17, 19, 23…. Or a times-table such as 9…. 18, 27, 36, 45, 54, 63, 72, 81, 90, 99. You get the idea, right? (I hope so or you’ll find this post incredibly boring).
Computers store information in bits. A bit is one memory cell that is known by the CPU to be TRUE or FALSE, one or zero. In the parlance of electrical engineering, this equates to either “very very low voltage” or “hardly any voltage at all.”
A byte is eight bits: 0000 0000 thru 1111 1111; 1-256

Consider 0000, 0001, 0010, 0011, 0100, 0101, 0111, 1111 -OR- (in English) one, two, three, four five six, seven, eight. To be literal, it’s actually zero through seven, but let’s not get muddy the waters or scare off any readers due to the “maths.” You don’t need to know much math to understand this information…. So a computer needs half of one byte in order to express “seven” to the world “1111.”

Eight bits comprises two to the eighth power (256) possible binary combos. That’s enough to create a color palette acceptable to the human eye, In RGB-space, three eight-bit numbers (0,0,0) being “K” or Black and (255,255,255) being White – or is it vice-versa? You can always go to www.org for quick reference on non-abstract, “code flavors” such as the above assertion. Ok, so three SETs of 256 bits can broadcast “Game of Thrones” on your laptop screen adequaetely. This is what makes 64-bit machines so exciting…64 is a small number….2^64 (which is the definition of a 64-bit sys) ACTUALLY equals about 18.5 QUINTILLION, or 18.5 x a trillion x a trillion. To give you an idea of size…if you started counting as fast as you could from the time you could speak…or comprehend it and count in your head; if you lived an avg. lifespan (~72.9 yrs) you’d be spitting out “one billion” with your last dying breath. A 64-bit system can express and count to a billion in fractions of a millisecond. So what concerns us about this TODAY?
With big data (all the rage) comes big numbers, so I’ve been thinking about them and toying with the limits of large number calculation and output using my laptop’s on-board calculator…it can express a google correctly using a semi-correct scientific notation: “1.e+100” –by that, Microsoft means to say “a one followed by 100 zeroes.” I have no way of knowing HOW they arrive at a correct answer to 10^100 considering that the largest unsigned long integer that can be stored in one memory cell by a 64-bit system is stated above..”a 1 followed by 19 numbers” … this means the Calculator App you use combines multiple long integers and uses extra memory to store anything above 2^64 = 18,446,744,073,709,551,616.

Using the Netbeans IDE, I created a program that asks the user to provide a number to act as a power of two. It then calculates and prints the subsequent results to the screen. Integers are preffered because they are fast, accurate and take up very little memory: 16 bits or 2 bytes, which can express numbers on the range of (-32678 to +32678). Integers (or “ints”) can ONLY BE WHOLE NUMBERS, that is, 1.5 is not an int, nor is e or pie or the square root of two.

Program output for common cases:
How many iterations of the Binary Power Series would you like to see calculated and printed?
0
Ok - you're the boss. No iterations--> no output
How many iterations of the Binary Power Series would you like to see calculated and printed?
1
Binary Power Series 2 to the power of 0 = 1
BUILD SUCCESSFUL (total time: 6 seconds)
How many iterations of the Binary Power Series would you like to see calculated and printed?
2
Binary Power Series 2 to the power of 0 = 1
Binary Power Series 2 to the power of 1 = 2
BUILD SUCCESSFUL (total time: 4 seconds)
How many iterations of the Binary Power Series would you like to see calculated and printed?
4
Binary Power Series 2 to the power of 0 = 1
Binary Power Series 2 to the power of 1 = 2
Binary Power Series 2 to the power of 2 = 4
Binary Power Series 2 to the power of 3 = 8
BUILD SUCCESSFUL (total time: 6 seconds)
How many iterations of the Binary Power Series would you like to see calculated and printed?
8
Binary Power Series 2 to the power of 0 = 1
Binary Power Series 2 to the power of 1 = 2
Binary Power Series 2 to the power of 2 = 4
Binary Power Series 2 to the power of 3 = 8
Binary Power Series 2 to the power of 4 = 16
Binary Power Series 2 to the power of 5 = 32
Binary Power Series 2 to the power of 6 = 64
Binary Power Series 2 to the power of 7 = 128
BUILD SUCCESSFUL (total time: 15 seconds)

How many iterations of the Binary Power Series would you like to see calculated and printed?
16
Binary Power Series 2 to the power of 0 = 1
Binary Power Series 2 to the power of 1 = 2
Binary Power Series 2 to the power of 2 = 4
Binary Power Series 2 to the power of 3 = 8
Binary Power Series 2 to the power of 4 = 16
Binary Power Series 2 to the power of 5 = 32
Binary Power Series 2 to the power of 6 = 64
Binary Power Series 2 to the power of 7 = 128
Binary Power Series 2 to the power of 8 = 256
Binary Power Series 2 to the power of 9 = 512
Binary Power Series 2 to the power of 10 = 1024
Binary Power Series 2 to the power of 11 = 2048
Binary Power Series 2 to the power of 12 = 4096
Binary Power Series 2 to the power of 13 = 8192
Binary Power Series 2 to the power of 14 = 16384
Binary Power Series 2 to the power of 15 = 32768
BUILD SUCCESSFUL (total time: 3 seconds)
How many iterations of the Binary Power Series would you like to see calculated and printed?
32
Binary Power Series 2 to the power of 0 = 1
Binary Power Series 2 to the power of 1 = 2
Binary Power Series 2 to the power of 2 = 4
Binary Power Series 2 to the power of 3 = 8
Binary Power Series 2 to the power of 4 = 16
Binary Power Series 2 to the power of 5 = 32
Binary Power Series 2 to the power of 6 = 64
Binary Power Series 2 to the power of 7 = 128
Binary Power Series 2 to the power of 8 = 256
Binary Power Series 2 to the power of 9 = 512
Binary Power Series 2 to the power of 10 = 1024
Binary Power Series 2 to the power of 11 = 2048
Binary Power Series 2 to the power of 12 = 4096
Binary Power Series 2 to the power of 13 = 8192
Binary Power Series 2 to the power of 14 = 16384
Binary Power Series 2 to the power of 15 = 32768
Binary Power Series 2 to the power of 16 = 65536
Binary Power Series 2 to the power of 17 = 131072
Binary Power Series 2 to the power of 18 = 262144
Binary Power Series 2 to the power of 19 = 524288
Binary Power Series 2 to the power of 20 = 1048576
Binary Power Series 2 to the power of 21 = 2097152
Binary Power Series 2 to the power of 22 = 4194304
Binary Power Series 2 to the power of 23 = 8388608
Binary Power Series 2 to the power of 24 = 16777216
Binary Power Series 2 to the power of 25 = 33554432
Binary Power Series 2 to the power of 26 = 67108864
Binary Power Series 2 to the power of 27 = 134217728
Binary Power Series 2 to the power of 28 = 268435456
Binary Power Series 2 to the power of 29 = 536870912
Binary Power Series 2 to the power of 30 = 1073741824
Binary Power Series 2 to the power of 31 = 2147483648
BUILD SUCCESSFUL (total time: 4 seconds)

….now let’s see what happens when we get close to 64 iterations:

How many iterations of the Binary Power Series would you like to see calculated and printed?
63
Binary Power Series 2 to the power of 0 = 1
Binary Power Series 2 to the power of 1 = 2
Binary Power Series 2 to the power of 2 = 4
Binary Power Series 2 to the power of 3 = 8
Binary Power Series 2 to the power of 4 = 16
Binary Power Series 2 to the power of 5 = 32
Binary Power Series 2 to the power of 6 = 64
Binary Power Series 2 to the power of 7 = 128
Binary Power Series 2 to the power of 8 = 256
Binary Power Series 2 to the power of 9 = 512
Binary Power Series 2 to the power of 10 = 1024
Binary Power Series 2 to the power of 11 = 2048
Binary Power Series 2 to the power of 12 = 4096
Binary Power Series 2 to the power of 13 = 8192
Binary Power Series 2 to the power of 14 = 16384
Binary Power Series 2 to the power of 15 = 32768
Binary Power Series 2 to the power of 16 = 65536
Binary Power Series 2 to the power of 17 = 131072
Binary Power Series 2 to the power of 18 = 262144
Binary Power Series 2 to the power of 19 = 524288
Binary Power Series 2 to the power of 20 = 1048576
Binary Power Series 2 to the power of 21 = 2097152
Binary Power Series 2 to the power of 22 = 4194304
Binary Power Series 2 to the power of 23 = 8388608
Binary Power Series 2 to the power of 24 = 16777216
Binary Power Series 2 to the power of 25 = 33554432
Binary Power Series 2 to the power of 26 = 67108864
Binary Power Series 2 to the power of 27 = 134217728
Binary Power Series 2 to the power of 28 = 268435456
Binary Power Series 2 to the power of 29 = 536870912
Binary Power Series 2 to the power of 30 = 1073741824
Binary Power Series 2 to the power of 31 = 2147483648
Binary Power Series 2 to the power of 32 = 4294967296
Binary Power Series 2 to the power of 33 = 8589934592
Binary Power Series 2 to the power of 34 = 17179869184
Binary Power Series 2 to the power of 35 = 34359738368
Binary Power Series 2 to the power of 36 = 68719476736
Binary Power Series 2 to the power of 37 = 137438953472
Binary Power Series 2 to the power of 38 = 274877906944
Binary Power Series 2 to the power of 39 = 549755813888
Binary Power Series 2 to the power of 40 = 1099511627776
Binary Power Series 2 to the power of 41 = 2199023255552
Binary Power Series 2 to the power of 42 = 4398046511104
Binary Power Series 2 to the power of 43 = 8796093022208
Binary Power Series 2 to the power of 44 = 17592186044416
Binary Power Series 2 to the power of 45 = 35184372088832
Binary Power Series 2 to the power of 46 = 70368744177664
Binary Power Series 2 to the power of 47 = 140737488355328
Binary Power Series 2 to the power of 48 = 281474976710656
Binary Power Series 2 to the power of 49 = 562949953421312
Binary Power Series 2 to the power of 50 = 1125899906842624
Binary Power Series 2 to the power of 51 = 2251799813685248
Binary Power Series 2 to the power of 52 = 4503599627370496
Binary Power Series 2 to the power of 53 = 9007199254740992
Binary Power Series 2 to the power of 54 = 18014398509481984
Binary Power Series 2 to the power of 55 = 36028797018963968
Binary Power Series 2 to the power of 56 = 72057594037927936
Binary Power Series 2 to the power of 57 = 144115188075855872
Binary Power Series 2 to the power of 58 = 288230376151711744
Binary Power Series 2 to the power of 59 = 576460752303423488
Binary Power Series 2 to the power of 60 = 1152921504606846976
Binary Power Series 2 to the power of 61 = 2305843009213693952
Binary Power Series 2 to the power of 62 = 4611686018427387904

Sixty-four is the borderline on accuracy using unsigned long integers (as stated above) so I coded it’s calculation and warning appropriately:

How many iterations of the Binary Power Series would you like to see calculated and printed?
64
Binary Power Series 2 to the power of 0 = 1
Binary Power Series 2 to the power of 1 = 2
Binary Power Series 2 to the power of 2 = 4
Binary Power Series 2 to the power of 3 = 8
Binary Power Series 2 to the power of 4 = 16
Binary Power Series 2 to the power of 5 = 32
Binary Power Series 2 to the power of 6 = 64
Binary Power Series 2 to the power of 7 = 128
Binary Power Series 2 to the power of 8 = 256
Binary Power Series 2 to the power of 9 = 512
Binary Power Series 2 to the power of 10 = 1024
Binary Power Series 2 to the power of 11 = 2048
Binary Power Series 2 to the power of 12 = 4096
Binary Power Series 2 to the power of 13 = 8192
Binary Power Series 2 to the power of 14 = 16384
Binary Power Series 2 to the power of 15 = 32768
Binary Power Series 2 to the power of 16 = 65536
Binary Power Series 2 to the power of 17 = 131072
Binary Power Series 2 to the power of 18 = 262144
Binary Power Series 2 to the power of 19 = 524288
Binary Power Series 2 to the power of 20 = 1048576
Binary Power Series 2 to the power of 21 = 2097152
Binary Power Series 2 to the power of 22 = 4194304
Binary Power Series 2 to the power of 23 = 8388608
Binary Power Series 2 to the power of 24 = 16777216
Binary Power Series 2 to the power of 25 = 33554432
Binary Power Series 2 to the power of 26 = 67108864
Binary Power Series 2 to the power of 27 = 134217728
Binary Power Series 2 to the power of 28 = 268435456
Binary Power Series 2 to the power of 29 = 536870912
Binary Power Series 2 to the power of 30 = 1073741824
Binary Power Series 2 to the power of 31 = 2147483648
Binary Power Series 2 to the power of 32 = 4294967296
Binary Power Series 2 to the power of 33 = 8589934592
Binary Power Series 2 to the power of 34 = 17179869184
Binary Power Series 2 to the power of 35 = 34359738368
Binary Power Series 2 to the power of 36 = 68719476736
Binary Power Series 2 to the power of 37 = 137438953472
Binary Power Series 2 to the power of 38 = 274877906944
Binary Power Series 2 to the power of 39 = 549755813888
Binary Power Series 2 to the power of 40 = 1099511627776
Binary Power Series 2 to the power of 41 = 2199023255552
Binary Power Series 2 to the power of 42 = 4398046511104
Binary Power Series 2 to the power of 43 = 8796093022208
Binary Power Series 2 to the power of 44 = 17592186044416
Binary Power Series 2 to the power of 45 = 35184372088832
Binary Power Series 2 to the power of 46 = 70368744177664
Binary Power Series 2 to the power of 47 = 140737488355328
Binary Power Series 2 to the power of 48 = 281474976710656
Binary Power Series 2 to the power of 49 = 562949953421312
Binary Power Series 2 to the power of 50 = 1125899906842624
Binary Power Series 2 to the power of 51 = 2251799813685248
Binary Power Series 2 to the power of 52 = 4503599627370496
Binary Power Series 2 to the power of 53 = 9007199254740992
Binary Power Series 2 to the power of 54 = 18014398509481984
Binary Power Series 2 to the power of 55 = 36028797018963968
Binary Power Series 2 to the power of 56 = 72057594037927936
Binary Power Series 2 to the power of 57 = 144115188075855872
Binary Power Series 2 to the power of 58 = 288230376151711744
Binary Power Series 2 to the power of 59 = 576460752303423488
Binary Power Series 2 to the power of 60 = 1152921504606846976
Binary Power Series 2 to the power of 61 = 2305843009213693952
Binary Power Series 2 to the power of 62 = 4611686018427387904
Binary Power Series 2 to the power of 63 = -9223372036854775808
The longest integer that can be expressed correctly is 4611686018427387904
appx. 4.61 QUINTILLION (4.61E18)
***Requests for over 64 iterations return bad data***
BUILD SUCCESSFUL (total time: 3 seconds)

Note that the 64th iteration (array in location 63 is NEGATIVE…this is obviously not the correct answer. I capped the size of the long int array at 65 memory cells, hence …while it WILL compile (using the std gcc compiler) it will throw an exception and kill the program for values OVER 64:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 65
Here is the source code I wrote if you’d like to try out my logic, tweak it, or scope-out my old-school design style (it is only lightly code-golfed; the abbreviations the kids use today make for confusing code. I try to use Object-Oriented variable identifiers to make definitive and concise use of comments as well as a style I learned from my days as a Cal Poly CSC Code-monkey:

/* Author: Chris "Tapper" Welke
* dist under the GNU Public License.
* This program tests the upper limit of numbers (long ints)
* of the NetBeans IDE v8.0.2 via the rapid geometric growth
* inherent to The Binary Power Series (BPS). 1, 2, 4, 8, 16 ....
* Two to the 64th power is the highest integer in the series
* it can calculate correctly unaided by extra memory/variables/logic
* Last stable build at Self-Similarity Studios & Tapper7.com,
* Los Angeles, CA 5/15/2015
*/
package series;
import java.util.Scanner;
class BPSeries{
protected static String Name = "Binary Power Series ";
protected static int Base = 2;
public static int gIN(){/**
* This fxn gets and sets the number of BPS iterations from the user
* a warning is displayed for n = 64 and an exception is thrown for n > 64
*/
int userInput;
System.out.println("How many iterations of the " + Name + "would you like to see calculated and printed?");
Scanner in = new Scanner(System.in);
userInput = in.nextInt();
return userInput;
}//end UI gIN
public static void main(String[] arg){
//getNset user-defined number of iterations:
int sIts = BPSeries.gIN();
//declare and allocate space for the cells
int cellKit = 65; //throw exception for >64 pwrs of 2
long[] sCells = new long[cellKit];
int pwr = 0; //initialize superscript
int i = 1; //initialize cell iterator
sCells[0] = 0; //null
sCells[1] = 1; //set cell one to 1 since n^0 = 1 for all n
switch(sIts){
case 0:
System.out.println("Ok - you're the boss. No iterations--> no output");
break;
case 1:
System.out.println(BPSeries.Name + BPSeries.Base + " to the power of " +pwr+ " = "+sCells[i]);
i++; pwr++;
break;
default:
System.out.println(BPSeries.Name + BPSeries.Base +" to the power of 0 = 1");
sCells[3]=(sCells[2]*BPSeries.Base);
i++; pwr++;
while (i<=sIts){ sCells[i]= (sCells[i-1] * BPSeries.Base); System.out.println(BPSeries.Name + BPSeries.Base + " to the power of "+pwr+" = "+sCells[i]); i++; pwr++; }//end while if(sIts>63){//exception notification/handling for 64 bit chipset
System.out.println("The longest integer that can be expressed correctly is "+ sCells[63]);
System.out.println("appx. 4.61 QUINTILLION (4.61E18)");
System.out.println("***Requests for over 64 iterations return bad data***");
}//endIF
}//end switch
}//end main
}//end BPS

A graphical analysis and more tests will follow this discussion; as well as highlights from
The Doheny Blues Festival, which begins tomorrow, I will review Boz Scaggs and hopefully Los Lobos too. Come get your tap on w/ me this weekend. Boz Scaggs!!! []

Today’s algorithm and number-musings sponsored by:



Cal Poly San Luis Obispo News Archive Part 3: Genius Abuse

Let’s take a break from murder and rape for a bit…I want to relate a unique anecdote….this was not a news item but another thing that happened that indicated massive corruption to me early on….

It’s February, a brand new millennium. I have a great professor who had the ability to help me understand object-oriented-design. without his help, I would’ve flunked out of my computer science classes, placed on probation and booted. He’s a good guy, a great teacher. He saved my ass.

He’s also a genius. Unquestionably. with that normally comes w/ quirkiness – strange behavior. This associate professor had worked at IBM, JPL (and subsequently NASA)…most Cal Poly professors have PhD’s…it’s likely required. Let’s call him “Carl” (in honor of Carl Sagan). Carl graduated from CalTech – with the only doctorate they offer: (clinical science and medical science programs are avail, but the MD is granted via UCLA or USC)

From CalTech’s Graduate Program online reference:
   
    Doctor of Philosophy

The degree of Doctor of Philosophy is conferred by the Institute primarily in recognition of breadth of scholarship, depth of research, and the power to investigate       problems independently and efficiently, rather than for the completion of definite courses of study through a stated period of residence. The work for the degree         must consist of research and the preparation of a thesis describing it, and of systematic studies of an advanced character, primarily in science or engineering.

Translation: there is no program….you present a comprehensive study and solution for a real world scientific problem with NO HELP OR ADVICE, all by yourself. Carl never said what it was …considering he worked for JPL it is probably classified.

Carl ended up at IBM because he was head-hunted away from JPL/NASA….they offered him a LOT of money…by the 90s IBM’s market share was being erroded by Compaq, Dell, HP and Gateway. We’ll never know what they paid him but I assure you it was probably triple his salary at JPL.

The problem with IBM is that Carl’s a genius, he doesn’t want to design a better processor to run Windows on….he also doesn’t like the corporate environment-a cubicle? HR seminars? Politics? 25 bosses? deadlines? performance reviews? this doesn’t work for a creative mind that is incomprehensibly intelligent – the right and left brain both firing on all cylinders. Carl was either fired or quit….he didn’t want all that money, but he still needed a job.

So he took one at Cal Poly. Why not? For all the bad things I’ve said about Cal Poly, w/o our Computer Science, Computer Engineering and Electrical Engineering alumni there is no Silicon Valley. No Intel. No Oracle. Graduates can build an operating system; they can create a new programming language AND a compiler for it. For CSC majors, after a brutal 101-103 freshman program, sophomores get the 205-206 brutality slave-labor program (if you don’t LOVE building software, you will quit after 205 or during 206 (Teams of 5 or 6 “get to” build an enterprise system for the university or the city. I had a choice between rebuilding the Cal Poly Computer Science Web Site OR build a card-reader system for the bus-system in SLO (Like a day-pass for OCTA) – YES it has to work and yes it actually gets used.

So the city or the college can farm out every upgrade, problem or project to subsequent students who do it for free! “Learn by Doing” Right?

I’m off-topic, back to Carl.

The two classes Carl taught me were concerned with Object Oriented Design; an abstract way of writing code and structuring it in more of a human way and less of a machine way.* He never demanded outrageous workloads like the other engineering professors, these were lab classes so had to verify our theoretical understanding by assigning real world problems and testing the solutions we designed.  A lab project could take 2 hours, 2 days, 2 weeks, or some (I have one) never get solved.

Carl’s way of teaching (he wasn’t a teacher….as I said) always made it so the complex problems were easy to “divide and conquer” that is, to break a large problem down into x sub-problems, then separate each down into x(squared) easy problems, solve those, which will solve x and assemble the x to solve the original problem. I had to bash my head against the wall for 100 hours a week sometimes just to finish 1 dumb project that someone who “got it” could finish in an afternoon. He gave me confidence, made me feel like “not an idiot” as all the other profs and CSC students had…

I even made a friend in his classes, we had mutual respect for each other cuz we were both getting B’s (that’s a big deal a 2.0 is considered just fine, even though a 1.9 in one 10-week qtr puts you on probation, a 2.0 the next qtr takes you off of it – I graduated with 2.8 – a C+) We also weren’t people who had been programming since they were 5 yrs old. It made me wonder why CP accepted me into the major? I qualified for the Engineering College, but from day 1 it was clear that expertise in math and a love for video games did NOT qualify me to compete with anyone. Had he not taught me QUICK…I’d never made it past sophomore year.

Carl comes in one day. Late for class. He looks REALLY PISSED. This was not uncommon. He was always friendly, but he never seemed happy….he had this blank stare sometimes and I detected something(s) personal or tragic were still bothering him or ongoing. He was red-faced and sweating….he just sort-of paced around the room while we sat there, maybe 5 or 10 minutes.

He was about to say something. He was trying to decide whether or not to say it….most likely HOW to say it

Carl was probably the first to ever come right out and say what I was already feeling at the time about the college: greed, lies, perception – common themes so far.

Finally he relaxed and walked up front.

“How much money do you guys think I make?“——I was stunned. Everyone was. What the FUCK…is he talking anout?

“Seriously…I want you guys to think and as soon as you have a guess call it out.”

Nobody raised their hand or said shit….but I was definitely thinking about it. WE all knew he had a PhD from CalTech, that he’d spent about a decade at JPL/NASA and that he’d come from IBM as a Sr. R&D project manager at IBM….in 1999 his salary at IBM couldn’t have been less that 100k. I knew he’d taken a pay cut….prob a big one to be here…he wasn’t tenured, but this Cal Poly – Engineering – Computer Science. You can’t apply for a job like that. IF they ever need someone….they’ll find an established, possibly world-renowned software theorist. Someone famous among software engineers at minimum.

It was in-between 40k and 60k… it HAD to be. when he started asking us individually, most were guessing between 50k and 80k. That was a bit high, but he was full-time this was his only job.

“Chris – how much?”

“uhhh….you probably get like $50,000 a year?”

Polling the whole class indicated we thought he made about $60,000+. Then he projected the over head on the white-board. It was a copy of his paycheck for the previous month, he’d blacked out his SSN, but everything else was there….more personal info I’d want a classroom full of software engineers to have, that’s for sure. He was payed by the College of Engineering by a payroll clerk, monthly….and it said that he’d been paid $1200 for the previous month.

Ok, wait, what? That’s $300 a week. I knew he was putting in 50 hours easy….that’s SIX DOLLARS an hour. My first real job was at Starbucks…I started in 1997 and entry-level was $6.50 PLUS I got an extra 3-4 bucks per hour in tips. He broke it down that way too.

“I make less than minimum wage….[he went on to explain because he’d been there less than year there was some provision that made him an associate professor but somehow he wasn’t accredited, or some rule change had come through and his monthly check had dropped significantly] …My rent is $1000, this isn’t enough for me to EAT!”

He said he had some money saved up from IBM and that without that and barring a significant change to “What they promised me…” He’d quit. and they he went on at length about how he’d “been cheated,” and “lied to” that “he had offers from other universities when he left IBM but Cal Poly  offered the best incentives to him.”

They said he’d only work about 20-30 hours a week, that most of it would just be office hours, where he could do whatever he wanted plus have access to all the same research tools he’d had at IBM (If anything we probably had better). To become tenured you HAVE to conduct research AND publish…for most it’s commentary in professional or academic journals. If there’s anyone I wish published a book on software design, it’s him. His software runs on the Hubble Space Telescope. He was told he’d make about $45,000 a year with bonuses for student performance, peer-review, admin-review and publishing papers and books. He’d been conducting research and publishing results in professional journals for 20 years, he was still doing so.

Most journals are like online forums, you establish credibility by working and publishing, but the I don’t that JAMA gives any money to doctors for publishing research….it’s just a major honor to have the most respected publication in your profession print YOUR work.

One thing every company or contractor or client I’ve ever worked for either explicitly states- to NOT tell co-workers, supervisors, customers associates what you make. It’s a firable offense at many companies.

This was the first time I’d ever had the inkling that professors were being scammed. Whatever the power structure was…the associate professors are definitely not part of it.

Companies like Sun Microsystems (now Oracle), HP, Intel, Silicon Graphics, Applied Materials, Cisco Systems POURED money into computer science and computer engineering at Poly. Carl left sometime in 2001…the dotcom bubble blew up, but so did the WTC…so whatever $ Cal Poly lost out on from all the big companies that were laying off 1000s of tech workers, most pulled the plug on donations I’m sure, but the DoD, the CIA, DARPA, DIA, FBI and the newly-formed Dept. of Homeland Security MORE than picked up the slack to keep churning out 1st class engineers from 1st class Engineering Colleges….so Cal Poly didn’t lose a cent.

As for Carl…if he had any trouble finding a diff. job when he left…it’s almost guaranteed he was folded back into government software research or a contractor like TRW, KBR or Raytheon.

I’m sure he’s fine. Better off w/o Cal Poly….

*****COMING SOON****** ill mention the professor “acquired” as depy. chairman post 9/11. He worked for AT&T….sort of. During the cold war the DoD got a big security project approved…..In the event of pre-emptive nuclear strike….how would communication lines stay open? The project required that land-lines have multi-tiered failsafes…ever notice that your land-line works when the power goes out? No? cuz of your cell phone…well it does. It was a project that took 20 years. this particular maniac was the project manager. That means reworking the land-line system to withstand hydrogen-bombs landing across the continent would not effect your ability to call Washington from Sunnyvale….that was HIS RESPONSIBILITY. I’ll mention that and a few other changes made post 9/11 coming soon.

*It is still the gold standard for every program used today. Major OOD languages are listed in order:  Smalltalk and LISP, Eiffel, C++, Java, .NET, Python and C#. Java was the the most cutting-edge language, so Carl taught me to write both in C++ and Java. This theory of design is evidenced by the browser you are using to read this, the operating system your iPhone, tablet or console runs on (OS X, ios7, Windows 8, Android KitKat) all of these were designed using objects and implemented using one of these languages or non-object languages that have since been re-designed to BE object-oriented (COBOL, Pascal, VB, Ada and C)