HN user

xaritas

134 karma

Purveyor of software. brett at codigious.com

Posts2
Comments78
View on HN

This is a really great looking service. I couldn't find a contact form that wasn't for sales inquiries, but I thought you might like to know that your website is extremely buggy on my phone (iPhone 5s, iOS 9.0.2, Mobile Safari).

This is the bug: Scrolling causes the page to reload. Not even joking. Seems to happen on all pages.

Anyway, I took a look on my desktop and it works fine there. I might even sign up a few of my clients. Just not with my phone.

Enlive and related libraries for Clojure, Lift for Scala, and heist for Haskell use node transformation. I know that there are a few others I'm forgetting. Basically given a fragment of an HTML 5 or XML document, your view functions transform it into a different fragment. E.g. in Lift, given

    <div class="greeting-container" data-lift="SayHello"><span class="greeting">lorem ipsum</span></div>
And a transformation:
    ".greeting *" #> "Hello World"
The output will be:
     <div class="greeting-container"><span class="greeting">Hello World</span></div>
See http://exploring.liftweb.net/master/index-5.html#entry-CSS-T... et alia

With this technique, your designers can create pure HTML and assets, with no logic in the templates. Basically they create static mock-ups and then the developers "enliven" them.

I prefer this but I don't imagine it will ever become mainstream.

React's JSX is also (as far as I can tell) node based, but with a lot less power (you can really only do insert operations, and the operations don't really compose well).

In terms of languages that facilitate doing work concurrently or in parallel with the HTTP request/response cycle:

  - Java / Scala / Clojure
  - Go
  - Erlang (add Elixir if you are comfortable with its maturity)
Not meant to be an exhaustive list of languages. Celery is great but there are plenty of situations where chucking units of work into a job queue or running a cron job feels like an incomplete solution.

I'm teaching my kids how to program using the 2nd edition because it's the introduction to programming that I always wish I had received. They love it! Thanks.

The Missing Borges 12 years ago

This article contains so many elements of a Borges story that by the second paragraph I assumed I was reading a work of fiction. Upon further reflection, it seems plain that, while every word of it is without doubt true, the story is a hoax.

Indeed. Not being familiar with that particular passage, my thought would be that he means, his uncle does not consider the status-signaling property of "beautiful" (and expensive) property to have any utility. This seems in line with Stoic reasoning.

I would also assume that by "slaves" he means, legal status aside, what would be called "the help" in a different era, i.e., the most visible members of a wealthy person's household and retinue. I'm sure that nobody was socially shunned because their salt-miners and ice-cutters were hideous to behold.

As Horace wrote around 14 BC:

Graecia capta ferum victorem cepit et artes intulit agresti Latio. - Ep. II.i.156

"Greece, once conquered, herself conquered the artless victor, and planted the banner of civilization in the farmlands of Rome."

I have translated freely and taken considerable license.

By Aurelius' time, familiarity with Greek for the ruling classes was a given; as a matter of preference, it is a more supple language and probably more comfortable to use for putting abstract reasoning to words.

For those looking for some additional recommendations that are "literary" (by which I mean, densely allusive and layered with meaning, yet not painfully self-conscious or lacking in any sense of awe and wonder, let alone enjoyment), look into Gene Wolfe. He is not exclusively a science fiction author, but The Book of the Sun (a tetralogy) and the rest of the Solar Cycle books definitely are, and they remain among my favorites. The entire series will keep you busy for a while. For a shorter introduction, consider The Fifth Head of Cerberus, consisting of three related novellas, is exquisite; also worth checking out.

See also, Borges; not usually considered a science fiction author, I suppose for reasons having to do with the connotations of being a genre author.

It is definitely thought-provoking on the subject of computation and human culture; it's also really enjoyable. It's available for free under a Creative Commons license:

http://www.antipope.org/charlie/blog-static/fiction/accelera...

I agree that the structure and pacing is odd if taken as a single corpus (which is hard not to do in its book form!) I wasn't surprised to learn after reading it that it was published serially over the course of three years. I suspect that the sequence was not mapped out fully.

Edit: Heh. When I refreshed I didn't see the response from the author confirming this.

