HN user

robmclarty

128 karma

I'm a full stack web hacker (I implement designs and design with implementation in mind). I also do some copywriting, marketing strategy, sys ops, and information architecture.

Posts12
Comments102
View on HN
The XY Problem 11 years ago

You're right that I would present the same way.

I just get frustrated being told what I want, being upsold, and being made to feel as if I don't know what I'm talking about when in fact I probably know a lot more than the sales person who has probably never used the device in question the way I've described I will be using it.

I understand that the general case is better serviced this way, but for someone who walks in knowing the part numbers they want, the added friction is a turn off.

I personally avoid going to Apple stores because of how hard it is to actually buy stuff there. Even grabbing a simple USB key off the shelf is incredibly hard to pay for when the cashiers are all hiding in a sea of other people.

The XY Problem 11 years ago

Or at the Apple store! omg, the number of times I've walked in, gone directly to a sales person to request that they kindly go to the back room and retrieve a specific item for me so that I can give them money and been stalled, interrogated, and counter advised on other products when really I already know what I want and just want them to get it for me.

me: "Hi, I'd like to buy a White 13" Macbook with a 500gb HD and 8gb of RAM. Could you please get one for me?"

sales person: "What are you using it for? Do you browse the internet? look at photos? do a lot of word processing?"

me: confused "um, I do web development and use Photoshop sometimes..."

sales person: "Oh well you need a Macbook Pro then."

me: "no, I can't afford that and the regular Macbook is plenty powerful for what I need. Can I just buy one please?"

sales person: "Photoshop won't run well on the regular Macbook. What you really want it the Macbook Pro. You'll need at least 16gb of RAM and if you're editing photos you'll want a bigger harddrive, not to mention the extra power that comes from the Pro's CPU."

me: "um, I have money in my hand right here that I will give you in exchange for a regular Macbook. Can you please go get one and take my money?"

Don't React 11 years ago

I agree with others that the author seems to be missing the point of React. Whether or not it is "reactive" or doing things the way you're supposed to do them is irrelevant. It's a tool, and it either helps you fix your problem, or it doesn't. IMHO React helps a lot.

I've built a few non-trivial apps with React this year (e.g., https://github.com/robmclarty/barss), and after years spent building and maintaining apps made with backbone, angular, jquery, and other libraries (considering the domain of React => the view) I can easily say that React has saved oodles of time, allowed me to greatly understand my apps as a whole much more clearly, and enabled me to think less about propping up a structure for my app and focus on actually designing my app.

The point is, it's not about what's passive or reactive or [insert enlightened path to programming here]. It's about what works; what keeps the ball rolling; what gets your app online and in front of users.

When it's snowing outside and I'm making a decision about what I should cover my feet with, I'm concerned about "what will keep my feet dry?". When I'm moving across town into a new apartment, I'm concerned with "what will have enough volume to transport all my junk?". When I'm making an app, I'm concerned with "what will make this design in my head work in a browser?". Whether I wear boots or shoes, whether I use a diesel truck or a gasoline van, or whether I use React or Whatever; that's not what's important.

I like that React doesn't drag me into event-listener hell where stuff is firing from somewhere that I don't know where. I like that React compartmentalizes templates with the behaviours that manipulate them. I like that React passively alters itself based on state changes.

When it comes down to it, an app is, simply, an interface for mutating and presenting data. It can be in one of many possible states at any given time. React just presents a view of the app that is based on its current state of data. With React, all I have to worry about, conceptually, is "what's the data?" and my app reconfigures its presentation accordingly.

TL;DR At the end of the day it doesn't matter what's right or wrong, it matters what realizes your intentions as a programmer (and as a human). The way React works makes my job easier, more productive, and faster. It doesn't suck at all.

These new rules seem reasonable and no different from what businesses are/should already be doing.

Does "consent" apply to websites which add an "opt in" checkbox but check it off by default and hope that nobody sees it?

This really irritates me and I would argue does not constitute my having given my consent to receive emails. That said, I don't see an easy way to distinguish this kind of practice from a legitimate opt-in checkbox.

Exactly. If you don't want to burden your little head with OPAs and APIs and application architectures, just stick the jQuery and happily manipulate the DOM here and there as you see fit. If you want to make something bigger, something more app-like (in your browser), something that's not merely a web page, you're going to need some structure like that found in an MVC framework.

