jrub's comments

jrub | 7 months ago | on: CSS's problems are Tailwind's problems

I get the frustration, but I think Tailwind’s biggest win is what it trades:

structure and locality instead of style purity.

Traditional CSS gives you basically nothing in terms of hierarchy or organization. You end up writing long, awkward selectors like .checkout .summary .item-title .price, which still aren’t that readable. And if you’re tracking down why there’s 4px of padding instead of 6, good luck figuring out which of the five CSS files is messing with it.

Tailwind flips that. Putting the styles right on the element means the structure is obvious. You don't have to context-switch or go hunting through a bunch of files just to see what’s going on. It’s all right there.

Yeah, sometimes it gets verbose. Especially when you’ve got a div with 20+ classes. But when that happens, you’ve probably got something reusable anyway. And Tailwind actually shows you that. If you copy and paste the same set of classes to another element, you’ve just signaled that you’re repeating yourself. That’s your cue: take the extra 60 seconds and extract it into a component or class. With vanilla CSS, that signal is way more opaque. People end up not writing composable styles at all. Instead, they name every div, then name every element inside the div, just to avoid writing selectors like .component div h1 span—which is even harder to reason about than .component .title .icon.

And honestly, writing Tailwind is just faster. Typing px-4 is way easier than padding: 0 4px;, and I don’t have to stress over naming a class that won’t collide with anything else. Naming things sucks. Tailwind helps you skip that whole mess and just build.

Another bonus: Tailwind is easy to delete. You don't get tangled side effects or some random override breaking stuff in weird ways. Kill a class and you know exactly what changed because it’s right there in the markup.

jrub | 10 years ago | on: M, a personal digital assistant inside Facebook Messenger

I think these exmples are largely worthless also. Every time I see something like this - I all but dismiss it. It seems like the aim/value proposition is to make life easier by removing decisions from our plate, but I feel like it is exchanging decisions for frustration when it doesn't work as promised, or worry about whether the decisions the system makes will be good ones.

I actually don't want a machine to make decisions for me. I want a machine to do what I tell it to do, or present me with I formation required to make a decision.

Examples: if I need a dentist appointment or to schedule maintenance for my air conditioning, I'd like to tell a machine to set it up. Heck, I'll even tell it who to call and which days and times work for me.

If I'm looking for a restaurant, show me the options, give me their distance, top reviews, and some of their dishes. If I want reservations, I'll tell it when and for how many.

Ideally, I want a "Jarvis" from "Iron Man". I ask questions, it gives data in a digestible quantity, and then I can make a decision and tell it what to do. Obviously, such a system is not available (yet), and these inferior systems are needed in order to make progress, and get there...eventually..but sometimes I wonder if the focus is on the right outcome, or just the broad strokes cookie cutter solution that comes to mind first (restaurant reservations). Similar to how all JavaScript MVC frameworks demo a to-do app, and rails tutorials demo'd a blog (initially)...

I mean, seriously... How often do you not go out to eat because you are too lazy or busy to make a reservation? Now, how many times do you skip oil changes, or making calls to cancel your cable service, because you don't want to make time in your day to stop what you're doing, pick up the phone, and call?

jrub | 10 years ago | on: This Industry is Fucked

There are so many people in the tech industry that have no business being there, that suck and have no passion, that are assholes and aren't willing to teach newcomers. The fact that women in tech is an issue or that women get harassed by men for being in the industry when there are more glaring issues is an absolute mystery.

Men that harass women for being in the tech field are juvenile. If anyone talks to my daughter like that, or sends her messages like that...God help them.

jrub | 10 years ago | on: What was the technology stack driving the original Ultima Online servers?

I used to write scripts to chop down trees, practice healing, mine and smelt ore, cast "fireball" on myself so I could level up my magic skills...lol

I remember a specific time when I was setting up my mining operation. I took the time to figure out how long it took for ore to re-spawn, and had my character mine in an elaborate circuit several times before starting the smelting process. I was super proud of myself, haha. I think I was about 12 or 13 at the time.

jrub | 10 years ago | on: Operational PGP

Legitimate question:

The whole "delete when you're done' practice is a pretty common tenant to secure communication. However, there are plenty of cases where having that historical data is really useful. After all, computers are excellent at storing archival data, and being able to search and reference that archive has saved me more times than I can count.

What practice, then, can you employ to maintain a secure archive of your messages for future reference? Is this something that is considered rude, or even dangerous and reckless, given that the mere existence of the archive introduces an attack vector, thereby compromising the effectiveness of encrypting the messages at all?

I understand that there are a lot of trade offs and sacrifices to be made in the name of security, but is maintaining a message archive one of those sacrifices that is expected to be made by all parties? Or is this one of those points that can't be covered with a blanket statement, and the retention policy is pretty much dependent 100% on the sensitivity of the content?

jrub | 11 years ago | on: A Designer's War on Misleading Parking Signs

The poor design of these parking signs is actually "a feature, not a bug."

Parking tickets in the cities which have these sorts of sign issues (DC, NYC, Chicago, ATL, etc) make up a significant amount of income for the city. Paid parking certainly adds up but if a single space nets the city $10-$20 per day, a single parking ticket could cover a weeks worth of revenue for that single spot while still allowing the space to earn $10-$20 a day for the rest of the week.

I agree it sucks, and I was burned by this exact problem when I traveled to DC with my family last winter. However it's unlikely to change, because not only would the change actually cost money to implement, it would (significantly) reduce the income to the city from parking tickets.

jrub | 11 years ago | on: Less.Mail – An email assistant that makes you work less

I also don't get push notifications of my e-mail. I also don't get a ton, but it's a well known fact to my colleagues that I don't reply to e-mail instantly and if they're sending me an e-mail expecting an immediate reply, then they should re-evaluate why they're sending me an e-mail.

