HNHacker News
TopNewBestAskShowJobs

pygorex

315 karma · joined February 21, 2011

http://leepowers.net/
submissionscomments
pygorex··on The one interview question I always ask
My point wasn't to encourage obfuscation or one-up-man-ship but to encourage communication. My point is to stand against formulaic questions that tell neither party anything of value.
pygorex··on Don't use bcrypt
> Its a disservice to keep telling people that they are too stupid to understand something

That's not the point. Specialization - developing a deep understanding requires time and effort. As a developer choosing a way to store passwords securely is one task out of 1,000 I'm responsible for. So I acquire a general understanding of cryptography to make a decision - but that decision relies heavily on experts and consensus. The worst thing I can do as a developer is to go down the rabbit hole of cryptography and spend 10 hours researching an optimal password hashing scheme for my app. Sure, I've begun the journey of having a deep understanding of crypto - but I still have 999 things to do!

Which reminds me I need to get off HN and get some work done .....

pygorex··on The one interview question I always ask
During an interview both sides should be asking questions in an attempt to explore whether the position is a good fit for the prospective employee. If as an interviewee I'm free to ask any question I want I will get to the questions that help me explore the nature of the company & position. That's the whole point of the interview process

Asking me to prioritize my decision making process into 3-5 neat little bullet points ranges from annoying and insulting. In asking the question the interviewer sounds like this:

Interviewer: "I'm assuming you haven't thought through your requirements for being an employee of my company. I could engage you in conversation like a normal human being to find out what you want. But I'm too lazy for that. Please summarize what you want in a convenient format that I can easily understand."

Interviewee: "This guy doesn't like to think. He values simple answers over process & conversation. I might have one 'bullet point' that requires a dozen questions to figure out. I might have a dozen bullet points that could be answered with two questions. Instead of talking to me he wants me to tell him what I want to hear. I'm outta here!"

.... see?

pygorex··on The one interview question I always ask
Meh, not so much. The interviewer should be to telling the interviewee the requirements for the position and asking incisive questions that determine if these requirements are met. I can't tell you want you want
pygorex··on Show HN: Firehearts - Interactive heart-shaped fireworks in 1017 bytes of JS
Try clicking in one spot quickly and repeatedly for a heart-gasm. Chrome handles it fine, though this technique might crash lesser browsers.
pygorex··on Ask HN: Background Check APIs?
I'm also interested in a similar service for a startup.

BeenVerified seems to fit the bill:

http://www.beenverified.com/home/web_service_api

pygorex··on [Cheat Sheet] Character Entities for HTML, CSS and Javascript
Thank you. I've been looking for something like this for a while now.
pygorex··on Did You Hear We Got Osama?
Chomsky is well-read because he wants to say insightful things. No one is remembered for being well read Chomsky is well-know because of his contributions to human knowledge - being well-read is a step towards building interesting things.
pygorex··on You don't need a logo, you need a type face. This is the best way to find one.
Chrome 17 OSX10.6.18 - sometimes a new font loads on one click, sometimes on two or three+ clicks. This may be due to a slow internet connection - maybe the first click registers then takes several moments to load the next font? Also there's no visual feedback that clicking on a page area will go forward/back. Sometimes a pointer cursor appears, sometimes it doesn't.

Poor UI design. I'll stick with Google web fonts or the multitude of commercial font sites.

pygorex··on Rules of a Zen programmer
Agree. That impulse to disregard & denigrate those who make mistakes is strong, and I've made that mistake often. Looking back I see that copping that attitude is a major cop-out. It's so easy. Being nice & teaching where you can - that takes real balls & brains.
pygorex··on Web Standards
Browser developers are going to innovate new features. A standards body doesn't drive innovation. Innovation is not a top-down process. A standards body exists to ensure some level of interoperability between browsers.

What Prefixgate shows is that a W3C standard is not a rigid set of laws like the 10 commandments. Rather a W3C standard is like a peace treaty - all adherents agree to respect certain protocols and behave in certain ways, buy are free to pass whatever laws they want within their own boundaries. Assuming that these proprietary laws do not conflict with existing treaty stipulations.

Peace treaties give us access to the best of both worlds: vendors are free to innovate as they see fit, yet they still commit themselves to some level of interoperability. Innovations influence the standard and the standard ensures that all vendors adopt the best innovations at some point.

