My wonderful boys have broken my internets, again. 

They are going on a net diet. Starting Nov 28 when my data plan resets. Little assholes. I cannot wait until my contract with my current provider is done so I can go back to one that works better for us.  (Why are we on a shit plan? Because we moved to Darwin which is practically a third world fucking country at times and my preferred provider did not service the area I lived in.) 

Also, I got a fitbit for my birthday which has completely triggered my competitive side. (And shown me that no I really don't move enough on days I don't work.) So guess who is off to vacuum the floor and then pace the kitchen like a caged beast until the plastic red band on her hand starts to vibrate and set off flashing lights? 


MORE
11/19 '14 8 Comments
I have an Apple Airport Express router. It has a feature that lets you set the hours that each individual device can be online. Currently working great with my teenager.
Oh god, that sounds like the answer to my problem! Damn kids. Though I suspect they aren't completely to blame... just mostly.
Perhaps yours has the feature too...
I am able to limit use on this particular computer, but not for other devices using the network. (I am somewhat impaired when it comes to all things tech.) But I don't know about my router. It's the one supplied by my net provider. There's three laptops, one iMac, two DSs, four iPads and four Kindles that are all connected to the wireless network. (Oh and two iPhones) I wouldn't know where to start with restricting each device, but I am sure I can find someone who would know that could show me. (I hope!)

I have three teens. (Well the baby is 12 and a half) They are killing my internets every month. I fear if they do it again next month, their Dad will kill them!
I have a fitbit. Want to be fitbit friends? I need more motivation - I keep forgetting to put it on my wrist, which is really silly because my company gives me healthcare reimbursement cash if I complete x amount of activity in x months ... which I do, I just don't document it. So stupid!
Yes! Do you have the Flex? I use mine to track my sleep as well. The first two nights it was telling me how great I sleep, which is not at all how I feel. I always wake up feeling drained and tired. Some nights I feel like I am conscious and aware for most of the night.

I've had sleep issues ever since I was a kid.

Then I was actually looking at the fitbit dashboard and noticed there were two settings for sleep. The default normal setting and sensitive. Ever since I switched it to sensitive my sleep percentages plummeted from 90+% to the 50% range. For 8-9 hrs a night I spend in bed, I sleep just under four. (Last night I managed to get 5 whole hours of sleep! which put me at 67% sleep efficiency, the highest it's been since I switched to sensitive)

And yes you really should be putting it on your wrist!
It's on my wrist today! I'm already getting better ... haha. It is a Flex. I never thought about using it as a sleep tracker. If you wear it when you sleep, when do you charge it?

I wonder if there is anything you can do to get more sleep. I hope so. Sleeping half the time you are in bed sounds terrible ... well, unless your husband is in bed with you and you're doing something better.
I try to charge the fitbit during a time I know my activity level will be quite low. (Marking the kids school work at the table, scheduled reading, whilst sewing or anytime I know I will have extended sitting.)

I workout most nights. usually. I have noticed I am feeling more tired lately and not as rested when I wake up and I think it's because my exercise for the past three weeks has been inconsistent. So I think I need that second workout in the evening to help me sleep. Not having caffeine after 6pm, (so drinking only water or herbal tea) switching off all digital things an hour before bed (a work in progress with that one) keeping my diet clean. Sleeping at 50% efficiency sucks balls. (And not in the fun way) I do find nights that have no sexy time I sleep less. (Sex fixes so many things.)

Cause my net is running so poorly I have not bothered with my email. (gmail takes forever to open) But I did connect my fitbit to my Facebook so feel free to send me a friend request.

Glad to hear you have it on your wrist today! (I take mine off when I shower also. Wish I could wear it in the pool. Saturday is our recovery day and I swim 1-2 km. Or more, depending on how long we spend at the pool and how I am feeling. This week will be interesting. The hour long kettle bell workout I did yesterday makes lifting my arms up above shoulder height somewhat painful! Windmills will be the death of me)

I set my daily step goal as 10,000. I beat it around 5 days in every 7. If I get over 7500, I'm pretty happy. Especially if I have also exercised. (Weights don't tend to give you much in the way of step counts. Boo.)
 

