This accidentally fell out of her pocket when I bumped into her. Took me four goes.
Friday, July 13
Androided
I'm still looking at buying myself a Samsung Galaxy Note, but I want to see first if it's shipping here with Ice Cream Sandwich instead of Gingerbread.*
And I'm probably going to buy an iPad without a nameTM pretty soon; I wasn't that impressed by the earlier models but the new screen is very, very nice.
But I've started out cheap and simple, with a Nexus 7.
Oh, and an OUYA, which is basically a Nexus 7 without the screen, but with HDMI and a gamepad instead.
At $99, even if it never gets many games ported to it, it's still a tiny shiny quad-core Linux box with 1GB of RAM.
* Hmm. Rumours have a new Jelly-Beaned four-cylinder Note due next month. But then I have to wait for it to reach Australia again, which took several months last time.
1
As soon as those sub-$100 android boxes-on-a-stick get a little better (eg a couple gigs of ram and dual or quad-core cpus, and yes I know that will up the price) I'm going to pick up a couple. (You know, the ones the size of a flash drive, come with a uSD slot, a USB port or two, and HDMI out.)
Posted by: RickC at Saturday, July 14 2012 09:42 AM (WQ6Vb)
2
The Pandaboard ES ($169) and ODROID-X ($129) are getting there. Give it 6-12 months for specs to go up and prices to come down, depending on just how much CPU and RAM you need.
The next-gen ARM Cortex A-15 looks like it will be a second breakthrough part. The current A-9 has given us really zippy smartphones and tablets, and the A-15 is expected to deliver twice the speed per core and optionally twice as many cores. At that point it will be good enough for low-end desktops and small servers.
Posted by: Pixy Misa at Saturday, July 14 2012 04:04 PM (PiXy!)
I mentioned in my previous post that Minx 1.2 has involved a major overhaul of the templating system, so that it now provides multiple methods for accessing your data. You may have missed this, because that post was mostly user interface port, so here's how that works, using a single example: Show me the title and author of the last 20 posts published on my blog.
Meta
Meta is the template language you know and love, and so far has been the main interface for anything you wanted to do. It's a good thing it makes this easy!
[posts count=20]
[post.title] | [post.author.name]<br/>
[/posts]
By default the [posts] method lists your posts in descending date order (i.e. most recent first), and hides anything unpublished, so you don't need to specify any options for that.
Lua
Lua is the scripting language and main template engine in Minx 1.2. You can fall back to a 1.1-style interpreted template if you really need to (and there is one semantic difference between old and new templates that might make this necessary for perfect compatibility), but by default, templates are compiled from Meta into Lua when you create them, and from Lua to native machine code when they run.
This is what that template would look like* in Lua:
The one trick there is that the posts function is called with curly brackets {} to pass it a table, instead of round brackets () for a regular parameter list. That's syntactic sugar in Lua; you could also write it as
for post in api.posts({count=20}) do
From Lua you simply print or write your content, and it is directed to the user's web browser. Even if you've never done much programming, it's pretty easy to get started.
In fact, you could leave out the fields list and it would give you everything, but this way there's less data to download and parse, which is good for everyone.
The second format displays the function of an API you're already using without being aware of it: URL selectors. Your blog archives, where you specify http://mysite.mee.nu/archive/2012/5 to get posts from May 2012: That's an URL selector. There's no actual archive folder; it's all handled dynamically. URL selectors have been greatly extended in 1.2, with a couple of dozen new parameters for filtering, searching, and sorting content.
These calls will return the data in JSONformat, rather than the exact layout produced by the various templates. This will be addressed in a future release with plugin formatters, but for now, JSON rules.**
Python
This is the way I code to the new API, and I plan to make this available on an experimental basis in 1.2.
There are two ways to use the Python API: As a wrapper around the REST API, or as Python modules for inclusion in standalone Minx installs. (You can't install your own Python modules in the core mee.nu system, for obvious reasons, but I plan to offer virtual Minxes for those who'd like to develop applications in this way.)
The Python API is essentially identical either way, and very similar to Lua:
Technically, Python doesn't require the brackets on print yet, but it will in the future, and they make the code more similar to Lua, so it's a good idea to include them.
Ruby
This is under development; it seems to work, but I'm not sure yet whether it will be robust enough for release in 1.2. As with Python, it will be available as a wrapper for the REST API, and also for direct modules using RubyPython.
Ruby code is a little different to Python or Lua, partly because it has a more thoroughly generalised object model. But it's not hard once you get used to it.
As with Python, the brackets on print are optional.
The advantage of Ruby is that it allows Ruby programmers to work with a familiar language and familiar libraries while building on the Minx framework - and integrating with Ruby also allows Minx access to Ruby libraries that don't have direct Python equivalents.
Anyway, that's a very quick rundown on the new APIs in 1.2; the full API reference, when it lands, will run to several thousand pages. I'm not typing all of that, though! It's automatically generated using Sphinx from the data model and its documentation, so that every method is documented for every version of the API, and every example is equivalent on each API as well.
The tutorials and user guide will be mostly hand-crafted*** but the new reference will automatically document absolutely everything.
* Right now, what the compiler produces is this:
for post in api.posts{count=20} do
write(post.title)
write(" | ")
write(post.author.name)
write("<br/>\n")
end
Which is correct (and neatly indented) but a bit mechanical. But most users won't ever look at that code, so for now I'm happy with correctness; idiomaticness can follow.
I need to add some more intelligence there to keep long sections of text readable, but it certainly works nicely for short examples.
** I'm so glad that XML APIs are a dying breed. They were an improvement on some of the binary APIs I had to work with in the bad old days, but still horrible in their own way.
I'm preparing for the release of Minx 1.2. There will be a big post up on mee.nu closer to the launch date, but for my faithful followers, here's a quicky:
The database is moving from MySQL to MongoDB plus ElasticSearch. This means we'll be switching from a conventional fixed-column database to a partially free-form document model for both the database and the search engine.
The core Minx engine is being rewritten in an API-centric model. The API will be available via RESTful HTTP, via URL selection strings, from Lua for user code, and from Python and Ruby for development code.
Non-core functions are being moved from Python code to user-accessible Lua scripts using LuaJIT. Custom scripts can be triggered by both template tags and BBCode tags.
Templates can be interpreted (as present) or compiled down to a sequence of equivalent Lua API calls. This is then compiled down to machine code at runtime. In other words, we're moving from an interpreted language on top of an interpeted language (the Meta template language written in Python) to pure native code.
Layout is moving to Twitter Bootstrap. It doesn't make CSS go away, but it does a good job of beating it into submission.
The primary editor is being upgraded to Innova Live Editor. I have a source code license for the editor, plus the plugins for photo insert, photo retouch, video insert, drawing, and CSS buttons.
As an alternate editor I've licensed Redactor, which is lighter-weight than Innova but still very capable.
If you prefer working directly with markup, Minx 1.2 supports not just HTML and BBCode, but also Textile and Markdown, and I'm integrating the markItUp! editor to make it all easy.
For programming in the Minx environment, you can use Ace, which provides you with neat Lua syntax highlighting.
The dashboard will be getting a significant upgrade. I'm testing a very powerful Bootstrap-compatible admin theme called Utopia, and adapting it to work with the Minx API.
It will have lots of new features for managing your content.
You'll be able to use all those features on your blogs as well. It also comes with a fifth option for your editing needs, CLEditor. I prefer Innova or Redactor, but it's already been integrated with the rest of the dashboard, so including it is less effort than removing it.
For all your graphing and charting needs (within the admin panel, and on your site if you're into that sort of thing), I've licensed Highcharts.
Image processing templates - apply Python Imaging Library and ImageMagick filters on your images on demand.
Pull in content from Twitter, Facebook, Google+, Delicious, Stumbleupon, Pinterest, Youtube, Vimeo, Flickr, last.fm, Deviantart, and Tumblr to fill up that dusty sidebar.
And... Tired. Here's some pics. More later.
Oh, and, for when you really need to turn your text into a swarm of blue neon bees:
Plus: BBCode Editor and Pure Editor Lite, Rama and Before-After sliders, Social Media Tabs, Showbiz Carousel, Showcase, Hoverall, and Neon Text Effects.
Posted by: Pete Zaitcev at Saturday, July 07 2012 09:50 AM (5OBKC)
2
I'm tempted to just call it 1.1.4.1 and release it without prior notice, given that it's been cooking for nearly four years.
It's changed direction a couple of times because quite a few of the things I'm using now simply didn't exist four years ago. Even two years ago there were no really solid alternatives to SQL for the database, and I was working on my own scripting language because support for Lua and JavaScript in Python just wasn't there. ElasticSearch, which is now the obvious choice for this sort of application, only appeared in 2010 too.
The whole thing has been terribly delayed because I've been working endless overtime at my day job. But that extra income meant that I could splash out on neat stuff like the editors, the control panel, and all the jQuery plugins. (I've only listed about half of them so far...) And a shiny new server or two as well. So there's some upside, at least.
Posted by: Pixy Misa at Saturday, July 07 2012 10:08 AM (PiXy!)
3
My jaw dropped. Then I wondered if the four of us still on mu.nu will be able to use this/
Posted by: Wonderduck at Sunday, July 08 2012 01:35 AM (ifb6Y)
Posted by: Pixy Misa at Sunday, July 08 2012 03:10 AM (PiXy!)
5
Heck, I can barely use any of what we've already got (how do you set up categores? What do the publishing statuses besides Publish and Draft do, and will one of them let me preview a post before I make it live?) But if the new editors don't home the browser window after I paste, I'll be happy.
Posted by: Mauser at Monday, July 09 2012 12:47 PM (cZPoz)
6
You can set up categories as folders with a type of "Category".
But yes, a big part of this will be a more intuitive (and better-documented) dashboard.
Posted by: Pixy Misa at Monday, July 09 2012 02:11 PM (PiXy!)
7
I suppose this may be finally the time for me to put together a Meenuvia client that I meant to do a long time ago, using the promised RESTful API. Back when I started thinking about it, the only portable platform was iPhone, which did not interest me at all. Now we have a legion of Droid devices.
Posted by: Pete Zaitcev at Wednesday, July 11 2012 02:48 AM (dON//)
8
I'm going to bring up a test instance on a VPS soon; I'm happy to give you an API key so that you can try things out.
Posted by: Pixy Misa at Wednesday, July 11 2012 07:01 AM (PiXy!)
9
Do keep us up-to-date. I am about to start another blog, this one commercially inspired, and will consider alternatives to WordPress.
So I have this idea for a TV drama series about a group of techies - possibly network engineers, but I'm thinking in terms of compiler writers - who come together at night to fight crime. Or supernatural horrors from another dimension, same thing.
They would, of course, be called the Token Angels.
Because this would be the best theme song ever.*
Start it at about 0:20 and finish at 1:45 and you have just about the length for an anime opening (typically 90 seconds).
* After** the themes from Problem Child and Linden Hill by the Electric Ant Orchestra, available on their album Winter Collection from Cinnamon Tree Records.
Posted by: Pixy Misa at
02:00 AM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 7 words, total size 1 kb.
Wednesday, July 04
The Nargun And The Pop Stars
For a rock, that thing has a wicked sense of humour.
Natsuiro Kiseki.
(THAT, which has a talent for this, titled the show Magical Rock Trolls Four Girls.)
Posted by: Pixy Misa at
09:06 PM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 34 words, total size 1 kb.
Tuesday, July 03
Peppered And Salted
Two more NASes arrived at Pixy Labs today - Pepper v2 and Salt v2, a couple of LaCie 5Big v2 units like Sugar but minus the marbles-in-a-tumble-dryer Hitachi drives. Minus any drives at all, in fact, which makes them a heck of a lot cheaper, $399 each vs. about $1700 for the 10TB Sugar back in 2010.
Once they're loaded up with disks (and I have 8 1TB disks lying around, and 12 2TB disks waiting to be built into PCs), they're replace Pepper and Salt v1, my old Acer Easystores. These will be - depending on what disks I decide to put into them - 5, 10, or 15TB each, replacing the 4TB Salt and 2.5TB Pepper.
Once I've built Shana and Lina as well, I'll have, hmm, 40 to 48TB of available disk, all of it RAID-5. That'll do, I think.
MySQL, good. Redis, good. MongoDB, good (since 1.8, anyway). Riak, good. CouchDB, good. ElasticSearch, very nice. Neo4j... If I want the ability to run backups, costs as much as my entire operating budget. So, no Neo4j for you!
Kyoto Tycoon, good....
Posted by: Pixy Misa at
05:21 PM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 46 words, total size 1 kb.