Saturday, September 24, 2011

Outside looking in, or inside looking out?

So as most of you know I work with the CyanogenMod (CM) team to get and maintain CM running on a couple different devices.  Since I have joined the group, I have paid more attention to what people say and how people react to different things related to CM, and more importantly how people perceive the CM team as a whole.
**I want to note this post is my own personal view and interpretation and is in no way the combined opinion of the CM Project as a whole.**

When I first started working with android projects I had no real programming experience (still dont really). I read all the guides and various information outlets for themeing and changing aspects of ROMs.  After a few failed attempts, and hours upon hours of reading online, it hit me.  Why go through the trouble of decompiling/unzipping, running files through various editors and recompiling/zipping files, when I could do it all from source?  I quickly realized how powerful the android build environment could be after reading a post about build overlays from koush.

This got me into my first couple of themes, and doing some personal edits of my own.  My biggest downfall as a themer is that I am not a graphic designer.  I realized that after trying to get the whole theme look to really get together.  I stopped on the theming but still enjoyed doing my own "nightly" builds with my own look and overlay.  I remember thinking to myself how awesome the open source aspect of android is, and how awesome it was for this great group of devs (CM) to add to and put the code out there for everyone.  After a few months and getting more and more comfortable with the code and gerrit etc, I started submitting patches to CM.  Nothing major, just little bug fixes or updates here and there.  And then it happened, Gingerbread had came out, and koush no longer had a DINC to get GB fully going on.  So he asked me if I wanted to join the team and keep CM alive in the DINC.  I gladly accepted.
Now I am still no star developer.  The core of the CM team really makes things happen.  All I have done is attempted to take the devices I have in hand, and make then as stable and feature rich as possible with the assistance of the CM team.  And so far, I think its worked out well.

Lets get on to the purpose of the post.  Back when I first started with android, if it weren't due to CM and the availability of the code, and the device workarounds they came up with, I would not be doing this today.  I have always looked up to these guys and their amazing work and dedication to the CM project.  Now that I am a small part of the team, I look up to them even more.  I have a major respect for everyone in the team and all the contributors.

Now recently between sitting idle in various IRC channels, or reading through forum posts, I see a small percentage of people saying things like "CM guys are elitist ass holes." or "The CM guys are total dicks." and "the CM team is just to full of itself, get over it".  As i see things like this it makes me read the context and get the picture of why people are expressing these opinions.  I want to explore a few of these and see if we can clear some things up.

1.  "I pm'd <insert-nick-here> and they never replied.  Guess I am not good enough for them to answer my questions."
     This is a great one.  First, how many pm's do you think CM team members get? 5? 10? 100?  Who knows, but I guarantee you its a huge number.  They may have not seen it, or have the time to answer it.
     Also, maybe they are not at the computer.  Amazingly enough we have lives outside of android/CM that includes jobs, spouses, kids, car accidents, flooding and anything else that YOU are subject to.
    This one, I am especially keen to.  Maybe the answer to your question is a simple google search away.  I have had no formal training whatsoever when it comes to programming, and code.  EVERYTHING I have learned has been through reading, trial and error, and examples of other open source code.  If you can't take the time to do a google search, why should I search it and link it to you?