Fang: I don't get to do any creative writing in my core extension class.  The next thing I have to write is about immigration.

Me: What do you have to write?

Fang: An essay from the point of view of an immigrant coming to Ellis Island.  And we have to do a bibliography.

Me: Did your teacher specify a year?

Fang: No.

Me: Well, if you choose a poor person coming over in the early 1900s, the conditions on the ships were terrible.  People huddled on the floor in family groups, not always enough beds or any beds for a transatlantic voyage, there were vermin, poor sanitation, little food ... you could tell some really gruesome stories.

At this point, Fang, who adds, quite correctly that the late 1800s also qualifies, is grinning like a jack-o-lantern.  Gruesome is his bag, baby.

MORE
11/19 '14 7 Comments
New York Harbor, 1905.
Oh heavenly, fertile writing ground.
I can smell the tertiary syphilis from here.
I'm curious to know what essay format they want him to use. we learned a funnel system leading to a thesis statement (blank must blank in order to blank), followed by examples, and then a conclusion that summed it up. I'm wondering what they want in terms of craft.


share this with him. it might help, it might not.
I write fictitious plays based on true people and events. what I do is I read as much as possible about the true people and events. then I sit back and think about them until I come up with what the characters want, how they intend to get it, and what obstacles are in their way. Then I think about how they're likely to end up as a result.
then I think about what actions they need to take to get what they want.
then I write the play.

hope it's helpful.
This is great advice.
That's my fang! (also want to read snippets!)
Gruesome is good. Will you post a snippet or two?
I'll ask him!
I'd also love to see what he does with this.
 

Hey guys, no robitussin for me tonight. So I managed to shake loose some time to work on OPW's link-sharing features. The jump from the hack I had before to handling this... closer to properly... was a big one, but there's definite progress.

Here are some examples:


This strip has nonexistent semantic markup, which is geek-speak for "it's hard to embed it right," so I'm pleased with how they turn out now when you just paste a link to that day's comic page. I had to edit the title a little, and supplied my own description; it automatically picked the right image (the largest one, by area). You can also tap on the image to cycle through alternatives, if any decent ones were present.


Girl Genius looks good too. There was a problem with overlap— oops, I fixed it.


XKCD: 100A.


This one has an automatic summary, because they supply a proper og:description element. The best available image is pretty crap, though; reminds me that I need to add an option to remove the image entirely.

I also found a few links just now that don't work at the moment. Probably I need to specify a user agent string and then they will cooperate perhaps.

This is an iterative improvement; more are planned. Please do open issues via the bug button.

Thanks!

MORE
11/19 '14 14 Comments
I heart Agatha Heterodyne. (And of course who doesn't love XKCD?) I'd never seen the mutant babies one before. Cheers for that.
When I read this post with Chrome on my Android device, the images are left-justified, but too large to display, so it cuts off about a fifth of the image on the right-hand side. Images that are not part of links, on the other hand, are shown in their entirety, as in your "An oldie but goodie" post from a while back.
Roger that. I need to check out the mobile treatment. Thanks.
Yay! Two things: 1) I did not know that clicking a pic will click me out of OPW, and coming back is always a pain because expanded posts recompress and I lose my spot; and 2) I love reading the hover text in XKCD cartoons, and it's not showing, but that's a small one.

Great work! I can imagine the jump to this required a lot of work. xoxo
Thanks for the feedback!

1. Some people love "click to open in new tab." Some people think it's the devil. Opinions welcome. As for expanded posts recompressing, that is something we ought to fix by recording that information in the hashtag part of the URL, so that we can re-open things correctly when you click "back."
2. I'm not gunning for "don't bother clicking through to the other site to read the funny" here, as content owners tend to take a dim view of that, and for understandable reasons. The size is meant to be big enough to look cool and get the idea across but still leave you interested in viewing other people's stuff. Not, um, stealing their stuff.
I'm in the camp that views opening links in a new window/tab as breaking the back button. Or, the Devil. It's trivial to ctrl-click if you want to force a new window, but there's no way to easily tell a link to open in the same window (nor should there be, because that has always been the default).

