HN user

onteria

55 karma
Posts4
Comments27
View on HN

> Mockups: Photoshop (or Pixelmator for really tight budgets)

Only thing with Pixelmator is it's Mac only (unless I missed fine print somewhere). You might not have Macs laying around if you're on a really tight budget. Gimp might be good to throw out there since it's free and works on multiple platforms.

The Next Six Months 15 years ago

This is of course a subjective opinion, but something doesn't quite feel right about HP making a tablet PC. They seem to put out quite a lot of things without much of an overall guiding principle. HP PCs, laptops, printers, servers, now tablets. I ask myself "Why HP?" and can't seem to come up with a very reasonable answer. Nothing jumps out at me as seeing this as the best thing ever.

With Apple they have the whole underlying principle of "Think Different" or something along the lines of changing the status quo. Apple didn't really do anything new with the iPhone and iPad in essence. Smartphones and tablet PCs were already out there. However because it went with their overall message, it made sense. People wanted to include it in their "Apple Lifestyle" so to speak.

Just my .00002 cents.

Point 2 is somewhat of a difficult area on my opinion. When looking at programming books, I usually have the following process in mind:

* How in depth are the official docs? If you're going to read a book on a language, you need a way to validate the book's contents. How else will you be able to tell the book is not leading you down the wrong learning path? This also gives you a chance to check on if the language is right for you.

* How old is the book? If the book is talking about the language 5 years ago, chances are syntax and ways structuring your program (object oriented features may have gotten better for example) have changed. Make sure you have the most up to date edition, and complement it with checking the API docs. Well written API docs will generally indicate if a way of doing something has changed, or will no longer be supported.

* Look at the author of the book, and see how close they are to the community of the programming language in question. Are they the creator? Contributor? Someone else?

* What is the book trying to achieve? Some great books expect you to have basic knowledge of the language, or some other specific concept (MVC for example). Make sure you know what you're getting into. Some books also act as "desk references" that could be potentially replaced by more up to date API docs on the language's website.

There's probably much more that can be added to the list, but I think these provide a basic sanity check.

The potential bias causes me to doubt the article statistics. Take for example:

"More broadly, a recent survey of executives, managers and recruiters by the Graduate Management Admission Council (GMAC) found that 64% of them plan to hire new MBA grads this year, an increase from 60% last year."

The GMAC administers the GMAT, a test used by top business schools as a means of evaluating potential candidates. With this in mind, a positive looking survey would be favorable to them. "Look here! MBA hires are up! Now's a great time to get an MBA! You'll want to take the GMAT before you apply!" type of thinking comes to mind. I'd rather see someone besides GMAC or an academic institution doing these studies, but the question would be who.

Another story on the matter:

http://www.commercialappeal.com/news/2011/jan/13/convicted-p...

If he shows good conduct, they might release him as soon as November 23rd as confirmed by his entry in the The Federal Bureau of Prisons website:

(It was a very long search URL so I shortened it) Inmate Locator - Locate Federal inmates from 1982 to present http://tinyurl.com/6cv8r93

For those interested, here is the location he will be serving time at:

http://www.bop.gov/locations/institutions/ash/index.jsp

I tried to look around for a better source than the Daily Mail, especially on something scientific in nature. Unfortunately I wasn't able to find anything I could vouch for as authoritative. However I did notice the images in this page referenced many times in other sites:

http://www.indiashines.com/Balgates-photos-95294-dubai-artif...

If anyone knows of a better source or can find information about it on the National Center of Meteorology and Seismology website:

http://www.das.ae/

I'd be most grateful.

Just an fyi that this appears to be a paid course (about $500) judging from the Pricing link bellow the course add button. Nonetheless it looks to be a very interesting format.

The only problem is that if you look at the fastest response time, it's because it's simply text indicating that they're working on the project. No navigation or anything. The difference in content based on the expectations of what the services provide makes it difficult to grasp what one can get out of this.

Two questions after looking over your service:

* How do you plan to make money off of this? From your FAQ you appear self funded, and it doesn't look like there are any sort of fees attached.

* Since you're just starting out, there's a good chance that someone could sign up and not have anyone to do lunch with because everyone else is too far away. How will you handle this to further expansion?

From someone who uses mixi, I can comment on a few reasons as to why they'd prefer it against Facebook:

* The Japanese are big fans of anonymous

A lot of big sites in Japan are that way because of their anonymous nature. 2ch is HUGE in Japan, because you can write whatever you want and for a majority of users it's all anonymous. Yes, you can make yourself known to others, but it's highly frowned upon. Another site that utilizes this is Nico Video, a site which lets users comment on videos anonymously.

Mixi holds to that as well, though a bit differently. There are many users who utilize pseudo names to mask their real identity (myself included in fact). What you can hide from others is customizable in a very simple way. Your birthday, where you live, what your hobbies are.

Then all your content has privacy controls as well. Everytime you post something you can decide who gets to see it. Your friends, your friend's friends, a specific group of people, or no one. While facebook allows this as well, my opinion is that Mixi makes it very easy.

* It's about going with someone you trust

The Japanese are big fans of going with things that are close to their circle of friends, or very established. Mixi is a Japanese company that originally started as an invite only service. That's a big part in helping it spread. "Hey my friend invited me so it must be cool since I trust what my friend says" kind of mentatility means people are more likely to signup and the effect spreads. While mixi is no longer invite only, they require a registered cell phone number (there are other ways but few people speak of them for fear of their abuse). This keeps things "inside Japan" further increasing the comfort of use.