Coming off working on a large Backbone app, I've seen how bloated, needlessly repeated, and painstakingly verbose things can get. Angular solves a lot of the problems I have with Backbone by taking care of basic plumbing for me so I can focus on the unique parts of my app. It's magical, but that's what I want in a framework: less pounding out boilerplate and more writing application code.

Don't be a used-car web dev then. Be the luxury sedan - sport car web dev. I explain to my clients (not necessarily through this analogy) that I'm definitely not the cheapest dev/designer they'll be able to find, but that they'll gain more quality, etc. for more money with me (with case studies to back that claim up). I don't sell my clients used cars, and so they don't expect to pay used-car rates with me ;)

Great quote.

I think we all understand that spaghetti code simply adds time to the next feature we want to introduce, probably creates unseen bugs, and might explode. But it's always a balance and nothing is black and white.

I hear a lot of "you're wrong, do it the right way first!" but you gotta balance "the right way" with its context. Code isn't made for code's sake, it's made to do something (like a business objective, like "be able to order a book through my browser"). Businesses are trying, first and foremost, to make profit, however they need to do that. Beautiful code has nothing to do with that goal, but is sometimes a means to that end.

If the code achieves the business objective it was meant to achieve, it's doing its job (however minimally). Customers don't care what the code looks like (if they look at it). They just care that it does what they need to do (like order a book). Businesses don't care what the code looks like as long as it makes profit.

Secondary to the business objective is how that code fits into the greater context of the system-as-a-whole. Obviously badly written code is going to accrue technical debt, which will likely lead to cumulative delays to new features, cause things to break, etc. The extra effort involved in dealing with that debt is obviously going to cost something, which will have an affect on the primary goal of business: profit. But also delaying a feature, to "do it right the first time", that could be earning revenue, is also going to affect profit. The key is to balance it to maximize profit overall.

When I do anything (code, draw, write, cook, paint, dance, whatever) I start by doing it the simple, easy, fast way; I probably fuck it up; then I iterate and try to improve upon it and refactor. Usually in getting something out there I discover new solutions that I would not have seen had I not actually made something and put it into the world where I could look at it and point to it and talk about it with other people. Being an early mover aside, I think this kind of process helps overall quality anyway. And in the meantime I've got something that's at least doing something.

I think Joe Armstrong knows what he's talking about ;)

I agree this is a bit of overkill for a "my first hand-coded website" project. I've been hand-writing websites for over 15 years (back when all I had was Notepad on a Windoze box). I think I'd approach this sort of learning adventure more along these lines:

1. HTML/CSS (This is the end-result a browser needs, and you can write it all by hand yourself; by not using any grid/layout frameworks you'll learn all the fun things that CSS can do for you and you can focus on making clean semantic markup without any other dynamic distractions.)

2. Do some simple backend stuff that now dynamically generates the above HTML/CSS based on some simple logic (I'm thinking PHP to start because it's on almost every server already so you don't need to worry about installing anything... just get used to the idea of generating the above static HTML with some programming logic.)

3. Add a database (probably going to want to go with MySQL for the same reason as PHP; learn how to store data in the cloud and retrieve it to show in your dynamic pages)

4. Maybe learn some server config (probably Apache) but don't get too carried away because you can do a lot before you need to be installing Apache modules and tweaking environment variables... I'd just start by playing with redirects and error pages)

5. Now that you can build a full-stack website, I'd probably beef up my graphic design skills to make that shit sparkle (Usability, information hierarchy, and clear communication are the names of the game here. Design skills can make up for many technical difficulties if you think about the business problem you're trying to solve, not just how fancy you can make your sorting algorithm)

6. With the fundamentals under your belt, now I'd start looking into frameworks and libraries and helper tools that can make all of the above easier and faster. Now you'll understand what those tools are really doing for you and where they're appropriate to pull out. Get your CSS grid, your LESS compiler, your deployment tool, your database inspector, your autocompleting IDE (if that's what you're into) and make the computer do the grunt work, but now with the understanding of how it's helping you so that you can bend it to your will.

7. Move on to more advanced stuff like front-end MVC, non-blocking backend, websockets, streaming, ssl, localstorage, scaling optimizations, etc. But now that you can do the foundation yourself, you can add-on any of these advanced techniques as needed (no one in particular is absolutely necessary as they are specialized to particular tasks).