In case you wanted opinions.
Seems like good logic to me.
Opinions appreciated!
I prefer links to by default open in a new window unless the back button works perfectly, and I mean perfectly, every time, and I mean every time.
Yeah, I think that should be our ambition but we haven't done much with paying attention to it yet.
Excellent point on both accounts. :)
The XKCD strip makes me wonder if perhaps bringing the alt and/or title (I forget which he uses) attributes across might be nice.
As I was saying to Karen, I'm actually bringing over images big enough that it's perilously close to "don't bother going to that other site that totally owns this image" as it is. So I reckon I need to leave some curiosity pointing in the direction of clicking through, or people may be quite understandably put out with me.
That is completely cool, and it did cross my mind, but you know, one likes to float ideas. :) I'm definitely all for supporting the creators, which reminds me, I need to go poke at my Patreon account...
 

Lots to love on this list.  Good food for thought.





MORE
11/18 '14
 

I loved Morgan the Unicorn so much I wanted to name a future daughter after her. I'm trying to remember how young I would have been to be into these.

MORE
11/18 '14 12 Comments
I LOVED Morgan...all things unicorn, really. I still have some of those Serendipity books and still pick up ones when I see them. Been eyeing ones on Amazon for my best friend's daughter. I was just talking the other day to someone about my unicorn collection, specifically that I still have my My Little Pony unicorns. :) This post really makes me happy that someone else remembers Morgan.
I also collected Sue Dawe unicorn posters. Remember this one? http://i.imgur.com/rhfzeQh.jpg I had it on my bedroom door for years.
I feel like an uneducated arse... I never even heard of these before. Must make up for lost childhood STAT!
No, really, this could be entirely buried under charm bracelets, Strawberry Shortcake, and all the other more common items from Way Back When. I just caught a thread of a memory when I heard the name Morgan last night. I was lucky to get a hit on the correct cover art to pick up the rest.

I am always for making up for a lost childhood. Still working on mine. (I haven't made it out of kindergarten, yet.)
I actually have never heard of these either. I probably would have loved them as a kid, too. Now I have boys and unicorns are Right Out, but since even my toddler is a rabid, drooling Labyrinth fan, I really have nothing to complain about.
I remember getting this series for my daughter, born in 1990.
Unicorn Club Forever! (I made a unicorn club when I was 11. Your daughter is an automatic member.)
I looked, just for fun. 1892 for Morgan and Yew! http://en.wikipedia.org/wiki/Serendipity_%28book_series%29
Wow, did not realize how old these were. I guess I should say I don't know how old I was when these particular printings were out. I recognized the covers instantly. Thanks for the link!
...and now I know the Morgan books came out from 1975-1982, which lines up perfectly with me being 6 and under. Nice trip down memory lane. :)

Morgan and Me 1975 Treat others the way you would like them to treat you
Morgan and Yew 1982 Love is the most important possession we can have
Morgan Mine 1982 To have a friend you must be a friend
Morgan Morning 1982 Sometimes we must lose in order to gain
my family went to nyc when i was 11.
my aunt lived around the corner from the cloisters.
seeing those unicorns locked in pens and stabbed
angrier and sadder than i had ever been before
the security guard helped me get outside like he understood
Life is a curious tapestry of events.
 

Yup it's cold in Chicago today. I hate the cold just as much (if not more) than most people I know. But ya know what? I woke up under a pile of blankets in my heated home. Took a hot shower, and then put on clean clothes that were warm and dry. With a full stomach, I chose which coat to wear and opened up a box full of mittens, gloves, and scarves to layer on. I know that no matter what happens today, I will have food to eat and safe, warm spaces to dwell. Counting my blessings today and wishing that this was the norm for everyone. ‪#‎HandHWeek‬ ‪#‎NHHAW‬