As for the features, mixi emphasizes "friends of friends" relationship. When you visit someone's profile, it shows if they're connected to one of your friends. "Hey this person is friends with my friend, so they should be all right" becomes the frame of thought. This gives users a comfortable way to expand their network with people that share their interests (there are exceptions of course).

Not sure how to search for people to become friends with? mixi has a feature called 足跡 (translation: footprint) which lets you see who has visited your profile page. It also shows you if someone is a friend of one of your friends. These views usually come from people who are interested in something you said, or a friend told them about you. This means there's even a higher chance that the person shares your interests, and it's easier to become friends.

* The Japanese are HUGE cell phone users

Someone already mentioned it, but mixi has an interface tailored to the cell phones provided by major carriers. They recently made one for the iPhone as well. As having a mobile site is a bigger deal over there, it was part of the architecture from the start.

There are other reasons as well, but I think these are the big ones for users.

Oh, a bit of a side note on hosting for startups. I know many people want to save costs by centralizing hosting, but as a word of advice keep your database, mail, and web servers separated. By not doing so you've created a single point of failure. Not only that, but it makes securing things appropriately more difficult (ie. you are unable to create only web server specific firewall rules for the server).

I don't personally host my own email, but I can see it from the perspective of data control. If you use Google Apps for example, your email exists on their servers. I personally don't mind that, but others may not be so welcoming. Also if you want a more detailed email setup with regards to routing and filters, it may be difficult / costly in finding a provider.

Also if you do get a report, it would be a good idea to keep an eye on the bugtraq and full disclosure mailing lists:

http://seclists.org/

where many vulnerabilities are released to the public. This is in case the reporter goes public without you knowing it.

Also it's a good idea to look the list over and see what types of vulnerabilities are hitting applications. Don't just fix a single reported exploit and call it a day. Find out what else could be wrong security wise with your code and fix those issues as well.

While I do recognize that the social nature of drinking for a lot of people will pull popularity around this, something worries me about the health implications of the service. Seeing what crazy things happen with the legal system, it wouldn't surprise me to see someone with a liver issue take legal action, stating that this service encouraged them to drink more than they should. Not a lawyer, so maybe there is a way for you to protect yourself, but this really needs to be taken into consideration.

PHP best practices 16 years ago

If you're preventing SQL injection, you do need to run the variable through a filter (mysql_real_escape_string, parameter binding, etc.) in order to prevent a successful attack.

The other issue is that if I encode entities when inserting html, that means I have to call this on every page view. For simple strings that's not too big a deal, but if I have a lot of content, this gets resource intensive pretty fast for larger scale sites with lots of people hitting a page at once.

In this case I'd rather due the encoding once, which handles a majority of cases.

The one thing I haven't seen much discussion on with regards to cloud based operating systems is the handling of local peripheral devices. Printers, scanners, video cameras, etc. These devices are used by a wide range of users, from someone who emails pictures to their family, to an amateur who wants to shoot their next film project.

Right now, these devices are not very cloud friendly. In general you plug your printer, scanner, etc. into a USB or Firewire port. From there the operating system needs to work with the printer through some kind of driver. With the sandboxing that I've seen with Chrome OS, it appears to be a rather daunting task to support a wide array of such devices.

Another issue is the bandwidth cost. Let's say I somehow make a video camera "web enabled". Instead of interfacing with the PC through USB, it connects through wifi or wired ethernet. From there you could upload your video to a cloud app that does video editing, or upload it straight to youtube. However, what happens though when it's an hour long video of a family wedding? Depending on the camera's storage format, this could turn out to be a giant gigabyte file, and will take a ridiculously long time to upload given standard broadband connections.

Until this issue has a good solution, I see it extremely difficult to achieve this "live in the cloud" philosophy. This is not to say it's impossible, just that it needs to be well thought out.

PHP best practices 16 years ago

A couple of notes I'd like to mention on this.

SANITIZE ALL USER INPUT. ALWAYS. NO EXCEPTIONS.

Examples of such user input include GET variables, POST variables, cookies, email, web services (yes even your most trusted partner site can be hacked), etc. If you don't have control over it, sanitize it.

That means using the appropriate parameter binding functionality of your database / abstraction layer when inserting data. Anything that displays user input text also needs to be sanitized for preventing malicious client side code (XSS).

As noted in this article, I recommend having a global include file that all other files can utilize. This lets you define the absolute path to various directories that your application can utilize throughout the code base. If you ever need to switch locations, you only need to change the config variables and not your entire codebase.

How to work with databases is often a touchy subject. On one hand you have data abstraction which helps remove many of the deep down logic on how to interact with databases, saving the programmer's time. Indeed, if you switch to another database that is supported by your abstraction layer, it will be easier to migrate. Unfortunately, if you start writing SQL specific to that database, the "easy switch" advantage starts to become null and moot, as you'll have to rewrite much of your SQL anyways.

On the other hand you have those who write SQL code specific to the database at hand, making sure to utilize the best performance possible. One thing to also take into consideration is that with data abstraction, you will have to go through the logical branches that the abstraction provides every time you want to work with the database. If you need to do a very large amount of queries constantly, you may start to notice the side effects of this in terms of speed. It's best to take these issues into consideration when designing a database driven application.

With regards to localization, I recommend looking at PHP's gettext extension:

http://us3.php.net/gettext

With this approach, you can provide links or a dropdown to set a session variable, and all strings can be localized to that session variable's value. Obviously you will have to use the gettext functions wherever translatable strings are available, but it's well worth it to make the ease of providing newly translated versions of your site a matter of just doing the translations with minor tweeks here and there.