The comparisons between IE of old and Webkit are incorrect. Microsoft has a history of implementing standards incorrectly (http://www.quirksmode.org/css/quirksmode.html) and bullying standards bodies (http://techrights.org/2011/09/06/michel-levy-comes-out-swing...). When it comes to standards Microsoft does not act in good faith.

pygorex··on Why not to do a local + online startup (and what to do instead)
This analysis is spot-on. Especially when it comes to getting small businesses on-board. Groupon, one of the champions of local, spends massive amounts on educating and selling local businesses on the value of daily deals.
pygorex··on Show HN: Fed up with WebEx, so we built a way to screen share in under 20 sec.
Two questions:

1. Right now my screen share app of choice is TeamViewer. You could own this space if screen control was added, very easy to setup and use.

2. Monetization strategy? Are you looking to monetize this app?

pygorex··on FTP Must Die
FTP is like religion: poorly designed at inception, implemented a thousand different ways and accepted as normal only because it's ubiquitous.
pygorex··on Philosophy - What's the use?
Philosophers are a lot like programmers. The car you drive, the clothes you wear, the food you eat - all of them are touched in some way by a computer program - even if you personally are unaware of how these computer programs design things and route people & things. Philosophy is like this - the most ardent Bible (or Quran) thumping fundamentalist makes a bevy of philosophical arguments, even if they do a poor job of it while they are unaware of it.

As with programming, the more esoteric and technical aspects of philosophy can be difficult for the layman to grasp. No policy maker would dream of de-funding computer science education because it's obtuse to the general public. Yet somehow technical difficulty is a knock against funding philosophy education in the USA....

pygorex··on Why Don’t Smartphones Have A “Guest Mode”?
You mean Fast user switching? http://en.wikipedia.org/wiki/Fast_user_switching
pygorex··on Why Don’t Smartphones Have A “Guest Mode”?
IOS is really a stripped-down Unix-variant (BSD). You know, Unix, the world's most ubiquitous operating system, that supports multiple user accounts out of the box.
pygorex··on The MicroPHP Manifesto
"The MicroPHP Manifesto" is actually "The Lone Programmer Manifesto".

Programming in today's world means working with other people's code. All a framework does is provide a set of design patterns and standards that a group of programmers can adhere to. This encourages code reuse and allows you as a programmer to create "black boxes" - components with a well defined programming interfaces that behave in a consistent & predictable manner.

Real-world example: I'm currently working with a custom-built CMS programmed in PHP. I'm the second man on a what began as a one-man project. The CMS author wrote a bunch of database functions (essentially wrappers for the deprecated mysql_* functions) and dumped them into a file. Now, the author wasn't aware that you can (and should) lazy-load database connections - so every time you need to talk to the database, you have to manually connected using `cms_db_connect()` AND select the database with `cms_db_select(CONST_DATABASE_NAME)`. As pretty much every page initiates a database connection this code is EVERYWHERE.

And this is only the tip of the iceberg. There's also a half-assed MVC implementation, ubiquitous usage of inline CSS, un-encapsulated code, and a butt-load of quirky behavior. Now if the original author had take a little bit of time at the beginning and researched a proper framework or used an existing CMS our project would not be behind schedule - and it would be far easier to add another developer into the mix. All this meaningless complexity because the original author took the "simple" route of not working with a framework authored by third parties.

pygorex··on URI.js is a facility for working with URLs
PHP's has mature URI parsing using several built-in functions that provide very similar functionality.

parse_url http://us.php.net/parse_url for getting URI components

parse_str http://us.php.net/parse_str for getting query string variables

These two functions take care of the vast majority of my URI parsing/creation tasks.

Of course it would be nice to have a fluent interface like URI.js via a PHP class. And the URI normalization functions.

pygorex··on My Ultimate Developer and Power Users Tool List for Mac OS X (2011 Edition)
* Teamviewer. Cross platform remoting: http://teamviewer.com/ I use it for support sessions and remote pair programming.

* Parallels. VM. Use it primarily for testing web apps in older versions of IE.

* Netbeans. Great search tools (search in files, search for classes, functions).

pygorex··on Attacking NoSQL and Node.js: Server-Side JavaScript Injection (SSJS)
Also: don't eval() user-supplied strings.
pygorex··on Startups Are Hard. So Work More, Cry Less, And Quit All The Whining
> Work hard

Yes - a strong work ethic is needed to build a company. But hard work won't save a mediocre idea or flawed business model. Don't work hard, work smart - which means working long hours and pushing a deadline when needed. It also means being skeptical and ruthless with your business model, validating your ideas and pivoting when needed.

> Cry less

No. Cry more. Vent and complain. Give yourself emotional release. Your brain needs it. And how can you code optimally or run a company properly when your brain is working at partial capacity?

If you are smiling, happy and confident all the time when building a startup you are probably a deluded idiot. That being said - always exude confidence to your customers and strategic business partnerships. (insert witty remark here about sausage being made) However ALWAYS be brutally honest with yourself and your team. If you are honestly challenging and validating your idea and business model you will lose faith from time to time and may even slip into a funk. THIS IS NORMAL. If you're honest with your team they will find a way to help you through.

> And realize you’re part of history.

This is true in the sense that you are living and breathing and working during the early 21st century - you are a part of history (by this definition every dog is also a part a history, so don't get too excited). But it's highly unlikely that you will make history. Like most people (and most dogs) your startup will toil and die in obscurity. It's absurd to concern yourself with your legacy before you've built something of value. Build a great company and let history make up it's own mind.

pygorex··on InsertAdjacentHTML() Enables Faster HTML Snippet Injection
Another highly performant DOM manipulation technique that has wider browser support and works on FF versions prior to 8: DOM Document Fragments http://ejohn.org/blog/dom-documentfragments/
pygorex··on Mercury editor - full featured html5 wysiwyg editor
The toolbar works for multiple areas on the page. After clicking on "Test It Out" you can focus on and edit the "Mercury is a full featured HTML5 ...." and "Core Features ...." page sections.
pygorex··on Using Video to lift landing page conversion [Case Study]
First: the link to Vidyard.com is broken in the opening paragraph of the article.

Second: know your audience. It's not surprising that a landing page for a video startup would benefit greatly from having an actual video present. It would be awesome to see a result set from a wide range of start-ups.

Third: The real-time video analytics are awesome. When looking at realtime can you rewind or scroll the realtime chart backwards in time?

Fourth: When visiting a new web site I tend to be brutal - if I don't "get" the site within the first 5-10 seconds I move on. If my interest is piqued in the first few seconds but I'm still not convinced I will jump to a video. I rarely go straight to the video (though I imagine if I looked at a dozen startup landing pages a day I would probably hit the video first). If my behavior is typical it seems that a video is the tipping point for users already primed by the rest of the page.

pygorex··on Show HN: SHA1 Checksum Large Files with HTML5 Typed Arrays and Web Workers
Cool concept and a great usage of WebWorkers. I can see this being useful to verify the integrity of files uploaded via an HTML form - get the SHA1 client-side and verify it against a SHA1 server-side.

Unfortunately this implementation is way too slow for large files. In Chrome 15 OSX running a Core 2 Duo 2.4GHz an ~650MB file takes about 9.3 minutes to calculate the resultant SHA. Using openssl the hash generation takes ~8 seconds. (Bearing in mind that it's not fair to compare an interpreted script against a compiled program.)

pygorex··on Richard Stallman’s rider
The man is thorough. This line made me lol:

"I do not eat breakfast. Please do not ask me any questions about what I will do breakfast. Please just do not bring it up."

pygorex··on A Case for Strongly Typed HTML Templating Languages
FTA:

> Is this full type checking overkill?

Yes.

> But considering the huge number of websites and web applications written every year, and the massive difficulties we consider with browser testing and compatibility, it sure would be nice if web developers no longer had to consider whether their HTML was valid or not, and instead have more time to focus on the things that really matter.

As a web developer I can tell you that generating valid HTML is trivial. Even when working with large, multipart systems like Drupal and Wordpress, the developers and plugin writers do a phenomenal job of creating a single, unified DOM. This is remarkable: thousands of individuals can contribute to a project that outputs a single page of perfectly valid HTML and corresponding CSS/JavaScript assets. (This code is not always optimized, but it is valid).

Generating valid HTML is a solved problem - even in complex systems. Creating a new templating engine doesn't add any value.

The time and aggravation that occurs in web development is as follows: even if I create a perfectly valid & consistent HTML/CSS/JavaScript web page it will not be rendered the same across web browsers. Let me repeat that: as a web developer even if I honor the contract outlined in a specification there is no guarantee that the same contract will be implemented in a consistent fashion across browsers.

pygorex··on Editorial: Facebook’s new sharing is anything but ‘frictionless’
What Facebook seems to be missing is the same thing this article is pointing out: monitoring is not the same thing as sharing.

When I write something on a blog or like/upvote something I'm actively curating my experience for others. Knowing what songs I'm listening to isn't that valuable. Knowing which songs I like and knowing why I like them is the value-add.

pygorex··on Not Sharing Is Caring
Frictionless sharing without proper curation could kill Facebook. Friction naturally encourages the crowd-sourcing of curation - by having to click a share button or fill out a simple form I'm forced to think about what I'm sharing and the context to present it in. Knowing what songs my friends are listening to right at this moment isn't very useful information. Having a friend reminisce on their wall or tweet about about the one time they heard that song live, in-person and the epic good times that followed - THAT is truly "sharing", that is the "why" and not just the "what" that makes sharing addictive.

Can a bot or algorithm augment or emulate the magic of crowd-sourced sharing? Or will it throw Facebook into a Myspace-esque clusterfuck?

← PreviousPage 3 of 4Next →