Simple - An Obtvse clone written in Python
github.com
github.com
(NOTE: "Simple" is not my project)
But, with the feature you request, then, it doesn't really work for a static site generator. It is better to use normal caching with a dynamic site like how Simple is doing now.
So basically just a UI for writing and managing the posts that sits on top of Jekyll.
I'd be curious to see how a "Blogger of today" would fare if it also had Dropbox integration, so you could use specialized local apps like IA Writer if you wanted to but also still write or edit on the go without your main machine.
To do the same thing with the cache in a Rails app, I'd probably have to make a script to visit every page to get it to render to the cache, then copy the cache out. At that point, it'd probably be easier to ignore Rails' built-in caching and just to make a rake task that renders everything.
It allows you to create entries in ReStruturedText using a text editor. I designed it with Heroku in mind, but can be easily adapted for any Web environment that uses Git.
When you push to Heroku, the entry metadata will be automatically saved to Neo4j, and the HTML fragment generated from the ReStructuredText source file will be served off disk.
You can use the free Heroku dyno and Neo4j Add-on (https://addons.heroku.com/neo4j) to serve your blog for free.
I wanted the benefits of a dynamic app, but I wasn't willing to exchange Emacs for a Web-based editor so I created a hybrid engine.
I chose Neo4j because graphs are an elegant way of storing relational data. There are no tables to mess with and no joins (everything is explicitly joined). And if your blog's auth/commenting system uses data from the social graph, such as Facebook or Twitter, a graph database provides a clean way of storing the data.
Also, I am the author of Bulbs (https://github.com/espeed/bulbs), a graph-database framework written in Python, so using it was a natural choice.
As opposed to, say, a Relational DBMS?
What you've done might be very interesting and rewarding to you, but it feels like you wasted three paragraphs in your response with something that falls right into the "just because I could" camp.
Neo4j is neat and underutilized. I think rglullis is just saying, if that's why espeed used it, he could have saved three paragraphs of explanation by just saying that.
I find elegance in simplicity. If you don't need the tabular features of a relational database, why not use a graph DB for relational data? It's like a key value store with directly connected relationships.
This is so much simpler than having to deal with creating tables, DDLs, and migrations:
>>> g = Graph()
>>> james = g.vertices.create(name="James")
>>> julie = g.vertices.create(name="Julie")
>>> g.edges.create(james, "knows", julie)
Futhermore, there's no impedance mismatch so your code is cleaner.But regardless, this is Hacker News where people explore, build, and share new things. I hope we're not moving to a place where that gets admonished.
* Nodes/Vertices: Person, Topic, Entry
* Relationships/Edges: Tagged, Authored
person -- authored --> entry
entry -- tagged --> topic
Here's the base model: https://github.com/espeed/lightbulb/blob/master/lightbulb/mo...The comment system is a separate, generic component.
Marko, the guy who created Gremlin (https://github.com/tinkerpop/gremlin/wiki), just released a Gremlin Tree step (https://github.com/tinkerpop/gremlin/wiki/Tree-Pattern), which makes it really easy to build a threaded comment tree in one quick shot.
If you have a large blog or content system, you can use likes and views to make content recommendations using a basic Gremlin collaborative filtering query:
// calculate basic collaborative filtering for vertex with user_id
def rank_items(user_id) {
m = [:]
g.v(user_id).out('likes').in('likes').out('likes').groupCount(m)
m.sort{a,b -> a.value <=> b.value}
return m.values()
}
If you use Facebook, Twitter, or GitHub to authenticate users you can easily incorporate friends and followers into the recommendations.The thing I like about static generators is that I don't have to worry about a programming language being present on my hosting site (http://funcptr.net is blogofile, http://bertjwregeer.com/ is Poole.py[2]) and the overhead is a lot smaller, since all I have is static files there is a lot less worry about accidentally causing CPU spikes, or a database being overloaded, and using sendfile() one can very quickly and efficiently serve up HTML files to clients.
[1]: http://www.blogofile.com/ [2]: https://bitbucket.org/obensonne/poole/overview
Simple/Obtvse should be an interface for adding posts and editing existing posts. Similarly, a command-line-interface can also be used for adding posts. (`newidea "I want a castle made of marshmellows"`)
The site is stored in a database when live, but the database can be transformed one-to-one into a directory of human-readable Markdown or ReStructuredText files.
Rendering is handled by a separate component, e.g. nanoc or jekyll. The important thing is that the site database can easily be mapped to a human readable format. The advantage of this approach is that it is easy to write a modular rendering engine without mucking with the specifics of the CMS.
For example, I want to automagically categorize posts in a taxonomy, find related posts, group posts that are lists, etc. using some NLP wizardry. I would much rather write this application for a directory of human-readable files, adding metadata fields to text files, than paint myself into a corner with a particular CMS.
Please email me if you are interested.
wget -m -k -nH <your URL here>
combined with some sort of rsync?OP, you should learn about requirements.txt and virtualenv/virtualenvwrapper, it will make your life easier.
This post laid it out for me: http://www.saltycrane.com/blog/2009/05/notes-using-pip-and-v...
From the outside look and the screenshots (because that's all Dustin showed you) it's a simple design and that's the point; it was never supposed to be a complex work of design for you to be proud that you could replicate it in 1 day in rails. Yeah, Dustin put some work into thinking what could work for the layout but once the application of the design is done, replication is beyond simple.
Clone all you want I think it's great but Dustin was really telling the story of the "network" the idea of a closely knit community of writers (pseudo-writers whichever you prefer). I look at it as similar to the Deck Ad network or Dribbble (before every desperate Designer begged for an invite). Or when an HN clone comes along, no one ever migrates across, they always come back here.
Point is, the one thing you are never going to have is the network, that human element that sets apart the clone from the real deal.
But your point doesn't detract in any way from these projects. The point of Svbtle is the network. The point of Obtvse/Simple is the backend. You say "clone all you want" which is exactly what we did.. the goal was never to "beat" anyone or prove anything, it was to mimic the software, which we've already accomplished.
And IMO, that is more valuable than a network. Because now anyone can use it. And as good as Dustin's network ends up being, if it's never all-inclusive, it will always miss out on a the biggest and best talent-pool around... the internet.
Good luck anyway.
Nice work :)
I also watch this python static blogging app on github here:https://github.com/fallenhitokiri/Zenbo
More seriously, if you genuinely have a problem with Simple using the CSS from Obtvse, I think you don't understand how open source software works. Either that, or you're being somewhat obtvse yourself.
If Dustin's stopped sulking about his little change-the-world club being subverted and opened up, he's probably happy about this too: this idea that he came up with and worked on is so popular that people are making an effort to spread it further. If his actual idea is even greater and grander, then when Svtble opens up people will flock to it and thank him for it. Everybody wins.
What I don't like is bullying. This whole site spent a week chasing a YC company around with a pitchfork and torches for stealing designs from a well-known company, but when some guy writes some promo copy that enough people here don't like, HN manages to spawn a meme that the same copying is somehow liberation for the cause of open source.
People are allowed to choose who they associate with. Dustin Curtis does not need to "open up" his little club. For crissakes, you're writing this on the message board of an exclusive club that won't have you as a member.
"Powerful relationship with Dustin Curtis". Sheesh.
The issue I took with Dustin wasn't just the idiocy with which he decided making a pretty blog equated to somehow creating the future of journalism. It was how, when people on this site complained about his copy, his response wasn't "it was a joke" or "this is still a private beta" but "good, my marketing worked because you'll remember it".
If Dustin didn't want his private little club to go public, he could have chosen not to write about Svtble at all, and we'd have no idea of what it looked like behind the scenes. Once he went public, his ideas became a part of every "club" that cared to look at them, including ours. You are always responsible for what you do in public. Always.
It's twisted to look at the response as "bullying". Somebody copied a public idea and released it to people who didn't have access to it yet. Partly in response to Dustin's saying, "You know what, I don't care if I offend you, as long as you pay attention to me." The only way that the open-sourcing was bullying was that it turns out Dustin does care about offending people after all. Not that he seems to have learned anything from this, other than "people on that web site don't like me and that sucks."
Feel free to score yourself another 20-50 karma points by cheerleading this bullshit. I'm done, I hope, with this thread.
I don't mind seeing interesting ideas freed from smug people who'd rather hoard them publicly. I don't mind seeing interesting ideas freed from anybody, really; by simply stating an idea in public, you're setting it free. But I especially don't mind when it's Dustin Curtis, whose ideas are small enough to be freed so easily and whose ego is huge enough that we get such an overblown response.
(In response to your post-edit: Nobody's trolling him. They're creating a service which, it seems, many more than just 6 people want. Why is spreading a good idea considered trolling?)
You're trying to make this out to be a principled stance about "spreading ideas", and yet with every post you undermine that claim and make it clear that it's really about "Dustin Curtis is a jerk, so fuck him."
Ultimately, what's valuable about Svtble is where Dustin's capable of taking it, both as a network and as a platform. These spinoffs can't touch that, because they're not Dustin. If Dustin ends up launching a great platform, then the copycats won't be able to touch him. Until he launches anything, however, I see no problem with people seeing his concepts and launching copycats, especially not if they're open-sourcing the clones.
1. No one cares if you take Dustin's concept that pre-published posts should be called "ideas" instead of posts and have lower overhead. He told us all about it, he gave it away. Open source it, it's a great idea, everyone should be able to host their own blog and have as little overhead as possible in nurturing ideas into posts.
2. It is wrong to take someone's design and just use it for yourself. It seem especially shitty to do this when someone has announced they are going to try and make money off of using that design as a brand. This obviously gets pretty grey pretty fast but there is a line and this copy crosses it. It's cool to use other people's work to guide your own, that's how we learn. But when you take something, you have to make it your own. Imagine if I took kottke's css and changed the bars on top from blue to red, it would not only be wrong but silly. Aping someone else's style is not how you want your blog to be remembered.
Or perhaps you are also suggesting that those who point at things like the "one-click" and other trivial software patents are also hypocrites? Maybe the degree of copying is different in the cases (I actually am unsure here)?
Anyway, point being, there are many dimensions to analyze in human behavior, and conflict in one, does not necessarily amount to bullying or hypocrisy.
I think Curtis has a very bright future and would be a great collaborator for those who see through the exterior.
I was still annoyed by the wording by the post, but I think the fact it wasn't meant to be posted to Hacker News should be taken into consideration.