Day ONE

It took me about a third of a year to really saddle up to acquire the tools I need to lay pipe for a project I’ve set out to do since September 2011.

Trying to find technical co-founders for a startup being the “ideas guy” absolutely sucks. Nobody takes you seriously because everybody is an “ideas guy.” It would be difficult convincing somebody how thoroughly I’ve thought through the things that I’ve thought about and understanding a lot of startup methodology. The proper idiom to use given the circumstance that I faced was, “If you want something done, you gotta do it yourself.” I convinced myself after reading up on several stories about how people became dangerous and how fulfilling it was to learn to program and build things on their own. I mean, shoot, how hard could it be? What I’m trying to build is web-based and I already know HTML, CSS, and some JavaScript…

I was really hit with a sledge hammer. There’s no real how-to guide on how to become a self-taught programmer. People’s stories tend to leave out a lot of things. But I want to keep this post brief so I’ll list, in brief, what my background was and how I have been saddling up to begin building this web project I’ve wanted to build and test for a long time.

Before I began programming I was pretty well-versed in:

Windows (I’m a keyboard shortcut animal), and I had never used any distribution of Linux. Adobe Photoshop, Adobe Illustrator, HTML CSS, JavaScript, and a delved into PHP for what would amount to, maybe, a day-2 education from a book. ASP.net, T-SQL, and a little bit of MySQL.

This is what I forced myself to learn all at the same time in the last 5 months:

1. Setting up a Linux-box (a computer with a distribution of Linux) for a much more development-suited environment. I chose Ubuntu 11.10.

2. Learning to use the Terminal on an operating system such as Linux took a lot of Googling and finding neat commands on StackOverflow (a Q&A site for hackers/programmers/etc). This was important because almost everything starts here when it comes to development — starting servers, copying files, issuing commands and flags for commands that do various things. I hardly ever use the dash (Ubuntu’s equivalent of a Windows taskbar)

3. VIM (vi Improved): The most powerful text editor I have ever encountered (I’m speaking for myself here). It is available on virtually every single Unix system. I’ve heard older guys that have programmed for over a decade always talk about it. I’ve seen it in action from a handful of people and could never understand why somebody would EVER EVER use something so complex… until now. I started with a neat tutorial I found on Hacker News that taught me a few basic commands that I forced myself to master and gradually added to my arsenal by way of Google. Why is VIM and vi so powerful? Those who come from using Notepad++ or some basic text editor without ever using an IDE to edit text and/or code will not yet understand. The simple explanation? It’s difficult to hack when you don’t have a mouse on a laptop. If you love keyboard shortcuts like I do, that’s really all VIM is. I can grab text or strings in between brackets, quotes, etc (on a mouse you’d have to click the beginning of the string and drag it to the end and then hit ctrl + c). Those days are not long gone for me, but I don’t do that on my laptop at all. There are such powerful sequence of commands for programmers. One of my favorites? I can comment/uncomment an entire block of code with several key strokes. It’s amazing!

4. Python. I started with Learn Python the Hard Way, a free book found online by Zed A. Shaw. This got my feet wet. It’s a beautiful language and it’s strict enforcement of indentation automatically makes code readability and maintainability a priority. I hated trying to understand somebody’s HTML, so getting into something a bit more difficult, like programming, made Python an easy choice. After LPTHW, I decided to sign up for a course on Python at the City College of San Francisco, where a different version of Python was being taught, but helped me learn about what was to come. This course challenged me with real world problems and a funny professor who wasn’t always the most helpful, but really introduced me to what was possible with just a solid knowledge of Python. I purchased a book titled “Core Python Applications,” I found on Amazon that had great reviews for its previous edition. This book has been a great reference book so far and explained things in a way that I could understand, being that I did not come from a computer science background.

5. Django. Read up on a lot of material saying how great the documentation was and how easy it was to pick up. I was sold. I was ready to go and build a website over a weekend. Hah! I don’t know, but maybe I’m stupid. It didn’t work that way. I felt confident with my knowledge of Python that would make learning it quite easy. The official Django documentation only had a short tutorial on building a Poll application. I got confused really fast. I did the app twice! Other resources I came across came from Quora and StackOverflow. Many of these were fare too terse for me to pick up. I e-mailed others who I thought could provide assistance. I faced dead-end after dead-end. People weren’t really open to helping somebody they didn’t know. I knew there had to be another way. I felt like the only way I could learn Django was from somebody who would walk me through every step and tell me about why things were done a certain way. I wanted tutorials that showed me step by step on how to build popular projects that people did on the web with web frameworks such as Django. They were either dated or terse. I tried  a couple of Youtube videos, too. I finally ended up purchasing an older version of a popular Django book found on Amazon. The currently release of Django is 1.4. I’m working with a GREAT 1.0 book right now. And this is where day one begins.

