Just a random story idea I had… (literally, just had the idea so this will be a bit of a thought dump and pretty disorganized – also no story checking so this might be a re-envisioning of something I have actually seen before.)

 

Androids that get little energy cubes when they are born. The cube is combined of smaller cubes and say they all start out with an 8x8x8(512) cube of energy cubes. These cubes dictate what they can do, they need energy to run themselves and everything they interact with. New cubes can no be created by the androids (human oppression). Energy cubes can only be given and taken, and an android needs a minimum cube (say 4x4x4(64)) to be able to function. This leads to a black market/underground trade/murder market for energy cubes and a faction  of androids trying to reproduce the technology to create new cubes while being actively sought out by humans that are afraid of the androids taking over if they had limitless power.  This also means multiple androids are required to operate certain things, requiring team work/sacrifice for larger goals. Capacitors could play a part in weaponry as well .

 

Thinking humans might use backpacks full of cubes with wires that come down to their hands, so they can power stuff the same way an android would – and this leads to some humans being killed for their cube packs (but it isn’t easy since they have so much power, they have the ability to use incredible weaponry).

 

Visually the cubes go in the center of the androids chest, as they add more they spread out. So a super powerful (aka rich) android would have it’s body laced with glowing white/blue energy cubes semi organic looking. Maybe some modified humans could have the same / sympathizers or similar.

 

That is the platform for the world, I don’t know what the underlying story line would actually be. There are a bunch of interesting options. I will think on it.

 

edit: the cubes are a limitless supply of a specific amount of power. Like a never ending AA battery or similar.

ad·mire  

/ədˈmī(ə)r/

Verb:

1. Regard (an object, quality, or person) with respect or warm approval.

2. Look at with pleasure.

 

I have said it multiple times in verbal conversation but I wanted to take a few minutes to really talk about it with all of the rights equality stuff going on right now. I honestly admire LGBT people. I want to hang out with them, and learn about their lives. I am not gay myself, but I strongly support their cause. Why you might ask? I didn’t really know why until I read a recent post from Brian Rountree regarding the struggles (some rather violent) he had faced throughout his life of being openly gay, it finally clicked as to why I admire these people so much.

My class and generation hasn’t had to fight for a damn thing. The biggest inconvenience most of us face day to day is when our chips get stuck in the vending machine. The straight white male has been given everything, or at least the opportunity to have anything. Now don’t get me wrong, I have certainly earned a lot of things in my life, and many of those I had to fight for, but not in the same way with such great consequence.

I have clawed my way through technology doing some pretty cool stuff and getting an opportunity to work on amazing things, it has taken dedication, sweat, tears, many long nights and that sacrifice isn’t close to over yet but it has never cost me jail time, or 3 on 1 fight, being persecuted or discriminated with true hatred. In essence I was fighting for what most anyone could have if they tried hard enough. A pretty soft and comfortable life if you think about it.

LGBT people are right now, and have been for quite a while, fighting every day just for their right to love someone. Such a simple basic component of society that some people don’t want them to have. They literally risk life and limb every day they choose to express a core component of who and what they are.

That is admirable.

If you think about it, it is one of the most admirable things that our generation will see on US soil. I know there are terrible things going on all over the world (and the much more extreme persecution of LGBT in other countries is one of them). But here, at home, no group of people risk more just by loving someone and wanting to let people know about it.

I have heard of stories about people getting jumped, beaten up, cussed out, berated, having their things broken, even killed – for loving someone. Yet, they stand strong and continue to fight the good fight, they haven’t hidden, they have stood for their beliefs. When is the last time you have had to do that? … and at the risk of a serious ass kicking by a couple of bigots in a back alley? For many of us, never. Think about that for a minute.

That also leads to why I love them so much and want to know their lives, who and what they are. Most of the LGBT people I know have amazing character. Not because they are LGBT, but because they have the strength of character to be open about a belief, one they believe in enough to be persecuted for it. I don’t want to hang out with them because of their sexual preference, I want to hang out with them because they are fighting a bigger fight than I will probably ever have to in my life for anything I believe in… and that is pretty damn admirable.

Why wouldn’t you want to get to know someone that wakes up every day and says “Screw society, I am going to be totally true to myself today and try to change the world”? Seriously, that is all any of us can hope to do in our lifetime, and every LGBT person I know is a shining example of this.

Instead of looking down on LGBT people and this movement or pitying their plight, we should be looking at them with admiration and cheering them on. I can never take on the cause with the same conviction they do, but I firmly stand beside my LGBT friends and I commend them on what they are doing and no matter what happens, I will always admire the people they are.