2.  "CM attacked <insert-random-aosp-rom-here> for kanging, whats the friggin problem, its open source?"
     This is another good one.  People are absolutely right.  The code is there and for the taking.  Where the biggest issue comes from is the taking of code and people attempting to pass it off as their own.  Now to some this may seem petty, but lets spin it this way. You just spent all night with no sleep getting X new feature working, with no help from anyone else.  It took reverse engineering and  some guessing and hours of log reading to get it right.  You clean up the code, make it a bit better, and then you post it to gerrit for other CM team members to verify it works for the various devices and that it causes no issues.  Then after getting a couple hours of sleep you wake up to a link to a forum post, for "Super awesome double XX 2 AOSP built from source rom, NOW WITH FEATURE X!!!" and as you read the post there is no mention of your name, or work, or where the source came from.  Then you notice there are posts that imply this particular dev came up with it.  How would that make you feel?  The bottom line is that the CM team has put in countless hours of sleepless nights to make CM work so well, with all the features, and for it to cover so many devices with only a single repo to build from.  They DESERVE the credit and simple human respect for the work they have done.  So many don't want to admit where the code came from.  So many want to act like they did not use CM in their ROM whatsoever, and too many want to misrepresent what work they actually did. I may be wrong, but other than CVPCS and his ccroms I can not think of a single "AOSP" Rom that didnt start with a download of the CM source.  This is the exact reason, that ROMs like Ultimate Droid (or Blackdroid) did not release their source.  They did not want it in the public eye that it was mostly CM code with some themed elements and strings changed.  And for those that do release the source, if you look back far enough you will find commits that look like:
- "CyanogenMod"
+ "My super elite god rom"
If you use an "AOSP" Rom I will pretty much guarantee that you are running some aspect of CM code.
     The other side of this, is that people who do use the CM source rarely ever submit upstream patches for fixes.  If you are going to use the code, the least you can do is submit bug fixes back to the original source.

3.  "CM wont release their source when I want it.  They are NOT open source"
     This one is fairly new.  This is really stemming from the rash of people who started building "nightlies" for devices before CM did.  although there is nothing wrong with that, some people were attempting to use this for monetary gain, which is not liked.  Also, there were several other ROM "devs" that were pulling CM commits and patches and releasing ROMs to be "first", to take credit for the work, and to make it seem like CM was taking their code.  I just want to keep people honest.  Also, other than the kernel that falls under the GPL, android source code is not required to be released at all (aka manufactures, and other roms like MIUI)  If we choose to sit on code until we are ready to release it, we can do that, and still support Open source.  Every device that is fully supported and that is in a nightly status has all the source code released.

That about covers my feelings for now.  Remember that if you use an AOSP based rom on a Phone/Tablet there is a very good chance that it stemmed from CM.  Think about all the time and effort that the CM team has put into the project, and give them a little thanks too.  We are people too, not just "wizards behind the curtain"

I want to once again mention these are MY personal views, and not the representation of the CM team as a whole.

Thanks!