6. Other things I had to pick up worth mentioning: VirtualEnv (isolated Python development environments). Venv is crucial for me, because I don’t want to mix this older version of Django and all its dependencies with my system files and installs.

I’ll clean up this post another time. This post was longer than I thought, but WOW, I’ve come a long way…

Get shit done. Seriously.

We’ve been taught to set goals since we were kids. What’s funny is that, I’ve come to realize that teachers often didn’t practice what they preached.

Cool. Set goals. “You can’t get to where you want to be if you don’t know where you’re going.” So, what’s the problem? The problem, where most have identified it to be, is that they’re not reasonable, attainable, goals. Is this true? It sure is, except this doesn’t identify the problem and propose an immediate solution for tackling it now.

First, the reason I, and many of you, never start is because we fear creating less than spectacular work. We feel that there’s a time and place when we are most optimal. And when that time that we’ve set aside for ourselves to begin work approaches, our mind wanders off to somewhere else, and the task before us grows to one that is daunting. Under this circumstance we then make up excuses and sometimes reschedule (at least some of us do).

It took me a while to figure out how to get things done consistently. I had to trick myself; trick my mind — hack my life. We all know that the reality of putting things off is that work becomes rushed and poorly produced, because it was done during the very same circumstance we tried to avoid in the first place. It’s not enough of a deterrent or motivator though.

So, here’s my simple way for getting things done, and it’s really nothing new. I tell myself, “Dude, just start. I don’t care whether or not you finish it now, but just start.” By starting, I actually mean: read the first line of my assignment; write one function in my program; write the first sentence of my letter. More often than not, the reality is getting myself into the context for which I need to work. Once that happens, the work will flow from there. Once in context, I’ll find that doing other things don’t require significantly more effort. I keep telling myself to put everything that’s on my mind down into my work now, and to correct errors later.

The lesson here is, as Nike would say, “Just do it!” I broke my task down into the most minuscule goal possible, and that’s to “just start.” Getting something down is more important than never starting at all. At least when I get something down, I can come back to it and take a look at what I started and jump right back into context even more easily the next time around.

That’s it! Read those instructions/documentation; write that one line of code; drill that first hole — just do it before doing anything else.

Am I PINTERESTing Enough for You?

According to numerous reports, Pinterest has a predominantly female user base to the tune of about 90% — astounding!

I first heard about Pinterest when TechCrunch covered it for, what I believe to be, the second time. I created an account using my Twitter handle to see what all the hype was about. I was almost immediately hooked. Seeing pins and the ease at which I could curate things was an absolutely ‘smooth’ experience. It helped replace the action of having to save photos that I loved to my computer, and easily made what I thought was visually appealing available to all my friends. The kicker really is that it’s easier than ever to follow all your friends’ specific interests rather than having them bombard you with things in your newsfeed you have little to no interesting in seeing or hearing about. The signal to noise ratio heavily favors the noise on Facebook, and Pinterest is different in that regard.

The latest update that improved the look of the profile did nothing to really improve the experience. It was definitely visually more appealing, but there is nothing new added to really enhance the user’s experience — nothing to write home about. I was searching for something that made Pinterest more social. I really wanted something that showed me what was trending, boards I might like, people I may want to follow. I’m sure some of these things are in the pipe already and it’s important for them to add features slowly so it doesn’t complicate things or bombard new users with things they don’t know what to do with that may stifle adoption.

I’m a heavy Pinterest user. I pin incessentally and I enjoy discovering new things from my friends, but here are some things that I would improve upon (not new features) if I had a chance to work with Pinterest:

1. Be notified when a friend of mine has created a new board and added at least one item to it rather than offer “follow all” right out of the gates. I find this to be the biggest deterrent for adoption among men because all they see are things related to home decor and weddings from their female friends that are of little or absolutely no interest to them. Greeting new users with top Pinners may be better. But, another idea is to greet a new user with top pins in the already established categories for them to choose rather than provide a list of text and having them follow some things they’ll regret following later.