To me, this is the sort of DIY path that should be taken, step by step, to really understand how to construct a web property. IMHO the OP jumped into the deep-end a little too early. Learn to walk before you run ;)

The thing about computers is that yeah, they're awesome at communication, but they do a lot of other stuff too that has nothing to do with person to person transmission of information. IMHO task-oriented UI makes the most sense because I use my computer as a general-purpose tool to get stuff done. In all use cases I find myself performing a type of task. Only in a subset of cases do I find myself communicating with a person.

I guess I'd call myself more of a power user, but when I look at what I've got going on my computer at night it typically looks like this:

- playing a video game

- talking to arbitrary group of friends on skype over headset

- streaming video to twitch (to whomever is watching)

- programming my side project on my laptop during downtime (waiting for people to connect in-game, etc.)

- browsing the web (looking up game items, watching funny videos, researching some kind of programming thing I'm figuring out)

- monitoring my inbox

- monitoring my twitter feed

Talking to my friends on Skype is definitely direct person to person communication. But even then, I think more along the lines of "1. I want to have a group conversation with Friend A, B, and X, 2. I'd like to communicate with them through the medium of Skype, 3. open Skype 4. add the specific friends I want to talk to to my conversation, 5. go ham". There's no one friend in particular I would "open" first, and subsequently open other friends into. That seems backwards. It's more about what I want to do, not necessarily who I want to talk to.

Then I guess my question is this: why is a mostly visual interface/representation mainly controlled by non-visual means? To me, a mind-map is not a "power user" tool and is used for organizing loosely understood ideas in hopes of getting a better grasp on their domain.

IMHO it should be something easy to play with, move things around, unstructured (in the sense that a user's stream of ideas won't necessarily be coming into the program in a structured way; the point of the program being to structure them), and be able to make many corrections and revisions. The goal of the tool should be to take unorganized thought and mould it into a comprehensible hierarchy that can be used to communicate ideas to others.

The article was about how great Apple names things and how bad everyone else does. My point is that Apple's names aren't some brilliant miracle of nomenclature like the article makes them out to be.

Obviously if I'm going to drop $500+ I'm going to kick the tires and take the product for a spin around the block to see how it feels (and maybe even read its specs).

I think what Apple does do well, and which the article points out, is that they limit their offerings to a number I can count on one hand, the differences between each being obvious tradeoffs (e.g., performance vs. portability) which consumers can actually decide between. This empowers consumers, makes them feel good because they understand what's happening, and likely leads to increased sales.

Lol. I agree the argument is a bit misleading. Apple products can be considered to be just as confusing.

Apple Product Names:

- iPad - iPad 2 - iPad - iPad /w Retina - iPad Air

Which iPad do I buy!? I'm thinking, maybe, the iPad 2 because it must be the most current and advanced model :P

For sure. Bootstrap is good for... bootstrapping. After you've got your MVP working and you're ready to make a real, custom, unique, differentiated, improved user experience, you're going to need to hire a designer and someone who can write CSS. Bootstrap isn't going to make the interface for your Great New Thing (TM) and if your great new thing can be built with Bootstrap... idk, maybe it's not so great?

The interface was a complete mystery to me. I clicked and dragged and hit enter and gave up. I read the manual and discovered the insert key (although I don't have one on my mac laptop) and then used tab. But I need to use my mouse to click on a node and then tab and then back to mouse and tab... seems awkward. Could you make it so i can just click and drag from a node to "pull out" a new node and have that default to have focus so i can just start typing?

With any of these sorts of programs, I think it's good to keep the pen and paper interface in the back of your mind. If it's easier/faster/more intuitive to use pen and paper, I think there's still some work that needs to be done on the interface ;)

Word Theft 13 years ago

Funny. I had a similar experience myself in art class in high school. The assignment was to take a photo from a magazine and reproduce its likeness with pencil and paper. I must have just had good shape and spacial recognition because the drawing I made just happened to be approximately the same size and proportions of the magazine photo I was using as reference and, so, the teacher accused me of simply tracing it. I got a zero on the assignment and was accused of being a hack in front of all my peers even though I drew it freehand, from sight (the way we were instructed).

IMHO there's too much emphasis placed on doing things the "right" way and not enough on actually getting things done. Even if I did simply trace the photo, I still would have had a learning experience, engaging pencil, hand, and paper and understanding a bit more about how they work (to me, the purpose of the assignment). Regardless of how a thing is made, if it actually gets made and gets into other people's heads and gives them an experience worth having, I think it has done its job.

I took up my dispute with the vice-principle along with my parents and redid the assignment on thick, opaque card-stock (that couldn't possibly be used to trace through) and reproduced another photo with just as much accuracy. I went on to attend art school and win illustration awards despite my horrible experiences with art in high school, but I worry that another student might have abandoned their pursuit of art and deprived the world of their creativity, given such negative feedback. I feel we all need to lighten up a bit.

Word Theft 13 years ago

Very well put.

I believe this sort of expression (of remixing and building upon and expanding or contracting) is good and healthy and artistic and should be considered an acceptable aspect of creative expression. How original is original? The fact that we are using a common language already ties us to a past cultural history upon which we build up the meanings in what we say and write (i.e., unoriginal from the get go).

I think there are certainly varying degrees of similarity that can be seen in different bodies of writing; some closer to the exact words of others. But at the end of the day, how much does this really matter? I'm more interested in human expression, however it needs to be done, than quibbling over who did what first and by how much.

What little money can be had, yes, might want to be protected so that more art can be produced, and maybe fame can bring a mild sort of immortality to reward the struggling artist. But I don't think what compels us to write (or create) is something we do for fame or fortune. I think it's more to do with adding to the fabric of culture and playing a part in the drama of human history.

I think the "leaving the windows open" argument is wrong. As far as what's right and wrong is concerned, I should be able to leave the door wide open if I so choose. It's my car. If someone comes along and steals my car, however, I would call that wrong and the thief is at fault. Obviously, I don't want my car stolen (because I need its utility) so I take preventative insurance measures to avoid the potential burden of losing use of my car, talking to the police, and hunting down the thief. But, imho, that's my choice and I don't think I'm actively causing others harm by leaving my windows down.

To add some genderism to the fire: if a woman choses to wear clothes that some would consider "provocative" is it her fault that she gets raped because she was inviting undue male attention? Is she simply "asking for it"? I don't think so. And I think it's a human's right to freely express him or herself as s/he choses. If I want to leave the window to my car down, that's up to me, the owner of the car. If someone steals my car, that's their fault.

As far as software security is concerned, I think there are definitely reasonable and unreasonable steps that can be taken in the development of it. But I don't expect the developers of the software I use to be on the edge of their seats watching the internet for the every single security exploit that pops up so that they can instantly apply a patch. I do expect them to take reasonable steps to reasonably secure the software, and when something becomes obvious, to deal with it. When I entrust the storage of my personal details with a website, I have certain expectations about how that information is handled, but I don't expect it to be 100% impervious to attack.

I also think there lies some responsibility with the user to choose to use software they trust (trust being a spectrum, not a binary distinction). For example, I wouldn't expect a lot of security from some kind of seedy porn software, and would actually expect the software to actively compromise my system. If I chose to install such software, I think I'd be partly liable for installing something that is obviously insecure. But I have different expectations from my banking software. I think those expectations, which are relative to particular industries and markets, and which are fuzzy and ill-defined, are partly a user's responsibility (but not wholly... I still expect my bank to reimburse me if someone breaks into their database and steals my money).

My point is that liability in software security, to me, is a fluctuating grey area, and that the areas are defined differently for different kinds of software which should, at least partially, be apparent (and avoidable) to the end user.

I'm not trying to defend Snapchat or say that you should leave your car unlocked, just that I think these kinds of issues are not black and white, nor that one party is 100% wrong and another party is 100% right.

Haha, yeah I've dipped my toe into continental-heidegger-psilocybin-phenomenology and it's wonderful Being. I'm still trying to answer WTF (in general). I haven't read Deleuze. Maybe I'll check him out next!

I'm feeling like the more I look for definitive, objective answers, the more I'm pushed towards things like art and aesthetics; human expression, shared being, and culture. Those things seem more real to me than quantum mechanics or string theory. I'm not sure what to make of it all, or that anything can be made of it at all, but something sure is happening, and I feel, simply, that I want to be a part of it and play with whomever will join me :)

Cool. First of all, just let me say, that arguing about consciousness today has been very exciting and fun. Thanks for participating :D

My position is not the norm, for sure. I used to think along the lines you're describing (some sort of Churchland connectionism or dynamic system), and was driven to find a way of reducing consciousness to something that could be reproduced in a computer. But the more I learned the more I saw the gap between neurons and experience. I don't know for sure if it couldn't eventually be explained with some future advanced physical/chemical/biological theory, but right now there seems to be a big gap.

If we could look at all the pieces leading up to experience under a microscope, I still don't think there would be a way of seeing someone's experience or subject it to proper scientific scrutiny short of actually being that someone. That is, I don't believe that any set of facts would ever allow me to know what it's like to be someone else.

I think the monism Nagel describes in the book I linked to is an interesting idea of how things like consciousness, cognition, value, and intentionality can be compatible with materialist realism while still being something different without necessarily deriving from divine intervention or subjective idealism.

I guess I didn't see it as a straw man.

"Are you made of matter? Are you concious? If so then the matter you are made of is concious"... implying that if you are both made of matter and conscious then it is the matter that you are made of that makes you conscious. In other words, consciousness is caused by matter.

I don't believe that we have sufficient empirical evidence to determine a causal relationship, only a correlation.

EDIT: I realize I mistakenly jumped to the conclusion that the parent was implying matter caused consciousness when all that was said was that "conscious matter is conscious". I just wanted to further explain what I was thinking. Straw man or not, whether my argument was sound or not, I thought I had a valid point to make to contribute to the conversation and I don't feel that it should have been downvoted.

First, argumentum ad hominem (if you don't know what that means, you can read about it here: http://en.wikipedia.org/wiki/Ad_hominem).

Second, my background is actually in Cognitive Science and Artificial Intelligence which includes Comp Sci., Psych, Psycholinguistics, Linguistics, and Philosophy. That is to say, I've put some serious thought into these issues and am not making opinions willy nilly.

Third, personally, I want to be able to explain the universe in terms of neat physical laws and mathematical formulae. But I don't think (at the moment) that what we have (yet) sufficiently explains what's going on (especially in terms of consciousness).

The common "explanation" for what consciousness is (usually put forth by materialist-determinist science) is that it simply emerges from a certain complexity of matter (put enough genes and DNA and neurons together and, bam, consciousness). I just feel like that begs the question. If we're going to explain what consciousness is I think we need to do better than that. That's all.

Oh yeah, I'm very interested in historical circumstances and matter combinations that have seemingly given rise to consciousness.

But saying "[when] you pile up a certain number of neurons at a certain complexity you get consciousness" is begging the question. What is consciousness. What is it in the neurons that makes it? What is it about the universe we're in that allows for the phenomenon to emerge from it? This has always been how science has explained it to date: it just emerges from the complexity. But that doesn't explain anything >:|

I agree with you. And I don't think "being conscious" is like "being liquid". Liquidity is a description of physical attributes. Consciousness is an existential state of being (whatever that means).

I think it would be nice if we could explain everything we observe in the universe in terms of physical laws and mathematical formulae. But I don't think we're there yet.

And why not a possible divine explanation? Last I checked, we haven't completely ruled it out. It's not a trap. At the very least, materialists should be able to counter divine arguments, not just ignore them.

I just think it's not as simple as that. I may very well not be able to distinguish the difference between electrode-stimulation and actual-cake-in-my-mouth. What I'm trying to say is that I don't believe that even an exhaustive list of physical information about my brain includes "what it is like" for me to have the experience qua experience.

I don't agree that conscious experience is necessarily reducible. When I put a piece of cheesecake in my mouth, certain electrical signals will likely be firing in my brain, but those signals don't mean what it's like to consciously experience cheesecake in my mouth. That is, the signals themselves aren't indicative of the quality of my experience that only I, myself, can have in my conscious existence. The signals are only a physical correlate to my experience. I don't experience electrical signals in my brain. My experience is different than them.

My point is, there is other stuff out there in the universe (mental stuff) that is different than physical stuff, that seems almost impossible to be explained as physical stuff. I believe in the physical sciences, evolution, and mathematics, but I don't think that they fully encapsulate all that there is, nor can they definitively explain things like consciousness (they at least need a little more added to them).