Dilemma
I’ve been told
“Music must never offend the ear, but must please the listener, or, in other words, must never cease to be music.” – Mozart
but
“He who writes and composes without feeling spoils both his words and his music.” – Guillaume de Machaut
however,
“Music is harmony, harmony is perfection, perfection is our dream” – Henri Frederic Amiel
yet
“To study music, we must learn the rules[, and] To create music, we must break them.” – Nadia Boulanger
of course
“One likes to believe in the freedom of music.” -Neil Peart
but it’s
“not easy to find in a corporate world, somebody who cares about music.” -Michael Penn
and
“The hardest thing in the world to do in this business is start a band nobody’s heard of.” Tom Whalley
and even the most famous think
“I wish there had been a music business 101 course I could have taken.” -Kurt Cobain
in short
“You’ve gotta be business savvy really, or else you get the piss taken out of you.” -Melanie B, Spice Girls
because
“fans are quick to forget what they appreciated just last year.” Trugoy, De La Soul
anyways,
“For me, music and life are all about style… Do not fear mistakes. There are none.’ – Miles Davis
You gotta be
‘cut off from the world. There was no one to confuse or torment me, and I was forced to become original.’ – Joseph Haydn
Of course some assholes say shit like
“Just because it happened to you, doesn’t mean it’s interesting” -Dennis Hopper (Search and Destroy)
and
“Just because you can record, doesn’t mean you should.” -Christopher Knab, FourFront Media and Music
Well they can go fuck themselves!
and i know,
“Writing about music is like dancing about architecture – it’s a really stupid thing to want to do” – Elvis Costello
So, I’ll shut up now and draw my parallel.
Epiphany
“The number one benefit of information technology is that it empowers people to do what they want to do. It lets people be creative. It lets people be productive. It lets people learn things they didn’t think they could learn before, and so in a sense it is all about potential.” -Steve Ballmer
You may realize that being creative won’t cut it. You’ll need money and ways to make it. I’d say develop your great idea. Trying to make money is a creative endeavor too. Even if you take forever to figure things out you are still faster than the big companies.
“The world is changing very fast. Big will not beat small anymore. It will be the fast beating the slow.” -Rupert Murdoch
You can always make money on a good idea. Even if you face stiff competition. Remember, you don’t NEED funding. It is always nice to have, but what does it really buy you? Make sure to see it from the the VC perspective. They want to invest in:
“[companies] that [they]‘d be perfectly happy to hold if the market shut down for 10 years.” -Warren Buffett
If you do go that route then you need stand up for yourself.
“A lot of people are afraid to tell the truth, to say no. That’s where toughness comes into play. Toughness is not being a bully. It’s having backbone.” -Robert Kiyosaki
Don’t screw people over though. Remember that we all get,
“no greater satisfaction than achieving success through honest dealing and strict adherence to the view that, for you to gain, those you deal with should gain as well.” -Alan Greenspan
But I digress, since this article is about being creative in a business world.
Inspiration
- First off, screw the critics. These are the same people that dismissed Muse’s first album then later called it one of the top albums in the past 20 years. Their record label even dropped them in U.S. after they refused to take out the falsetto vocals on their 2nd album because they didn’t think it was radio friendly. It took 5 years for it to reach to U.S. and then it ended up in the billboard top 20.
- Forget your friends. Although they are great, they’ll criticize you to death, and belittle you because, well, they don’t take you seriously (and I mean who would really). Friends will never think of you as a genious, visionary, or anything like that. Why should they anyways. They are on your level. Don’t expect them to think your creation is God’s gift to man kind. Furthermore, to all you friends of potential visionaries out there, stop hatin’.
- Forget your enemies. They would love to see you crawl back from the hole from wence you came.
- Forget your problems. Lock yourself up in some room, brainwash yourself in what you believe and come out with something amazing.
- Finally amazing doesn’t mean perfect. Stop perfecting and just realize that your project(s) will forever be incomplete.
If you need inspiration, listen to that voice in the back of your head that told you to follow your crazy idea in the first place. He/she has some fantastic insight into the world. The more you listen the more it will talk.
You don’t need to take my word for it though
,
“Lie down or sit in comfy seat holding a spoon in your fingertips. When you lose consciousness (sleep) you drop it. The Clatter will wake you just as you start to dream.”
In that moment you will be inspired. You will think of the craziest things ever. You will doubt yourself, but realistically those ideas create the greatest inventions the world has ever seen. You do it throughout the day and you don’t even realize it. Most of the time, you will tell that voice to piss off.
-paraphrase from lifehacker.com, Salvador Dali and the book “The Art of Game Design: A book of lenses” by Jesse Schell
I don’t want to promote lucid dreaming; however, let your crazy shine through! Creativity comes from within. If you doubt yourself just say,
“I am my favorite artist” -Salvador Dali
or inventor, or both. If you are unsure if you qualify for such titles, don’t worry no one qualifies for any titles. Half the battle of getting a job or being creative is believing that what you have to say is valid. Business people do this all the time. It is called lying to yourself. You better start being damn good at it.
Finally… to all those who start thinking you’re on something, just state, no no,
“I don’t do drugs. I am drugs.” -Salvador Dali
Smile, or flip them off, and go back to creating your masterpiece.
So, I read this article a couple days ago: http://mark-story.com/posts/view/testing-cakephp-controllers-the-hard-way . As a result I started pulling my hair out. I decided that is too much work. Perhaps CakePHP 1.3 fixed some of the issues mentioned in that document, but no one has really documented anything. In any case, it took a few days of experimentation, but I got a nice template going. I see a ton of people interested in testing now a days, one thing to remember when you are starting out is that we are only testing controllers, and as such should only test what THIS controller is doing. Controllers in this sense only transfer data from one place to another, add a little bit of data, and really function as glue between models, views, components, utility classes etc. SOOO you should not be testing auth methods or if data is saved (thats what the tests for those classes are for. Furthermore, don’t test cake internal functions.
A couple more notes before the code…
- You need to set your debug level to 3
- This was a test straight from a CakeTestCase I started working on
- I tried a few ways to get access to auth/session data. This seemed to be the easiest way to do this. Simply login to your site with the user level that you’d like to test (or stay logged out). I tried to manually set the session data. I think cake doesn’t like that, and kills your session as a result.
<?php
/**
* @author parris
*/
class LrapackagesControllerTest extends CakeTestCase{
/**
* These should go somewhere more global
*/
private function genRandomString() {
$length = 10;
$characters = '0123456789abcdefghijklmnopqrstuvwxyz';
$string = '';
for ($p = 0; $p < $length; $p++) {
$string .= $characters[mt_rand(0, strlen($characters)-1)];
}
return $string;
}
private function genRandomDouble() {
srand((double)microtime()*1000000);
$randomnumber = rand(0,5);
return $randomnumber;
}
function startCase(){
echo "<h1>Starting LrapackagesController Test Case</h1>";
$this->path = APP_PATH.'/lrabuilder/lrapackages/';
$this->testPackage = array(
'Lrapackage'=>array(
'name'=>$this->genRandomString(),
'part_number'=>$this->genRandomString(),
'version'=>$this->genRandomDouble()
));
}
function endCase(){
echo "<h1>Ending LrapackagesController Test Case</h1>";
}
function startTest($method){
echo '<h3>Starting method '.$method.'</h3>';
}
function endTest($method){
echo '<hr/>';
}
function testAdd(){
$result = $this->testAction($this->path.'add',array('data'=>$this->testPackage,'method'=>'post','return'=>'vars'));
if($_SESSION['Auth']['User']['role_id']==1 || $_SESSION['Auth']['User']['role_id']==2)
$this->tAddLoggedInUser($result['cakeDebug']->data['Lrapackage']);
else
tAddPublicUser($result);
}
function tAddLoggedInUser($data){
$this->assertEqual($data['name'],$this->testPackage['Lrapackage']['name']);
$this->assertEqual($data['part_number'],$this->testPackage['Lrapackage']['part_number']);
//I would assertWithinMargin, but since the data needs to be identical, I don't need that.
$this->assertEqual($data['version'],$this->testPackage['Lrapackage']['version']);
//1000 is selected arbitrarily, but I dont care about real accuracy here.
$this->assertWithinMargin(strtotime($data['created']),strtotime(date('Y-m-d H:i:s')),1000);
$this->assertEqual($data['user_id'],$_SESSION['Auth']['User']['id']);
}
function tAddPublicUser(){
//echo($result); the only bad thing about this method is that you need to decide what the return var is before you
//have the session info... however, assuming you have properly setup your acl you shouldn't even need this test...
//let the acl tests confirm that logged out users dont have access to logged in areas!!
}
function testIndex(){
$result = $this->testAction($this->path.'index');
//debug($result); this results in an overwhelming amount of data, be selective of the output!!
}
}
Questions?
Go forth and unit test
!
Some useful docs:
http://simpletest.org/api/SimpleTest/
http://simpletest.org/api/SimpleTest/Extensions/PHPUnit_TestCase.html
http://simpletest.org/api/SimpleTest/UnitTester/UnitTestCase.htm
First of, sorry for not posting a ton lately everyone. Been busy with letswoosh.com, rockin with Doomsday Machines, and making cool stuff at NetApp. In any case, if you are on this page, you have probably been searching endlessly for a way to get flash on your iP[ad|hone]. At work, we had a request straight from the VP of our department that ended up on my desk. “We would like to get about 200+ sales people to view training through mobile devices, namely the iPad,” was essentially the gist of the request. Well it just so happens that all of our training is done in Flash, and around here they don’t seem to be big fans of going back to javascript. They asked me to come up with solutions.
There are essentially three ways I found that differ vastly from on another.
- Jailbreak, then “un-jailbreak” once you install flash (I am not going to go into all of that)
- Use smokescreen (source), a javascript version of the flash plugin, but it does not seem to work for interactive flash apps.
- Provide a browser through a “VM”. That is host an app through some software server in the cloud.
Jailbreaking is out. We are not about to go to war with apple (although someone should). Smokescreen won’t really work out, plus it is not very “corporate ready,” which leaves us with the VM/cloud/SaaS solution. So via iPhone/iTouch I found an app called Cloud Browse. This is pretty nifty it is essentially Firefox hosted up in the cloud. It works, but there are some pitfalls. First of all, its unsupportable. If one of our clients says “ITS NOT WORKING” angrily all we can say is try again later? Also, it could potentially cost a ton, and its not a fixed cost. That is we need to buy subscriptions for each person who wants to use the app so they don’t end up on the generic/anonymous connection pool that may or may not get a connection depending on popularity at that moment in time. Do I need to mention that if you are going through some VPN service you are essentially exposing all your delicious corporate secrets? Lastly, it looks like crap on the iPad.
I mentioned the VM solution to my manager, and he said “OH, that kinda sounds like something Citrix probably does.” I did some research and found 2 must have apps and a pretty rockin video that explains a few things.
Step One (setup a server that doesn’t quite work yet for practice and experimentation):
First thing you should do is follow the steps in the video below to get your Amazon cloud account all setup with XenApp 5.0. The AMI mentioned in the video doesn’t work with the iP[hone|ad]. I believe the AMI mentioned in the last link will work out though.
- http://community.citrix.com/display/xa/Amazon+Web+Services (for a decent guide for how to set things up)
- http://community.citrix.com/display/cdn/Windows+Apps+as+a+Service (for most up to date credentials and AMI for the video, right now ami-71749f18 is what you need)
- http://community.citrix.com/display/cdn/Delivering+Windows+Apps+to+an+iPhone (the port for AWS S3 is currently behind a firewall, and it is needed to setup the AMI, this should apparently work. I would recommend this AMI if it works!)
Next, log in and open up your “desktop” app, which may take up to 10 minutes even if it says “running” in amazon, server error means its still starting up. You will see all sorts of warnings about XenApp not having licenses, logins failing, terminal services needing licenses, but this is all normal and if you can open internet explorer you are doing just fine. At this point you may want to try adding apps into Citrix Access Manager, which is extremely easy (if you have a question about it feel free to ask in the comment section). I installed Firefox, Adobe Reader, Flash and AIR. I then installed an AIR application and was able to create apps in the manager tool. I used Firefox, the air application, and adobe reader.
Step Two (configure apps and reconfigure iP[ad|hone] and try it out):
You may want to add a new user. We will use this user to connect to the server via the iPad. The cool thing about having individual accounts is the same as doing so on a normal machine. Users can save their own settings and preferences. The same is applicable here.
Now go through App Store on the iPad. You can just download the Citrix Receiver for free. Go ahead and use your IP address as both the address and domain. You need have your username in the format: ComputerName\Username. If you are now able to open your web browser and launch it. Everything is working fine. Go to youtube.com and open up a video. There should be some choppiness as is expected, but hell it works. It may not be 24->30fps, but it gets the job done, and its supportable/secure.
Pricing:
At an enterprise level. This is extremely affordable. You only pay for XenApp once. The receiver is free. You may need to purchase Windows Server 2008 if you are doing this internally. Then for about 60 concurrent users we are looking at around 5 grand total. This is much more affordable than redeveloping a ton of software. One thing to note though. You should assess how much interest there actually is around all of this. The last thing you want to do is have a person dedicate about a week of their time trying to set this thing up and have no one ever use it.
Disclaimer:
Finally, let me put up a little disclaimer. I know nothing of these sorts of things. I just had a business need and tried my best to figure out how to get this to work. Questions shouldn’t necessarily be directed at me. Honestly I am not a subject matter expert for XenApp, Citrix, Windows Servers or iP[ad|hone]. Most of this stuff was pulled from best guesses and gleaned information. I will do my best to answer questions if I do receive them. In any case, I hope this was helpful to someone
! Now I open the forum… Any other ideas?
This week has been a bit intense. I am currently sitting at the San Jose Airport waiting for my flight to DC. Can’t wait to get on the plane because it is the first time I will have had a chance to sleep in the past 36 hours. (There are not enough hours in the day…)
Between binging on coffee and binging on energy drinks Andy and myself got a significant amount of work done, including but not limited to: having our program becoming autonomous and killing off Visual Studios, staring at code for about 2 hours before realizing it just needs to be pluralized to make it work, and of course a celebrator breaking of chair after I realized yet again that the letter “s” has ruined another 2 hours of my life! WOO!
Not only did we break chairs, but we also got an awesome GUI going and I migrated the original Tesla app into a plugin for Croogo. This allowed for Access Control, Auth, and an awesome template system. It also allowed for making Tesla modular enough to be run on any server!
I got 2 more features to wrap up before tomorrow night though
. So there may be 1 more all nighter in my future for this contest. But hey, this is what I live for! It feels like 4 years ago when I was getting on stage for my first “big” concert. Lovin’ the pressure
!
We need your help!!!
Andy Manoske and myself are representing the fine people of SJSU, CS Club, Game Dev, California and our respective organizations and communities this Friday in Washington D.C. for Project Tesla, a software tool.
But we need your help. Tesla has been well-recieved with 33,000 votes by people all around the world, and it’s battling neck and neck with some other folks for the coveted People’s Choice award. We need YOUR vote to help us clinch this award and EVERY vote counts.
How do you vote?
1.) Go to http://www.imaginecup.us/peopleschoice.aspx
2.) Click on “The Tesla Project”
3.) At the bottom rank us x-number of stars and submit your vote.
Please tell EVERYONE you know! We’re SO close to winning this, and we really need all of your guys’ help!
I will post video updates as the week goes on showing off our progress towards and during our stay in DC.
Technologies Used: CakePHP, .net C# (client), and tons of math!
We have significantly upgraded our project since the video mentioned earlier.
If you would like to be part of our testimonials at the competition please leave me a comment with your name and organization! You just need to discuss the value and importance of the Tesla Project!
Thanks!