jrub | 11 years ago | on: Ask HN: SCSS/Sass vs. LESS

The "unnecessary syntax" that a lot of people tend to loathe, I actually prefer. Maybe not semi-colons, but it takes me a day or two to get out of/into the habit of typing semi-colons at the end of each line, so it's not a big deal.

But on the whole, I dislike whitespace-strict syntax (python for example). I'd much rather have my curly braces simply for the specificity they apply to the code for opening and ending blocks.

jrub | 11 years ago | on: Ask HN: Did you go to a 3 month coding school? Did it work?

I didn't go to one of those 3-Month programs, but I've interviewed some people who have.

Just like any other education program, you're going to get out what you put in. There is only so much that can be covered in a 3 month period of time. When starting from, essentially, nothing the instructors have to really push on the gas to get through a lot of material to get their students to a place where they can start being productive.

Unfortunately this means that a lot of fundamental programming concepts are glazed over, or skipped all together. That's not inherently bad, but the onus falls on the student to really research more, and apply lessons taught in different ways. A lot of people don't have the motivation to do this - and that really shows through when interview time comes around. It's very easy to spot the graduates who followed the program and haven't put in the extra time to understand all the information they've been given.

I think the key is to really evaluate what your expectations are. No one here can tell you which course to take, or which is best for you. It really depends on the style of learner that you are, how much work you're going to put in, and what you expect to come out the other side of the process with.

jrub | 11 years ago | on: Ask HN: Life advice for 25yo Web Dev, single, no debt, $30k/£20k savings

> But I also have to admit I feel quite some anxiety when I feel a taxi driver is going to screw me over. This will happen a lot. You have to be the kind of guy that can stand up for himself. Not too social at certain moments I'd say. Perhaps this is also what you learn when traveling longer.

So many times, this. I have that exact same feeling when I travel. Big, unfamiliar, cities make me really anxious. Between making travel arrangements, because I don't want to get stuck in a place that ends up being a total dump, or even making plans on what to do with my time when I reach my destination, and interacting with the local "vendors (taxi drivers, tourist-popular places, street vendors, etc).

It takes me a few days in a new place before I can get acclimated and familiar with an area before I can start to relax and enjoy myself.

I, admittedly, haven't traveled a lot and I have only been outside the US on one occasion, but even inside the US I get anxious. I get so worked up over making sure every experience is worth while, sometimes it's easy to forget that the experience, good or bad, is part of the journey and what probably makes traveling so great.

I assume it gets better with practice, and it certainly falls into the category of "Do what makes you uncomfortable."

jrub | 11 years ago | on: Amazon Fire Phone

Maybe someone can enlighten me; but why does AT&T seem like a popular launch partner with new mobile handsets?

The only reasons I can come up with are a) money (AT&T taking a smaller cut of subsidies/paying the manufacturer more for the device) and b) "portability" between the US provider and International providers.

Are there any other reasons? Or is it really that simple?

jrub | 12 years ago | on: Dragdis 3 minute pitch. Feedback needed

I use a combination of pocket + bookmarks for similar use cases that dragdis solves; I like the concept of dragdis a lot (it's like pocket with better organization, plus the awesome feature of being able to save specific snippits of data).

However, I use pocket a LOT, on my Android phone, as a way to SAVE content. I'd love to replace pocket/bookmarks with dragdis (or, at least - try to) but I'd definitely need a mobile integration to make it work (via the share intent, i'd imagine).

Great product concept, I'm excited to try it and see how well it works for me!

jrub | 12 years ago | on: Writing OOP using OOP

In the case of User.getName, why do you re-define that method just to call the prototype's method? Doesn't creating the object from the parent prototype bring that getName method to the User object for free?

Or, were you demonstrating the method overriding + calling to parent use case?

jrub | 12 years ago | on: How not to write an API

I think you're describing an HMAC[1] authentication code here.

Certainly signing your requests as actually having come from your application is a legitimate means of security. But there are much lower hanging fruit (in terms of available security measures). Specifically, using SSL to handle API traffic. That should absolutely always be step 0. In instance of this specific post, had the API provider enforced using SSL as their transport protocol we probably wouldn't even be having this discussion.

There's a ton of other security measures/protocols that should be taken and followed, most of which are already talked about in other parts of these comment threads. I just wanted to really point out that what you're describing above sounds an awful lot like an HMAC code.

[1] http://en.wikipedia.org/wiki/Hash-based_message_authenticati...

jrub | 12 years ago | on: JavaScript: The Right Way

and underscore. not for DOM, but for some functional compatibility (map, forEach, etc). Plus, it's convenience methods quickly become indispensable.

_(fn).bind(this), anyone?

jrub | 12 years ago | on: We stopped advertising on Facebook

Buying likes (beyond a certain point) anymore is largely an outdated methodology. Once you've got a significant number of likes for your Page on Facebook (which is kind of a case-by-case number, depending on your brand, business, demographic, etc) you don't need to focus as much as building an audience.

Facebook has released a wealth of tools via their advertising platform in the last 12 months that make serving ads to the users you want to reach a much easier prospect. You don't need a super-large 2 million user base Page in order to get the word about your product out. Granted, you do have to pay for distribution now, instead of a few years ago when it was free, but the tools that are available (ad units, targeting, etc) are vastly better than what was available 2-3 years ago.

So, the article is correct in it's denouncing the value of a "like" on FB, but that value was always due to drop. Having more fans early on in the days of Pages was the main indicator of the success that a brand was having on FB. Those days are long gone, and [FB] marketers have to be more intelligent and deliberate about their strategies, and they have to be willing to put their money where their mouth is.

page 1