What a strange fit of pique. I make extensive use emacs chords to navigate in the shell, and I show them to people all the time if they seem curious. It never occurred to me to be outraged if somebody didn't already know. I suppose I occasionally lose patience with people as I wait for them to find "Copy" and "Paste" in the Edit menu, although I try to bear it silently rather than berating them.

Nevertheless, I in fact did not know about M-. so thank you for your contribution. For those interested, I found it described here: http://www.aboutlinux.info/2005/08/bash-shell-shortcuts.html

It's not a comprehensive list, it omits one of my favorites, C-/, which gives you undo on the command line. Well, until you hit return, anyway.

Wagtail's authoring interface and Django's admin coexist. I believe the demo sets up the Wagtail interface at /admin and puts the standard admin at /django-admin. Presumably you can change those in your urls.py to whatever you like.

I'm not on the team, but I've used both. I would be interested in seeing both maintainer's answer to this, too.

At a high level, I can see how there might have been a bit of friction in trying to implement Wagtail on top of Mezzanine. Mezzanine's features, admin interface, and content model are fairly tightly integrated (I hope I'm not misrepresenting Mezzanine here, I think that this is an affirmative goal of the project). It provides a lot for the developer and the site admin out of the box—usable templates, basic page types, a blog, an image library. On the other hand, Wagtail core offers surprisingly little—the wagtaildemo project is a nice starting point for some basic content types, but it's just another user of the Wagtail API.

For me, the killer features of Wagtail are: deep integration with ElasticSearch, a moderation based workflow, content revision tracking, document library. It's feature list is like a love letter to institutional clients. However, that's a lot of code that is not integral to Mezzanine, and I don't think it fits with the maintainer's philosophy of "it's integrated, but not a kitchen sink." [Note: I made up this quote.]

To both maintainers, nice work, and thanks.

It's not like django-cms or various PHP-based CMS (Conrete5 comes to mind) where a template defines "slots" into which an administrator can drop different type of content widgets. In spirit, it's much more like Mezzanine, where each Page has a particular type and an associated template. Your page is just a Django model, so if you want three areas for text, an image, and a caption, you'll have a model which has three TextFields, a CharField, and an ImageField.

(Having said that, the rich text editor is in Wagtail really is rich and can support inserting images from the image library and links to documents in the document library, as well as oEmbed stuff, so it has some wriggle room).

The two schools of thought ("each page is designed ahead of time with structured content in mind" vs "each page is a collection of content objects") have their adherents. Personally I prefer the Wagtail and Mezzanine approach, but the right answer depends on what the client needs and the nature of your relationship with them.

The most striking similarity is the template syntax, it uses an Erlang implementation of Django templates. I think it draws some inspiration from Django's "batteries included" philosophy in a couple of ways. It encourages developing with small re-usable modules, like contact forms or blogs, that might be considered similar to the Django apps philosophy. It has an automatically generated admin area for your content/models, but it doesn't have a strong notion of model fields so you might have to do more admin view development (HTML/CSS/JS). It has an opinionated data and deeply integrated data model abstraction, although not being relational it isn't at all similar to Django's ORM.

In Zotonic a single Erlang VM hosts multiple sites (equivalent to Django projects), which can be nice for certain uses. Like most Erlang frameworks it is a little better at handling concurrency and AJAX-y ("realtime") websites than some of the more popular web frameworks, to support this the template language is extended to allow wiring UI elements to controllers without explicitly writing the JavaScript.

It sounds like you are comparing Zotonic to Django in an apples-to-apples sort of way, so I'm not sure why you don't consider it to be a framework. I think that it's definitely a framework as much as Django is, it just happens to come with a CMS app built on top of it pre-installed, which looks complete enough to be "the product" when it's really just a starting point. The project website could be clearer about this.

Having said that it's not "just a CMS," it is in fact pretty awesome for building simple marketing/brochure mostly-static-but-with-a-contact-form-and-blog type websites. Individual websites can be hot loaded into the running daemon, and started, stopped, and rebuilt from a git repo through a web based interface. I host a couple local business sites for some recurring income and I'm strongly considering porting my existing clients to it and using it for similar sites in the future.

