HN user

djanowski

960 karma
Posts30
Comments27
View on HN
news.ycombinator.com 3y ago

Ask HN: React Native or Flutter for a new app in 2023?

djanowski
66pts105
brandless.com 6y ago

Brandless Shutting Down

djanowski
2pts0
css-tricks.com 6y ago

Magic Numbers in CSS

djanowski
1pts0
badssl.com 6y ago

BadSSL – a tool for testing various errors with SSL/TLS server

djanowski
3pts0
antirez.com 7y ago

An Update about Redis Developments in 2019

djanowski
18pts0
github.com 8y ago

1.7M misspellings of “receive” in GitHub code

djanowski
2pts0
slate.com 8y ago

Twitter is rethinking everything. At last

djanowski
3pts0
antirez.com 8y ago

An update on Redis Streams development

djanowski
220pts46
yourcalendricalfallacyis.com 8y ago

Your Calendrical Fallacy Is

djanowski
2pts2
github.com 8y ago

Show HN: Git-spring-cleaning(1), clean up your local repositories

djanowski
3pts0
photos.google.com 9y ago

Photo books by Google Photos

djanowski
2pts0
github.com 9y ago

Clac – A command-line, stack-based calculator with postfix notation

djanowski
75pts27
github.com 9y ago

Migrat: A database-agnostic, pluggable data migration tool in Node.js

djanowski
2pts0
www.nytimes.com 9y ago

Tesla S Falls Short of Luxury Rivals on Tougher Safety Test

djanowski
3pts0
www.antirez.com 9y ago

Redis 4.0 RC1 is out

djanowski
285pts29
github.com 9y ago

A simple tool to plot family trees using JavaScript and Graphviz

djanowski
3pts0
news.ycombinator.com 10y ago

Ask HN: What's your technique to damage-control interruptions to flow?

djanowski
2pts2
github.com 10y ago

The front end of guardian.com is open source

djanowski
6pts0
dimaion.com 10y ago

Tips for working with Git branches on the command line

djanowski
1pts0
www.scilogs.com 10y ago

We Have Become Exhausted Slaves in a Culture of Positivity

djanowski
6pts0
www.antirez.com 10y ago

Redis Loadable Modules System

djanowski
297pts60
tools.ietf.org 10y ago

Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0)

djanowski
1pts0
github.com 10y ago

Mockingbird, an anti-adblockers plugin

djanowski
2pts0
soveran.com 10y ago

Human Error

djanowski
2pts1
news.ycombinator.com 10y ago

HN now mostly readable on mobile

djanowski
90pts46
github.com 10y ago

Show HN: Hasp – A minimal CSS preprocessor using the M4 macro language

djanowski
72pts42
antirez.com 11y ago

Thanks Pivotal, Hello Redis Labs

djanowski
347pts36
twisque.herokuapp.com 11y ago

Show HN: Twisque, a tweet-later experiment using Disque on Heroku

djanowski
10pts0
github.com 11y ago

Redis author just released Disque, a distributed message queue

djanowski
77pts2
soveran.com 11y ago

On software popularity

djanowski
140pts71

Recently I started to work on a very simple tool to do this with a single command: it'll start all your projects in a given directory and expose them via HTTPS on https://[project].localhost

No daemons, and the only piece of configuration is adding a file to /etc/resolvers: https://github.com/djanowski/hostel

I've been using it for myself so it's lacking documentation and features. For example, it expects to run each project using `npm run dev`, but I want to add Procfile support.

Hopefully other people find it useful. Contributions very much welcome!

I'm surprised such an in-depth article doesn't even mention promises. Upcoming async/await (already available via transpilation) will make error handling in Node sane again.

Human Error 11 years ago

I happened to be reading The Design of Everyday Things at the same time as Understanding Air France 447. It was surprising to see how the concepts explained in the book by Don Norman applied perfectly to explain the errors made by the pilots -- even though airplanes are not everyday things.

Yes, you're right that most frontend developers already rely on Node for various tasks.

This would be most helpful for those who still haven't introduced Node as a dependency and trying hard to get away without it :)

In any case, as I mentioned in another comment, the fact that one can write a minimal preprocessor in ~30 LOC could be useful to start a conversation about the current state of the art regarding frontend development.

Most importantly: it's very easy to end up with a huge CSS file that can't be compressed, and it makes everything more complicated.

Representing hierarchy in the class name makes the output shorter, in most cases, and makes the HTML and CSS code easier to understand. For instance, when you see <div class=title>, you need to go up to find context to understand what that "title" class is. If you have <div class=widget-title>, that's much better. Let alone that generic ("title") classes can lead to problems with conflicting rules depending on their specificity.

By the way, classes at the top level are faster to parse and apply.

This articles expands on some of these issues: http://www.sitepoint.com/beware-selector-nesting-sass

Both Less and Sass implement features that I consider anti-patterns: nesting, @extend, etc. Sure, you can ignore them, but there's a lot of code in the tool to support that. The code needs maintenance and puts the barrier of entry higher for those wanting to contribute to it. Also, these are first-class features of the tool, they can't be disabled explicitly. So you'd need code reviews and other artifacts to make sure no programmer/designer ever tries to use them. Finally, why would you choose a tool that does 20x what you need, if there's an alternative that does just what you need? (As stated in other comments, I don't mean my solution is what will replace all preprocessors. PostCSS looks like a more modular approach and it allows you to effectively cherry-pick the features you need by means of plugins.)

Also, easy != simple. The fact that a tool is easy to install (after having installed another mega-dependency) shouldn't count as an advantage, in my opinion.

I don't think you read the top section of the README. It clearly says that I was first looking to write a simpler CSS preprocessor, and then came across M4.

I'm not saying the tool I wrote will replace all preprocessors. My point is: I wrote one with just enough features in around 30 LOC. Can we use that to start a discussion around the current state of the art regarding frontend tooling? Or software in general?

It's true. sassc(1) is a great step forward in terms of speed.

That said, Sass encourages practices that I consider bad. Nesting, @extend, etc.

Sass's design also makes it difficult to implement a basic feature like grouping all media queries for a single output. Check this issue from 2011: https://github.com/sass/sass/issues/116

If you don't mind a bigger tool and the dependency on Node.js, then PostCSS looks very good: https://github.com/postcss/postcss

I would say that Disque follows the minimalistic philosophy of Redis. However, Disque is a specialization of one of the most common use cases of Redis: queues. So I wouldn't expect so many primitives--Disque knows about jobs and queues, so you don't have to build those yourself like people have been doing on top of Redis.

:-)

Fortunately they changed their minds and gems are auto-approved now, so the barrier is still there, just a little bit easier to lift ;-)

Again, GitHub rocks. We tried to create a simple script to make it easier for us to also deploy to RubyForge (mainly because of the username prepending and the --source).

We'll be looking forward to your feedback, James!

Exactly! We've been doing the same thing – releasing only to GitHub because it's so easy and fun (and easier now that they e-mail you when the gem fails to build...)

The idea behind Joe is that if you're already releasing to GitHub, it's really easy to release to RubyForge as well with a single command. No need to wrap your whole project inside something like Hoe. You're already generating a gemspec for GitHub, why not using it for RubyForge?

Plus there's the addition of the ERb template to produce the gemspec (which is completely optional), but that's the best way I've found to maintain my gem specification, especially the files I want to ship.