If you take the time to get to know a few, I suspect you will feel the same way, at least a little bit. I don’t think hate is possible if you get to know who and what it is you are trying to hate.

 

 Tl:dr; Don’t be an asshole, love and let love, be friends with someone LGBT and open your mind to what true character is.

 

If you feel otherwise please feel free to comment, but please be aware I will only entertain intelligent discussion on this or any other topic. Anything that is hateful or a baseless attack will just be deleted, I will not allow ignorance or hate to be spread through my website.

 

So, I recently discovered that I can advertise on Facebook for about $.50 per 1000 impressions, and after playing with the demographics selection I learned there are about 74k women within 25 miles of San Antonio within my selected age range. So, for $37 a day I can show all of the women (more or less) in this area an ad… how should I wield such power?! By making a dating ad for myself obviously. It is a numbers game anyways right?

With that in mind I need some help. As with any advertisement for a superior product (me) it needs reviews so people know that it isn’t just all hype but has actual substance… awesome, awesome substance. I need reviews ladies. If you know me, have just met me or have only had the pleasure of hearing about me, write a review and I will put it on the little micro-site I am going to make for my dating ad word for word (good or bad). I will post every review.

You can either email them to me or just post in the comments below.

I know this is conceptually crazy but that is what makes it so interesting. Best case scenario it works, worst case plausible scenario it is an entertaining experiment that fails and I get nothing but trolls which would at least be interesting to see. (technically the worst case scenario is that everything ceases to exist but I doubt this will cause that).

Working on the MSI for the OpenWin project I ran in to an issue, how to silently install PyWin32. It took some digging, and I ended up having to open a feature request to get the answer (Mark Hammond replied very quickly), but here it is…

 

(Instructions specific to Python 2.6.x but should be easy to adapt)