Despite that simple use case, I wouldn't dismiss it for more complex projects, as long as, e.g., its data model (a triplestore built on top of postgres) works for you.

In summary, in my opinion it has some caveats but is as good as Django. :)

Very high failure rate (including one case where my wife called the fire department because something was burning in the house and she couldn't identify it), warm up time, and has to be treated like HAZMAT after it has completed it's six months of duty—indeed, what's not to love about CFLs, and why should I bother checking out an alternative?

Yes, I purchased my LED bulbs in anger. We'll see if I've been had.

First of all, thanks for this @yesiamhuman, I came across it a few days ago just when I was despairing of finding something with the right look and feel (somebody mentioned it in an earlier HN item about a curated list of CSS frameworks). It looks like it's exactly what I need.

For the project I have in mind, the client wants an HTML5 web app, not an App Store delivered container. On the docs, you state:

"Since mobile browsers often exhibit issues while in browsing mode that don't show while running under a "wrapped" native app, we recommend running all Ionic examples in a Desktop browser, PhoneGap or another native wrapper."

Can you elaborate on this a bit? What issues am I likely to see if I just deliver my project as an offline capable single page web app?

But close enough, if I understand, that an average Greek speaker might have accepted the statement as true, in the way that an average American English speaker might agree that "saw" and "pot" have the same vowel sound, no matter how many linguists' heads explode.

I always wondered if the ω glyph developed when lazy monks sloppily doubled up oo to make the o-mega… but I never investigated whether this is true.

This is music to accompany spoken poetry, so the it's not necessarily comparable to opera or pop music, where the voice is used as an instrument. In Greek lyric poetry the syllables are arranged according to fairly strict rules; having scanned (that is, marked up for meter) lots of Greek poetry, I don't doubt that this is an accurate way to get the rhythm of the piece. However, while I have no background in music theory, the claim that rhythm is the most important aspect to recovering the original sound doesn't seem right to me—I would assume that the tonality and harmonics are harder to create with certitude.

Links of interest: http://en.wikipedia.org/wiki/Iambic_trimeter and http://en.wikipedia.org/wiki/Trochaic_tetrameter

Interesting facts about ancient Greek: in contrast to English poetry, stress is indicated by the length of the vowel, rather than how forcefully it is pronounced; and vowels are accented by rising or falling pitch rather than stress. My professors said that ancient Greek probably sounded more like Chinese (which I gather follows similar rules) than a modern western language.

Using Thread/sleep inside of a go block is questionable. Using >!! and <!! inside a go block is simply wrong.

They both block the thread and any other go-blocks that happen to be mapped to it. I think you get 2 x NUM_CPU threads in the dedicated pool for channels, so either of these is a mistake. (Aside: I'm not sure why you were down voted for saying this.)

When you need to wait inside of a go-block, the correct way is to use (timeout millis), which creates and then closes a channel.

This has some nice examples: https://github.com/clojure/core.async/blob/master/examples/w...

The only web framework available got dissolved,

Rather, turned from a framework into a library. I only recently started with Clojure and found Luminus pretty easy to pick up. It just generates a simple scaffolding project which cherry-picks some good libraries into a project.clj file and gives you a basic "Hello world" web page to get started. Primarily it uses lib-noir on top of Compojure, so pretty much anything that was in Noir, you get here (I guess, I never used Noir directly). Luminus has a pretty good tutorial to cover basic notions of handlers, databases, etc.

No, it's not Rails or Django, and no it doesn't do anything you could do yourself from scratch pretty easily. It is, however, a nice starting point and may help you get over the "I have to wire everything together myself" hump.

http://www.luminusweb.net

Unless things have changed dramatically recently, Hacker News uses the file system to store comments (https://news.ycombinator.com/item?id=5229522) and it seems to work well. I can imagine a few cases where having your comments in a DBMS would be a requirement, but none of them seem applicable to situations where WordPress where one might want to use WordPress anyway.

Of course, this is guess from a priori reasoning. I would be genuinely interested if somebody tried file-based comments for a WordPress (or a similar platform) based site and it fell over or failed in some way.