MORE
11/17 '14
 

I'm reading Wolf Hall right now.  It's the first book of three in Hilary Mantel's trilogy about Thomas Cromwell.

It feels pretty much like standard historical fiction so far.  Because the back story is so complicated (dear me, but the 15th and 16th-century English royal family trees are confusing), she has lot of different tricks to give it to us: characters just recalling it as (boring) internal monologue, dialogue, legend.  It's well written, but feels anachronistic in parts.  You know, historical fiction.  In high school, to avoid 11th-grade English, I took a course called "History through Literature", which was basically a course made up of historical fiction (we did read some Shakespeare), and sure, at various times over the course of my life, I've read quite a bit of it, though my preferred English period is around 350 years earlier.

And sure, Thomas Cromwell is pretty cool to learn about.

But I can't help but think it's a little much that both this book and its successor won the Man Booker Prize. 

And yet.

There's gender afoot.  Basically, I'm saying that I don't think that historical fiction, as a genre, is really literature.  (That's probably true. I probably don't.)  But of course, it's a genre mostly written by women, while "literature" is more often written by men. 

And yet I think it's good genre fiction.  And yet, I like musical theatre, not opera, and I think that "Show Boat" is as important as any opera.

MORE
11/17 '14
 

There was a post here, but I lost it switching things around and being a general dingus. *salutes*

MORE
11/17 '14
 

Houser: My question is, how do I get you to nap?

Beeble: Your question is tigers.

Houser: My question is not tigers. Maybe that's your question.

Beeble: Nooo. My question is leopards.

MORE
11/17 '14 6 Comments
What have I til you about lion to me?
Such a cheetah.
He'll never prosper.
Hello, Dalí, well, hello, Dalí, it's so nice to have you back where you belong.
That's an Ocelot of questions!
 

This is another post about Blindside, the text-only realtime RPG I'm working on. At the moment, I'm both looking at tools and options for building game maps, and implementing tools for the game's AI.

The game is intended to be large and complex enough that I am creating it in two pieces: "engine" and "content". Let me explain, if you're unfamiliar with these ideas. The engine is software, and it does all the housekeeping like keeping track of your location, stats, inventory and health, and also figuring out what you can see, who you can attack, where you can move, and so on. The content is the all the stuff the engine needs in order to tell a story. So there's maps, descriptions, dialogue, lists of NPCs and so on.

In a sense, the engine is like a video game console. It doesn't do anything until you add some content in the form of a game. And then it comes alive. (Oldbies will be familiar with game engines like SCUMM, used for the Lucas Games graphic adventures; and the Z-machine, used by Infocom for their text adventures.)

The great thing about splitting apart the engine from the content is that if you design the engine right, you won't have to change it once it's finished. You just start the engine up and point it at the content. And you can then spend the rest of your development time working on content, and even keep making more content even while the game is running.

Because I want the monsters and NPCs in the game to have very different responses to the player, have some decent agency, and to actually be difficult to beat in a fair fight, the AI system needs to be both powerful and flexible. And when you want to teach a computer to do things both powerfully and flexibly, inevitably you'll want to create a language to do that. And, traditionally, when a game engine has a language built into it, it's called a "scripting" language, because you're creating a script for the characters, locations and items in the game. 

So Blindside will have a scripting language of its very own.  But wait, I can hear the wailing of the nerds -- there are scripting languages out there already! Why invent a new one? You could be creating content or making your engine better, why waste time on making a new language too? There are often justifications for making a new language, especially when the use for that language is very specialized.

One problem with many modern computer languages is that they are so generic -- so applicable to any problem -- that while they can do almost anything, you have to be extremely verbose and specific about exactly what you want done. You might like to think of generic languages as a big pile of 2x4 lumber and a huge pail of nails. You can build almost anything from a doghouse to a four story apartment building with these components, but it's going to take a long time and you have to be very careful and precise. A custom language, gives you the equivalent of panels for a prefabricated house. While you can only build certain kinds of rectangular houses of certain sizes with these panels, they go together very quickly and they work very well.

