Archive for the ‘Programming’ Category

Drupal 7 Changing Update Manager FTP

Thursday, February 14th, 2013

I had a hard time finding this information, and eventually, I got to where I needed to be. The following URL should be more than sufficient to help guide others to the right direction.

 

http://[site]/authorize.php

Facebook’s Phone Number Search

Friday, September 28th, 2012

Like everything Facebook, the new search feature is cool, creepy, and easily abused.

http://techcrunch.com/2012/09/27/have-just-a-phone-number-ios-6-facebook-integration-can-fill-in-the-blanks/

Even though I like the feature, I think it’s a feature that Facebook is ultimately better off not having. Given the elevated status of Facebook, a lot of information now can be tied to a person’s Facebook account. A number’s just a number, but if you can tie that number to a Facebook account. Then it means that people can use the number to figure out your Facebook, then they can figure out all the things you like, then they can figure out what to nag you about. Not only that, but if you have a land-line, they can tie the number to where you LIVE.

Imagine that? Before, you were a nameless entry on the white pages, now some guy knows exactly what you look like, and where you live. What can go wrong?

TONS!

That being said, if they’re going to be adamant about it, I can probably build a big-data platform around it, and sell it to ad-networks. If any lawyers want to patent this for me, I’m more than willing to give you a fair share if you do it for me, and then hand me the rights. I’ll do the coding ;)

Project creation, specification, and sizing

Wednesday, July 18th, 2012

There are couple things that every single developer needs to know in a project:

1. How it looks
2. How it functions

To figure out how to code something, I generally one, talk to the “client” and figure out what they want. In this process it’s very important to figure out what the client wants it to do. This is where we gather a feature list.

Then, we map out these features, figuring out what actions are necessary for users to get to the desired page. Mapping out which sections users click on, where they’re placed, and etc. This will generate a wire frame. It’s also at this stage that you break down each overall functionality of the site into the various relevant sections. The output of this stage should be one: a diagram with very generic depictions of interfaces, resulting pages from user actions, and a list of functionality and more specifically the logic for the functionality.

The wire frame will enable both the designer, and developer to work in parallel, since they both have a basic idea of how everything will flow. Hopefully, by this stage, you have a good grasp of the functionality.

The designer takes the wire frame, logic, and specifications, and generates a mock.

Development

There are 3 classification of development:
1. HTML/CSS
2. Frontend
3. Backend

1. HTML and CSS controls the way it looks.
2. Frontend development generally involve the javascript, and various controllers
3. Backend development will involve the database, business logic and etc.

Of course, this can all fall under the broad umbrella of development, but the main reason why I broke it down is due to the fact that the work can be broken down, so that multiple hands can work on it at once. That being said, the more hands on deck, the more overhead is generally involved.

So we’ve covered how to create a project, and how to specify the project. With the specifications listed, now it’s possible to come up with accurate estimates, or size the project. Everything can be estimated and delivered. The person who dreamed up the project is responsible for listing out the ideas and how it’s going to work. Together with a UI person, he can then work out and deliver the wire frames. Then the business person, and the designer can get together and design out how all the pages will look, delivering the mocks. Finally when the mocks are delivered, they can be handed off to the developers, and the developers will be able to code everything. The better a job the business person does at being specific, the less likely he’ll be pestered by developers to clarify the business logic. Essentially, having the project broken down into these sections will allow the estimates to be much more accurate. The more complex the business logic, the more complex the code, and most likely, the more man hours it’ll take to code it.

MVP Minimum Viable Product

Tuesday, June 19th, 2012

Most Valuable Player? That’s what I originally thought, but in the start-up space, it means “Minimum Viable Product”. The LEAST you can do, to get your product to market.

The concept behind MVP is to test and collect data as soon as possible, saving time and resources. To construct a MVP, what you need to do is dream up your product, and the trim the hell out of it. You have an apple? Give me the core. You have an apple core? Give me the seeds!

The reason why you want a MVP, most likely, is for data collection and idea demonstration purposes. Often times, people have an easier time understanding your product if they can see it, or interact with it. Out of the two, interaction is often the best. We can try to explain things in all sorts of ways, using all different types of lingo, but the minute one interacts with the product, they’ll know in their own words what it does.

After your MVP is released and has fulfilled it’s role, and if the fates have decided in your favor, then you go ahead and tack back on all the things you’ve trimmed one layer at a time, until your dream comes to fruition.

That’s what MVP is all about apple seeds and fruition.

Tiny Tower Game: Getting Constant Waves of Tenants Strategy

Thursday, December 22nd, 2011

 

So I’ve recently stumbled across a game called Tiny Tower. I’m a programmer, an economist, and in the gaming industry. It’s game had my name ALL OVER IT.

A lot of people have stated that you should have your apartments 4/5 occupied to encourage more tenants to go to that floor. I found this to be a fallacy. I’ve rebuilt my tower 3 times now, and it’s safe to say, that I’ve discovered my most enjoyable mode of play. I like to have my stores stocked with nothing but people who DREAM of working for that store.

My Method

Keep apartments with vacancy count = occupied apartments + business floor count

My belief is that there IS NO floor optimization logic, the floor that a visitor requests is a simple dice roll. If you keep your have-vacancy floors = to occupied floors, then you’re guaranteed a 50% chance of visitors being a new tenant. I have 9 floors, 1 lobby, 4 with vacancy apartments, and 4 businesses, this strategy seems to be working so far, feel free to try it out for yourselves.

Have fun gamers!

Re-purposing of the Internet

Thursday, August 4th, 2011

Once upon a time, there were web pages where people went to find out things about a company. Thanks to web portals that aggregate this information, such as yelp. These web pages’ purpose is no longer the same.