2. Better notification system — one that notifies me when somebody has commented and/or replied to a post. I frequently find ‘likes’ and ‘repins’ that bury ‘X has commented on your pin.’ Many of my comments and questions are left unanswered when left on a friend’s pin.

3. Random versus most recent pins on a board. The particularly reason for this is we normally don’t get to see the true breadth of somebody’s board when viewing the latest pins. Compare the viewing of a friend’s board to viewing search engine results — how often does one make it past the first page? How often does one like to scroll? The answer is simply, “not often.” Scramble ‘em!

4. Pinning to multiple boards. I frequently find myself in the situation of having something fall in between two categories or two boards. I heavily dislike having to choose because I’m just too lazy to double-pin where such a thing also introduces two of the same images into my feed and somebody else’s feed. This would work well in the future if or when private boards ever get introduced.

 

Circle Jerking in Public Space

This is an appropriate title, and you’ll see why.

While both Facebook and Google+ are social networks, they aren’t necessarily the best place to socialize with the people that you already know (online/on a social network). A private email thread works better, and that’s the truth… just think about it. Let’s first identify one of the inconvenience with where translating our conversations/experiences in the real (physical) world get lost. On a Thursday night I go to a happy-hour shindig with a couple of friends I hadn’t seen in a while. We get buzzin’ and the conversation can often times get quite ridiculous, but we end up having an awesome time. Several of us have to leave(thanks to work on Friday), but we were having an awesome discussion about something (as a group, with everyone contributing). I go home and hop on Facebook then proceed to visit the friend’s wall who I was most engaged with (before everyone departed) and attempt to continue the conversation. How do I get everyone or most people to chime back in? Here are my options:

  1. Tag the other people who were present and hope they respond
  2. PM (personally message) each person
  3. Wait for the others that were present to just see it in their newsfeed that I had posted on the wall of another friend

I’m sure I’m leaving out some more options, but it doesn’t matter, because none of them make it easy to pick up where I/we left off. Neither Facebook nor Google+ easily aids us in facilitating casual group conversation.

This is really my attempt at thinking up a solution to grouping friends. Both Google+ and Facebook have it wrong when it comes to organizing our friends, family, and acquaintances. Foursquare and GoWalla started the check-in movement that was later picked up by many other companies like Yelp and Facebook, of course. The simple reason a lot of us don’t check in is because we take issue with the broadcast of our location and have concerns about privacy. Perks and discounts are not enticing enough for some others, and most really don’t give a shit about becoming mayor of some restaurant. For those that do check-in, some enjoy tagging the friends they’re with also and having that show up on their wall. I may not like it, but it’s not to the point where I absolute despise someone doing it. However, that’s the key in helping Facebook (sorry, Google) group our friends automatically. The check-in doesn’t require that every person check into a place, only one friend doing that. All Facebook needs to do is take into the account the frequency at which the same group of people are being checked-in and the frequency at which they communicate with each other on the network (wall posts, replies, likes, and pokes). Voila!

Groups of friends who hang out usually don’t want private topics and discussions to leave the immediate circle, right? So let’s say Facebook implemented this partially (just helping you group friends into lists)… it’s useless because you’d be jerking each other off to the entire network of friends when picking up/continuing a conversation on someone’s wall. Here’s how Facebook could possibly get more users to check-in: MAKE THEM PRIVATE. The incentive for some people would be a digital log of where they’ve been and who they’ve been hanging out with that isn’t shared with the rest of the world, and Facebook gets to collect data from more contributors–win/win situation.

The people we meet are dynamic and our relationships with them change over time, therefore sticking friends into lists and ever-growing lists is another problem. Therefore grouping/listing/managing friends is a never-ending task that is tedious and no one will spend time out of their day moving friends around to different lists or circles (which I thought was kinda cool in the past). Steve Jobs was a master at taking things from different disciplines, exposing himself to many many things–things that seemingly have no relation to each other or don’t belong and fusing them together to what has become some of the world’s best-selling products. I mention this because I made one of those connections several months ago, but have finally found some time to really illustrate it.