22 comments:

  1. Great post slayher, we all appreciate your work!

    ReplyDelete
  2. I love it, and agree. 100% thank you and the whole CM team for all the hard work, you guys are amazing and I for one appreciate it.

    ReplyDelete
  3. CM is great I wish nothing but the best. Thanks for your hard work. I love your thunderbolt builds.

    ReplyDelete
  4. Those of us on the Thunderbolt thank you big time for getting us CM7 at all!

    ReplyDelete
  5. I have just been a behind the scenes flasher of roms, I read the same bs on some of these forums and can't believe that these folks can be so un grateful for the work you and all the other guys and gals do for us. I just want to thank you for all your hard work on the Thunderbolt, I refuse to use any other rom for longer than a day before I go back to your work. Again thank you.

    ReplyDelete
  6. Well put. There are far more people that appreciate than there are that just want to hate. I, for one, am one that appreciates. Thanks to the CM team for making my devices better.

    ReplyDelete
  7. This is a very inspiring post from a dev who pretty much started as a noob and made his way up. The fact that his views do not depict those of the whole team makes me feel like "yes I can do this!" and I feel exactly the same way about the CM team like I've always done. The time put in on their roms is tremendous, give credit where its due.

    GO CM TEAM!

    ReplyDelete
  8. The problem occurs when you become popular. Pretty soon you'll need someone from PR to handle this stuff.

    Love the work.

    -SW QA Eng

    ReplyDelete
  9. Thanks for your hard work, guys. I know how to program but I absolutely don't like doing it. That said, I understand how it would feel for someone to just pick up my hard work & just claim it to be his/hers. Credit is all these guys are asking for. As a flashaholic, I salute you guys and the passion you have for the CM project. Whenever possible, I will buy you guys a beer.

    ReplyDelete
  10. Beautifully put Slayher.. You said everything that needed to be said and were much nicer than i would have capable of lol.. BTW When i did have an incredible Slayher replied to a question i had on Twitter and although I've since moved to At&t and to a Nexus S, i still remember the name. Good guy and good dev thanks for making my Incredible bearable!

    ReplyDelete
  11. Bro, hit the BBQ and you're getting a beer on me.

    ReplyDelete
  12. Thanks guys!

    @Renaud Lepage, unfortunately I won't be making it to the BBQ. Too much Life going on right now to make it.

    ReplyDelete
  13. Well put
    There are tons of kangs for the evo 3d.
    Haven't tried one yet. I'm waiting for the real deal.
    Alpha was nice but I need 4g. Thanks toastcfh.
    I'm checking every day for an update.
    But back on topic remember kang kliq lol
    I've used only cm on all of my phones ever since the g1.
    I would have lost interest for android if it wasn't for the cyanogenmod team.
    Kmobs, chris soyars, koush, and of course the legend himself Steve
    I will be working on the evo 3d builds and hope to one day join you guys

    ReplyDelete
  14. Well said! You really oughtta push this blog more, I'd love to help! As a former Dinc CM user it's the least I can do!

    ReplyDelete
  15. This is all true except a year or two ago, some on the CM team commented that Google codes behind closed doors, throws some code over the fence and calls it open source. I agree that it's necessary at times but there's a change in tune here that's not being mentioned. Yes, they don't have to release the code but this never would have happened if they weren't so big. People will steal the code. It's going to happen no matter what. That's said, I've donated a ton to CM over the years and think they are doing some of the most important work for mobile devices, not just Android (I've been on CM since early 2009). I think people are too hard on them and as a programmer myself, it sucks when credit isn't given for hard work (I even gave credit in one of my apps for code I read but never used because I think it's so important). It's always easier from the inside to think everything is being done right. But thousands of supporters on the outside feel slighted (whether they are or aren't isn't the point) by what they feel is an elitist attitude (don't kill the messenger, I'm just reporting what I hear) from the CM team. Remember, without people to use the ROM, all the coding and hard work means nothing. The last bunch of open letters I've seen were to defend actions they've taken. If everything is being done right then there should be no need to defend yourself (to people who like you) so often. Obviously, people have issues and the CM feels it's their way or too bad. Maybe it is, I don't know. But I've seen some hardcore CM followers get pissed at the attitudes of certain team members (interestingly, Cyanogen himself always seems to be responsive to individuals and distances himself from other members when these things happen). These are just observations and not necessarily how I personally feel. Like it said, I'm a CM user and regular donor because I understand the bottom line and that's to put out some awesome code.

    ReplyDelete
  16. Hey man. You are awesome and cm is awesome. Thanks mostly for inspiring me to learn more. I always assumed you have been coding for years. I think it is awesome that you learned what you know on your own, because maybe I can too. Thanks.

    ReplyDelete
  17. No offense OP, but CM is stemmed from AOSP - AOSP does NOT stem from CM (although may contained patches from CM).

    Sorry.

    ReplyDelete
  18. @JD You are right, CM is stemmed from AOSP, But I think you are missing the point. Go download the AOSP repo, and build a ROM for the Thunderbolt, the Incredible/inc2, EVO, Defy, Nook color, and so on so forth.
    Oh wait you can't. If you look through those device trees you will see very specific Board Defines that don't exist in the AOSP tree. Things like that are what let you build for other devices from source.

    ReplyDelete
  19. All the DEVS that give their time, effort and knowledge deserve a huge thanks from the "using" community..

    Very well said indeed.
    Oldman

    ReplyDelete