You used to go to a restaurants webpage to get information on when the restaurant open, directions on how to get there, form an option of the restaurant and menu, but that was then. Now and days, we just use Yelp.com to check out the hours, review, and address. Then we use another aggregation site such as Google maps for directions.

The remaining question is “What do we now use a restaurant’s homepage for?”. For now, until we get an aggregate website for restaurant nutritional information, it’ll probably serve that purpose. In addition to presenting a single location to land on for discounts, company information, history, and etc. Until those subjects get aggregated too. Once everything is aggregated, the web site will more or less become a portal that directs the user to the information they’re seeking to an off-site location.

Dual Language Channel Videos

Saturday, May 21st, 2011

So recently, I started watching video files that had one language on the left, and a different language on the right speaker. Often times, people would simply turn off their left speaker, or right speaker, and watch the video with only one speaker. Unless you’re a big fan of, one-sided sound, this is simply not an option for me.

There is a way to alter the playback so that all the left audio of the video file goes to both speakers. I use media player classic, there are probably other ways to get to the following screen, but the concept is the same.

View > Options > Audio Switcher:

 

You click on view, click on options, and then select audio switcher. You’ll probably see Front left checked with 1, and Front Right checked with 2. If you check the boxes just like above, you’ll discover that all the left audio of the video goes to your speaker. Obviously, if you alter it so that 2 is checked instead, you’ll get the vice-versa.

I hope enhances your video watching experience, certainly did mine.

WordPress++

Wednesday, May 4th, 2011

Mmm… My blog’s most recent upgrade came with an unexpected surprise. Most of the time, I don’t expect any type of cosmetic or functional changes with my blog upgrades. Why would I? Everything seems to work fine. I upgrade to keep the security exploits/vulnerabilities of wordpress to a minimal.

Anyways, I’m pleasantly surprised by the navigation bar that appears when you visit your site, and when you’re logged in. There are a few workflow improvements implemented in the navigation bar. For example, I can just directly to “Add New Post” from visiting my blog while logged in. Some might wonder why is this significant, but it’s definitely significant. No longer will I have to rely on a tiny box on the right hand-side and notice tiny changes to it to know whether or not I’m logged in. I’ll have a giant bar at the top to remind me to log out.

If I feel inspired while logged in, I can jump from the homepage right into article writing. It’s not necessary, but it’s a welcomed change. Good job WordPress team, I didn’t have to download the navigation bar plug-in after all ;)

etc/hosts.allow files and IP ranges

Thursday, April 14th, 2011

I’ve inherited a pre-configured box and recently had to audit the etc/hosts.allow files.

For those who don’t know what etc/hosts.allow files are. These are files that services such as vsftp, sshd, and etc, would go to check, to see if certain IPs were allowed or not. If the IP passes the allow rules, then it’s allowed to use the service, otherwise, usage of this service will be DENIED.

Anyways, I’ve found a lot of x.x.x.x/xx rules, and I know their intention. They wanted to allow a range of IPs, in this specific case, they wanted to allow #.#.0.0 to #.#.255.255 where# is a number of a constant value.

Unfortunately, the allows rules didn’t seem to like the /xx format, and the easier solution was simply do #.#. since only the first few octets were interpreted, this allows #.#.x.x values to work, which means provides a #.#.0.0 to #.#.255.255 access. It’s also much easier to read.

Ticketing System vs Google Docs

Monday, April 4th, 2011

When I hear project collaboration, I almost immediately hear “Google Docs” afterwards. Google Docs is great, don’t get me wrong, but for task delegation and project coordination, Google Doc simply isn’t enough.

Let’s say Jack, Jill, Tom, and Bob were all to work on a project.

Here’s the scenario where they collaborate using a ticketing system like BugZilla, JIRA, or etc:

  1. Have a meeting to discuss what exactly the project is about. During the discussion, they’ll break the project down into little bite sized pieces. During this process they also configure the task tracker so that everyone is to be notified when a task is created, changed, assigned, re-assigned, or completed.
  2. They begin to work on the tickets.
  3. When they encounter issue, they make a note of the problem in a form of a “comment” and all the responsible parties are contacted via email.
  4. The party then responds to the email, another email is sent out with the response so nobody else has to and the task is completed.
  5. 2-4 are repeated until the project is complete.

 

If you were to use Google Docs:

  1. Have meeting over the net, everybody is constantly typing everywhere; they pour out there ideas onto a massively long document. At the end of the meeting, they all agree to start working on the project and go their own ways.
  2. They start working on the project, but they forgot who was delegated what. They scan the document for their task. The task seems to rely on previously discussed segments, so they scan the document for the related sections. They find everything the needed and began working.
  3. They encountered some problems and made notes on this document.
  4. This note goes unnoticed because it’s 3 lines buried inside a 15 page document. The person who worked on it now has to directly contact the person who might know information on this topic. They relay information with each other, and the person working on the task now knows what he needs to know in order to complete the task assigned.
  5. The task lasts a bit longer than expected, and now he has forgotten all the advice he was given. Luckily, it was in email form. Unfortunately, it has been 2 weeks, and it’s now buried in a mountain of spam.
  6. Mining through his spam mountain, he has finally got the gem of information he needed to complete his task.
  7. One of the project members finished his task, and wishes to pick up another task to work on, but someone forgot to strike out a task that is being worked on, or is completed. Feeling helpful this person starts doing the task on the other person’s behalf. Unfortunately, they’re two members working on the project now.

The list goes on…

The point is, in this day and age, with ease and availability of ticketing systems, just use the ticketing system. It’s clean, it’s transparent, and it’s efficient. At least until Google Project Collaborator gets released.