Group messaging mobile applications were all the rage up until this summer. We had Beluga (acquired by Facebook), GroupMe (acquired by Skype), Disco, Kik Messenger, textPlus, WhatsApp, Katango (acquired by Google), but one that stood out to me was FastSociety (featured on the show, Skin). I haven’t tried ‘em all, but the feature that stood out to me about this particular app (could very well have been in other apps, too) was the ability to establish a group’s expiration date. Why is this important? We don’t realize it, but our real world groups of friends that we hang out expire, too. That’s what’s dynamic about real relationships with people. If Facebook kept persistent lists of our friends, particularly those we hardly hang out with anymore or less frequently, it begins to clutter our page’s real estate. Facebook’s done a relatively good job of showing a short list of the groups we participate in most or have the most activity. This needs to be translated to  the relationships we have with our friends as well. A space should be created for each checked-in event and location pairing that moonlights as a “past event”  with features that includes a wall where we can comment and/or continue conversations on until all activity dies for an extended period of time. If the same members of the group continue to be tagged in events, Facebook can create a list for us — easily permitting users to plan/discuss/chat about a developing future event.

Talking to Myself. (@Twitter)

I know. I know. Most people don’t give a rats ass what I’m talking about even when I think it’s something so compelling that it’s worth sharing with the rest of the world.

Steve Jobs was good at many things, but he knew what people wanted even if they didn’t know they wanted it… yet. I think I’m having one of those moments right now. Allow me to explain:

I go and type a tweet up, something like this: “Wow, the 49ers killed it today!” What usually ends up happening afterward? I go back to surfing the web, half-waiting for somebody to @mention me in a response to my tweet (I get text-notifications when I receive an @mention). Now, how will Twitter get me to keep my eyes glued to the platform that’s losing traction to Facebook? What Twitter currently does well, and right, is that they show you what’s trending. They are parsing every bit of information that they receive from users.

It’s time for them to move beyond a broadcast platform and more into a platform that truly welcomes more two-way interaction. Here’s my suggestion as to how: After I tweet, it should immediately show me similar tweets from those I follow first, then those in my area, followed by top similar tweets from anywhere else. It should do this in place of the current list/feed I’m viewing or give me the option to view who tweeted something similar.

There’s an issue with following too many people and that is — too much noise. We all know how people are with lists. We generally don’t use them. Most people who use Twitter generally just have a feed that’s a mish-mash of hundreds of famous people and their friends.

What I’ve proposed is something that helps me (and others) sort through the noise into EXACTLY what we care about at the moment — participating or interacting with another user who has tweeted something similar, and giving me the opportunity to chime in rather than wait for the small number of people using the Twitter-search to find my tweet and respond to it. This works well for new users who don’t have many followers and are jumping right into Twitter for the first time.

Thoughts?

A Celebration Every Time We LinkedIn?

LinkedInExcuse me for the terrible title and reference to Nicki Minaj’s Moment for Life track. Recently, I’ve been asked by the company I work for to come up with a short seminar on how to utilize social media to help with recruitment and business referrals. To be honest? I’ve touched LinkedIn sparingly in the last two or three years. I’ve really found no use for it and have essentially brushed it aside by calling it a “sorry excuse and substitution for real world connections.” After doing some research and applying some of the things I’ve come across, I now have a very different view of it. I’m going to talk about an interesting article I came across and then discuss an interesting dynamic in the way we connect to our business acquaintance who have now become friends in the real world.

I came across a piece about a man named Steven Burda, a “LION.” LIONs are otherwise known as LinkedIn Open Networkers- those who pretty much accept invites from anyone, less those who are there to market their products and spam. The crazy thing about Steve is his “pay it forward” nature and mentality. He truly is out there to help others. He is connected to 90% of the LinkedIn network through his first, second, and third degree connections. He has helped many who don’t know him at all make a connection to someone he knows in high places. This may not be the most meaningful way to build connections for many of us, but let’s be honest here. How many of us spend any real time on the network to begin with? This question leads me to what I see as a pressing need for change either on LI and/or other social networks.

Now, let me ask: How is it that we are able to have close friends that come from the work place (past or present)? Work can be mundane, but it is the people you work with that make it worthwhile and even help you through those long days. Those you tend to gravitate toward and those that gravitate to you are ones you share the most in common with (most of the time, at least). It’s either that or you two share a common goal. So, how do you get people to really spend time on your network when racy pictures are not the norm for profiles? It’s about people’s INTERESTS. As with most things in life, we get our recommendations from our friends- friends who we chit chat a lot with about over similar interests. LinkedIn, while having put some effort into creating “groups,” really hasn’t figured it out yet. Most groups are ghost towns.