In computer science more broadly these kinds of specialized languages for making "prefab" houses are Domain Specific Languages, or DSLs, in that they're languages specifically made for a particular domain/use.

The goals for the AI language are that it should be very easy to understand (so one can review it at a glance), very easy to write (so I can teach it to others), be both terse and obvious, and still be flexible enough to allow lots of different tactics. 

The language is still in flux but I thought I'd show you a bit of what it will look like. This little bit of code might be attached to an NPC that is part of a team of fighters, or maybe even a friend or companion to the player. 

See if you can figure out what this does just by reading it.

  first ally poisoned having health<25% order by health
    definitely cast remove poison order by speed
    possibly use remove poison having quantity>3


It should be pretty clear: If there are any allies who are poisoned and dangerously low on health, pick the one who has the least health and cast the fastest spell available to cure their poison and then end the turn, but if no such spell is available or we can't cast it, then if we have at least four items in our inventory that can cure poison then we might use one, but we'll also check for other things to do.

This is some pretty complex behaviour expressed in a fairly concise fashion.

And this code actually works, at least to a degree. What is happening right now is that the above three lines are converted by a compiler into about twenty lines of Javascript that do exactly what is described. (I'm not going to show it that because it's huge and ugly).

The cool thing about a compiling the AI code right into the same language that the engine is written in is that the AI code runs just as quickly as the engine itself. This is kind of unusual for DSLs and scripting languages in general -- usually they're interpreted step by step by the main engine program, or by a helper program called a library. 

But making this a compiler is great news for Blindside -- it means the AI can be quite complex and still not bog down the system even if there's a few thousand creatures roaming around with their own little agendas. It also means my job creating the engine is somewhat harder, but that's a good trade-off. As a programmer, my job is to make computers useful and helpful.

And if by putting a little more effort into my work makes the work of others much easier, then that is what I like to call design leverage. If I spend an extra hour, or week, or month, in making something better so that all of the dozens or thousands or millions of people who use it can get an extra second, or minute, or hour of time back or make their use of my project more enjoyable, or at least suck less, then that is time very well bargained.

And now we're at risk of veering into my whole philosophy of engineering so I think I'll wrap this up now. Thanks for reading, if you made it this far, and thanks for trying, if you didn't.

MORE
11/16 '14 8 Comments
Although I wonder if you are actually using SQL on the back end, since it reads like that flavor of language.
I've adopted a few SQL-like idioms, but not for technical reasons. There's also a AppleScript feel in the simple declaratory English verbs, and the use of prepositions instead of punctuation.
Nice! Just to play devil's advocate, you could say this not too much more verbosely if you wrote it in JavaScript using lodash... Well, you'd have to type "function" a lot. You could target that with your computer for output that is easier for you to follow perhaps.
With your compiler rather.
It indeed uses map, filter and sort functions to do some of the heavy lifting, but there's also some context management and dereferencing going on which bloats it up.
Something to consider is to try and get a minimal viable product in place, and to open it up to a small set of people to start to play with. Are you going to allow community to help create content?
Indeed, the short-term goal is to get a full stack engine with basic content up as soon as possible. Realistically it will probably be a few months even to that point because I don't want to be changing things too much once the world begins to connect to it.

I am still on the fence regarding community content. On one hand, yes I'd like to be able to flesh the world out quickly and with many varied experiences, but on the other hand I very much want the user experience to be consistent and progression-driven, which is tricky even in a tightly-knit group of developers.

The answer may lie in an approach such as that offered by e.g. Little Big Planet, where there's a main story that's tightly architected, and then user content that lives in its own shards and puts the player completely at the mercy of those who construct it. I used a similar approach in the early 90s in a somewhat similar multi-user environment called Universe, and it was effective enough but did have the problem of too many cooks creating too much tepid soup, and not enough customers willing to taste their way through the menu.
Glad to hear you are at least considering community content. I agree that a lot of community content is of questionable value, although there is often a rare contribution or two that can even outshine the primary source.