Extract the .exe installer (I use UniExtract http://legroom.net/software/uniextract)

It will create 2 directories PLATLIB and SCRIPTS copy the contents of both directores in to c:python26libsite-packages

Then cd to c:python26libsite-packages and run “python pywin32_postinstall.py -install”

Remove pywin32_postinstall.py

That will install PyWin32 silently.

 

You may not have to copy the pywin32_postinstall.py script to site-packages or cd to that dir, but that is how I did it the first time and it worked, and I just haven’t tested it any other way.

Had an idea that slowly morphed in to a pretty cool concept after some extensive discussion with Will Kelly…

 

A plexigalss cube of USB devices, basically start with a small clear cube (corner balanced) that you can connect USB devices that is just a giant JBOD. People can send in their physical devices, the installation is read only. You plug the device in and it has a little blue read light that blinks when it is accessed or a scaled light from Green to Red depending on how much content on the drive is down voted or flagged as not fitting the acceptance agreement (nothing illegal etc). As more USB drives come in, another layer is added to the cube and another micro server to handle all the additional devices. The submission would be open for a certain period of time, or to a max limit of devices, then the cube is sealed and becomes a snap shot of files in time and is an interactive art installation since it would pulse and blink randomly as the files were accessed etc. There would be a website front end that randomly displays content from the drives on the main page, and it would all be searchable.

 

Thoughts?

So, I am looking at doing large scale OpenStack deployments, one of the concerns with that is a naming format. Initially I was thinking something like “nn” for nova node and “nc” for nova controller etc. My large scale enterprise experience told me that would quickly become a horrible idea, especially considering the various ways that people are going to deploy this. With some thought and help from various colleagues I have come up with the following naming format… let me know your thoughts…

Naming format XXXXXXXYYYYZZZZ
All Base36 – XXXXXXX=Coded service list, YYYY=Cluster#, ZZZZ=Unit#
This gives 31 service bits, 1 Million cluster #s, and 1 Million unit #s
This creates a 15char unit name, the maximum allowed for MS NetBIOS names (although primarily *nix right now, we have to account for future growth into the Windows space)


From Right to left, binary to based36
000000000000000000000000000000000000 = 7char base36 XXXX from above.
|||||||||||||||||||||||||||||||||||'-Nova-API
||||||||||||||||||||||||||||||||||'-Nova-Compute
|||||||||||||||||||||||||||||||||'-Nova-Network
||||||||||||||||||||||||||||||||'-Nova-ObjectStore
|||||||||||||||||||||||||||||||'-Nova-Scheduler
||||||||||||||||||||||||||||||'-Nova-Volume
|||||||||||||||||||||||||||||'-Swift-Account
||||||||||||||||||||||||||||'-Swift-Auth
|||||||||||||||||||||||||||'-Swift-Container
||||||||||||||||||||||||||'-Swift-Object
|||||||||||||||||||||||||'-Swift-Proxy
||||||||||||||||||||||||'-Glance-API
|||||||||||||||||||||||'-Glance-Registry
||||||||||||||||||||||'-Future-Use
|||||||||||||||||||||'-Future-Use
||||||||||||||||||||'-Future-Use
|||||||||||||||||||'-Future-Use
||||||||||||||||||'-Future-Use
|||||||||||||||||'-Future-Use
||||||||||||||||'-Future-Use
|||||||||||||||'-Future-Use
||||||||||||||'-Future-Use
|||||||||||||'-Future-Use
||||||||||||'-Future-Use
|||||||||||'-Future-Use
||||||||||'-Future-Use
|||||||||'-Future-Use
||||||||'-Future-Use
|||||||'-Future-Use
||||||'-Future-Use
|||||'-Future-Use
||||'-Future-Use
|||'-Future-Use
||'-Future-Use
|'-Future-Use
'-Future-Use

Common Examples:
All Nova = 000001R
All Swift = 00001J4
All Glance = 00004QO
Nova+Swift = 00001KV
Swift+Glance = 000069S
All current = 00006BJ
All current & future = VKHSVLR

A full example of a machine running Nova and Swift, in the 1,002 cluster, unit number 12,643 (assuming this is the biggest cluster ever heh) would be...
00001KV00RU09R7

There are some variations possible, we could do XX

In theory this naming scheme would not need to be changed for a number of years. It also allows you to at a glance understand a servers original purpose or analyze a large scale implementation without requiring auditing or configuration databases. The obvious downside is that changing the services on a box would require a name change although in large systems usually service changes would use a migration box and the naming could be done there. The size of the name is a concern for ops people as well but I would expect copy/paste to be utilized from alerting/tickets etc. This is just an idea now that I will most likely start building installation process/automation around so any thoughts?

Note: These unit names should be auto generated through various setup utilities, anyone doing an install by hand probably wouldn’t need a naming scheme with large scale design, although I would highly recommend it if possible.

If you would like to comment please visit my blog directly http://www.jordanrinke.com/2011/01/05/based36-naming-scheme-for-openstack-servers/ ping me on twitter http://www.twitter.com/JordanRinke or find me on IRC on #OpenStack

There is no way to actuall schedule an event in Outlook that I know of, however if you add the following code to the same session as the previous sub it will kick off whenever a task with the subject “MOVEOLDEMAILREMINDER” pops a reminder. To set this up create a new task, give it the subject “MOVEOLDEMAILREMINDER” and set a reminder. When the reminder fires, the code below will execute, moving the reminder to a day later. Simply dismiss the reminder popup and your email over 30 days old will have been moved to a personal folder. If you want to run this a week apart instead of daily, just change the DateAdd number from 1 to 7.

Private Sub Application_Reminder(ByVal Item As Object)
Dim objTask As Object
Set objTask = Item
If objTask.Subject = "MOVEOLDEMAILREMINDER" Then
    objTask.ReminderTime = DateAdd("d", 1, objTask.ReminderTime)
    objTask.Save
    MoveOldEmails
End If
Set objTask = Nothing
End Sub

Here is an Outlook macro I whipped up a little while ago since my inbox was so insane I was having trouble even selecting all of the email in it. As you can see my version is heavily modified from a source article I found here ( http://blogs.iis.net/robert_mcmurray/archive/2010/02/25/outlook-macros-part-1-moving-emails-into-personal-folders.aspx )

There are a few things to note… use at your own risk is the first. Second, this only does a folder deep in the inbox mostly because I didn’t feel like writing a recursion method. There is limited error checking, I wanted it to crash vs try to survive and screw up my email. For this to work you must have a datafile added for each year in YYYY (2010, 2009, etc) format. The macro will attempt to create any subfolders that it needs. Macro is as follows, if you make any huge improvements to it please let me know.

Sub MoveOldEmails()
'NOTE: This does Sent Items, Inbox, and 1 folder below inbox. It will not do more than 1 folder deep in the inbox.
    ' Declare all variables.
    Dim objOutlook As Outlook.Application
    Dim objNamespace As Outlook.NameSpace
    Dim objInbox As Outlook.Folder
    Dim objSentbox As Outlook.Folder
    Dim objDestFolder As Outlook.Folder
    Dim objMail As Variant
    Dim intCount As Integer
    Dim intDateDiff As Integer
    Dim intAge As Integer

    'Move anything older than this date.
    intAge = 30

    ' Create an object for the Outlook application.
    Set objOutlook = Application
    ' Retrieve an object for the MAPI namespace.
    Set objNamespace = objOutlook.GetNamespace("MAPI")
    ' Retrieve a folder object for the inbox folder
    Set objInbox = objNamespace.GetDefaultFolder(olFolderInbox)
    'Retrieve a folder object for sent box folder
    Set objSentbox = objNamespace.GetDefaultFolder(olFolderSentMail)
    ' Note: Using cached mode with exchange is much faster, non-cached mode will take 1-2 seconds per email
    ' since a request is made for every object vs using a local cache.

    'Move sent items first.

    For intCount = objSentbox.Items.Count To 1 Step -1
        ' Loop through the items in the folder. NOTE: This has to
        ' be done backwards; if you process forwards you have to
        ' re-run the macro an inverese exponential number of times.
        Set objMail = objSentbox.Items.Item(intCount)
        intDateDiff = DateDiff("d", objMail.SentOn, Now)
        Debug.Print intDateDiff & ":" & objMail.SentOn
        'Move anything older than intAge
        If intDateDiff > intAge Then
            'Set blnFound to False, it will be set to true by logic if the folder does not need to be created
            blnFound = False
            For Each objFolder In objNamespace.Folders(CStr(Year(objMail.SentOn))).Folders
                'This is sloppy since we will loop through all of the folders to see if the folder exists
                'for every mail item, I could make an array and do a search on it but this should be run in
                'cached mode so there is not much of a difference. This is however, very much not optimal
                If objFolder.Name = objSentbox.Name Then
                    'If the current folder matches our search folder set blnFound to true to skip folder creation
                    blnFound = True
                End If
            Next
            If blnFound = False Then
                'Create the folder if it was not found
                objNamespace.Folders(CStr(Year(objMail.SentOn))).Add objSentbox.Name
            End If

            Debug.Print objMail.SentOn & ":" & objMail.Subject
            'Set the destination to the same structure as the source folder, i.e. "2010Sent Items"
            Set objDestFolder = objNamespace.Folders(CStr(Year(objMail.SentOn))).Folders(objSentbox.Name)
            'Move the object - technically mail is not the best name since this can be calendar items etc but I liked it more than "variant"
            objMail.Move objDestFolder
            'Destroy object for clarity
            Set objDestFolder = Nothing
        End If
    Next intCount

    'Next move everything in the root of the default Inbox
    For intCount = objInbox.Items.Count To 1 Step -1
        Set objMail = objInbox.Items.Item(intCount)
        intDateDiff = DateDiff("d", objMail.SentOn, Now)
        If intDateDiff > intAge Then
            blnFound = False
            For Each objFolder In objNamespace.Folders(CStr(Year(objMail.SentOn))).Folders
                If objFolder.Name = objInbox.Name Then
                    blnFound = True
                End If
            Next
            If blnFound = False Then
                objNamespace.Folders(CStr(Year(objMail.SentOn))).Add objInbox.Name
            End If

            Debug.Print objMail.SentOn & ":" & objMail.Subject
            ' folder structure i.e. "2010Inbox"
            Set objDestFolder = objNamespace.Folders(CStr(Year(objMail.SentOn))).Folders(objInbox.Name)
            objMail.Move objDestFolder
            Set objDestFolder = Nothing
        End If
    Next intCount

   'Loop through all the folders in the inbox
    For intFolderCount = 1 To objInbox.Folders.Count
        For intCount = objInbox.Folders(intFolderCount).Items.Count To 1 Step -1
            DoEvents
            Set objMail = objInbox.Folders(intFolderCount).Items.Item(intCount)
            intDateDiff = DateDiff("d", objMail.SentOn, Now)
            If intDateDiff > intAge Then
                blnFound = False
                For Each objFolder In objNamespace.Folders(CStr(Year(objMail.SentOn))).Folders(objInbox.Name).Folders
                    If objFolder.Name = objInbox.Folders(intFolderCount).Name Then
                        blnFound = True
                    End If
                Next
                If blnFound = False Then
                    objNamespace.Folders(CStr(Year(objMail.SentOn))).Folders(objInbox.Name).Folders.Add objInbox.Folders(intFolderCount).Name
                End If

                Debug.Print objInbox.Folders(intFolderCount).Name & ":" & objMail.SentOn & ":" & objMail.Subject
                ' folder structure i.e. "2010InboxsubFolder"
                Set objDestFolder = objNamespace.Folders(CStr(Year(objMail.SentOn))).Folders(objInbox.Name).Folders(objInbox.Folders(intFolderCount).Name)
                objMail.Move objDestFolder
                Set objDestFolder = Nothing
            End If
        Next intCount
    Next intFolderCount

    Debug.Print "Done"

End Sub
 
Enjoy