Truth be told: we have better relationships with those we participate in forums, discussion, even Facebook discussions on walls than we have with some of the people we have as “friends” that we are connected or “linked” to in a database. LinkedIn needs to foster an ecosystem of people willing to engage with others and recommendations based on intelligent answers and discussions across various interests and topics that don’t always have to pertain to work or business. Figuring out a way to create interest spaces of within specific sectors and industries will go a long way in providing an environment conducive to real networking opportunities versus pitching us this crappy InMail product. But, then again LinkedIn was started by “professionals for professionals.” In other words: We built this thing for the elite, and we’re making money off selling the average person an illusion of professional betterment.

If you made it this far, thank you! I appreciate your interest in my musings, rants, and passion for tech. This post is already a bit too lengthy. I’ll document some details about a real solution I have in a later post.

P.S. It’s hard recommending a service to colleagues who are much older and less tech-savvy than you are when you have a difficult time finding reasons to be on it to begin with.

Spotifycation

SpotifyProblem: Why the heck isn’t there a notification system?

I’m a huge fan of Spotify. They certainly got the familiarity thing down. It practically runs like iTunes with a different skin. But, it’s biggest draw for me? Being able to see what my friends are listening to. This requires me logging into Facebook for which I gladly fork over my login credentials.

Discovery is the biggest department Spotify is currently falling short in. It was easy to flip through the lists of 8 friends that I initially had when I first signed up, but now? It’s just a bit cumbersome to do that. Spotify permits me to subscribe to specific lists that my friends create, but why does it even matter if I’m never notified of new songs they add to the list, so that I can check them out!?

When I first log into Facebook, I am taken immediately to the ‘Top News’ or ‘Recent Posts’ my friends have made. Spotify, takes me to a screen showing me new releases. There’s a tab that’s very dark that no newbie would really see that reads ‘Feed.’ When I click on it I’m confused as to whether someone added a song, subscribed to a playlist, or anything else. It’s just downright confusing.

Music is social. We like to listen to music that we think we could share with our friends. We like songs that we can dance to with others, but Spotify doesn’t make this easy quite yet. But, you know who has? Turntable.fm.

Solution: Develop a better notification that may/may not include a Facebook application that notifies me of new music someone has added. Improve the ‘Feed’ by detailing what type of actions people are making, and please reduce those thumbnail sizes. Oh, one more thing: Create a list with the top songs from all my friends. Really, it’s all about recommendation and discovery.

Yelp’s Great, Except..

Yelp LogoYelp’s practically replaced the Yellow Pages for me. If I need to find a place, subsequently make a call, and get directions, it’s probably the go-to app for me, when time’s a pinch. I don’t need to beat around several apps copying and pasting addresses or numbers. The next closest thing’s gotta be Google Maps, but it doesn’t have the sheer number of reviews Yelp’s aggregated. It’s probably one of the more well-designed apps for Android.

There are specific areas that I can see getting improvement I’d like to point out:

  1. Permit willing restaurants to put up digital versions of their menu or even upload a PDF menu (digital preferred of course)
  2. Recommendations based on the frequency at which friends have visited a particular restaurant/merchant

Now, let me go into a bit more detail about why, in case you haven’t already figured it out.

Continue reading

Remember My Work Space?

Windows 7 Snap FeatureQuick hitter today –

I’ve been a PC user all my life. I’ve used Ubuntu and some OSX, but certainly not enough where I know the ins and outs as I do on Windows.

The thing I love most about Windows 7 has been it’s snap feature. I can drag any window off to either side of the screen (or ctrl + left-arrow/right-arrow key) and it’ll snap to the edge and become precisely half the width of my desktop. This feature comes in handy when copy-pasting and/or comparing documents.

Continue reading

Deal Fatigue. Don’t Lie to Me!

I wake up this morning to an inbox with an email from Facebook Deals. I used to wake up to find Groupon and LivingSocial offers in there as well, until I unsubscribed from them all.

These companies ask me what I’m interested in when I sign up for their offers. I know I care about my health and all, but seriously, I’m sick of these spa offers!

Frankly, I’m sick of every major dot-com pushing deals every which way. Continue reading