Blog Cleanup!

Finally got around to cleaning up all the (broken) auto-posts from IFTTT that I’d long forgotten about, and it led me to generate a bookmarklet that might help you delete posts more easily from your WordPress blog as well:

// Delete top post from "Posts" admin page (https://wordpress.com/posts/<your-site-name>)
javascript: (() => { 
  document.querySelector('button[title="Toggle menu"]').click();
  document.querySelectorAll('button[role="menuitem"]')[2].click();
})();

New Feature: Select Multiple Lines in Your WorkFlowy Lists

Workflowy

You can now select multiple items in WorkFlowy. This is one of the most exciting features we’ve released in a long time. For new users, it should just feel obvious, it should clearly work this way. For existing users, it should it should be a great relief.

It was quite complicated to implement, but it greatly improves the ease of managing and re-organizing WorkFlowy lists. Further, it is one of the last major barriers to WorkFlowy feeling like a true text editor, which is one of our overriding goals.

There are a bunch of ways to select things:

  1. Click and drag over all the items you want selected
  2. Hold alt (control/command on Mac) and click to select random items
  3. Hold shift and click to select all items between where the cursor is and your second click
  4. Hold shift and use the arrow keys
  5. Hold control/command and press “a” twice to select all visible…

View original post 105 more words

iTunes Crashes on Windows 8.1

iTunes Crashes on Windows 8.1

Wow, it’s been a long time since I’ve posted here! =P

Anyway, I just stumbled upon this fix for iTunes crashing almost immediately after launch on Windows 8.1 (might be triggered by launching the iTunes Store?), from a discussion board post on Apple Support Communities by MarkJaco:

MarkJacoDiscussionPost

I had this issue. Try copying QTWinMovie.dll from c:\program files (x86)\common files\apple\apple application support to c:\program files (x86)\iTunes. This solution fixed it for me and was easy!

Hopefully this will help you out as well! =)

Apple PowerBook 170

PowerBook 170PowerBook 170PowerBook 170PowerBook 170

Apple PowerBook 170, a set on Flickr.

The second acquisition of my recently established vintage computer collection is an Apple PowerBook 170, donated to me by a coworker.

The original power supply was shot, and the NiCd battery had leaked, but I was able to find an alternate power supply and boot it up! Unfortunately, the internal SCSI 40MB drive is no longer recognized by the system, so I’ll need to find an alternative mass storage device (or just stick with the 3.5″ 800K disks that my friends have shared with me).

Apple IIgs

Apple IIgsApple IIgsApple IIgsApple IIgsApple IIgsApple IIgs
Apple IIgsApple IIgsApple IIgsApple IIgsApple IIgsApple IIgs
Apple IIgsApple IIgsApple IIgsApple IIgsApple IIgsApple IIgs
Apple IIgsApple IIgsApple IIgsApple IIgsApple IIgsApple IIgs

Apple IIgs, a set on Flickr.

Inspired by The Byte Cellar (http://www.bytecellar.com/), I’ve just started building my vintage computer collection, starting with the Apple IIgs.

As you can see by the photos in the set, it is in remarkably good condition, and it came with all of the original boxes, manuals, and receipts!

Unfortunately, the original monitor is not functioning correctly (blown capacitors, I assume), so I’ve been using my DLP TV as a monitor. I’ve purchased a DB-15 to HD-15 (RGB to VGA) physical adapter and attempted to hook it up to a LCD monitor, but the scan range produced by the Apple IIgs (15.7khz, iirc) is far below the range of the LCD.

Ooh, this is exciting…especially since the Apple IIgs I recently acquired has a 65c816, which boots in 6502 emulation mode. =)

Editra: Setup as a Python IDE

I can’t believe that I had overlooked this application at first, but I’m glad that I finally started using it. So far, this is the best free Python IDE that I’ve found, and it’s a fantastic general text editor as well!

Image
Editra as Python IDE

Here’s the official guide on how to set up Editra as a Python IDE:

http://editra.org/setup_python_ide

Keyboard Geekery, Part 2

Now that I’ve received the XArmor U9W keyboard that I mentioned in my last post, and had a chance to use it for about a week, I thought I’d post a follow-up review for anyone who might be interested. =)

(FWIW, I’ve added this review to the product page on Amazon as well.)

—-

I’ve been drooling over the Das Keyboard Model S Professional Silent Keyboard for a while (and the original Model S Ultimate, before that), but I wanted to find something a little smaller, and wireless. The XArmor U9W totally fits that bill, and I love it. =)

Pros:

  • Cherry MX Brown keyswitches
    (I’d love to see this model with the Blues, but my coworkers appreciate that I picked a keyboard with the browns instead, and the feel is just as good, IMO.)
  • Relatively compact size
  • Solid feel
  • Wrist-rest included is quite nice
  • Itty-bitty USB wireless receiver
  • Solid signal (haven’t had a missed/dropped key yet)

Cons:

  • The mini-USB cable included only provides power, but doesn’t charge the batteries or carry any data. (Not really a big deal, since the point of this keyboard is to be wireless anyway)
  • The transmit (Tx) light that flashes every time you press a key. (I think I might just put some electrical tape over it, since there’s no way to turn it off)
  • The Num Lock light turns off when the keyboard goes to sleep (Again, might just put electrical tape over the whole lighting area and use on-screen notifcations instead.)
  • No USB ports included (Not really a con, but notable in comparison to the wired Das Keyboard).

Summary:
If you’re looking for a great, (relatively) inexpensive, and wireless alternative to the Das Keyboard Model S Professional Silent, this is it. I’m very happy with my purchase. =)

Keyboard Geekery

Ok, I’m hooked. I’ve been using the Kinesis Advantage at work for a couple days now, and both my typing speed and accuracy have improved.

As much as I love this keyboard, I can’t quite justify the price ($299), but I’ve been really wanting to get a keyboard with mechanical (clicky) switches for a long time, and I finally found a good compromise.

A huge part of the appeal of the Kinesis keyboard to me is the feel of the keyswitches, which happen to be Cherry MX Browns. I had looked in to getting the Das Keyboard S Ultimate Silent, which has the same keyswitches, but wanted to get something less expensive, and preferably wireless.

It just so happens that there is exactly *one* keyboard that meets those criteria, the X-Armor U9W, which I just picked up on Amazon. 

 

If you’re interested, here’s a link to the product page on Amazon:
http://www.amazon.com/XArmor-U9W-wireless-mechanical-keyboard/dp/B004S862FW

…and here’s what it sounds like:
http://geekhack.org/attachment.php?attachmentid=12493&d=1284500440
(same switches, different keyboard)
Yep, I’m a *huge* geek. =)

The Pirate Bay’s Press Release Concerning SOPA/PIPA

INTERNETS, 18th of January 2012.
PRESS RELEASE, FOR IMMEDIATE RELEASE.

Over a century ago Thomas Edison got the patent for a device which would “do for the eye what the phonograph does for the ear”. He called it the Kinetoscope. He was not only amongst the first to record video, he was also the first person to own the copyright to a motion picture.

Because of Edisons patents for the motion pictures it was close to financially impossible to create motion pictures in the North american east coast. The movie studios therefor relocated to California, and founded what we today call Hollywood. The reason was mostly because there was no patent. There was also no copyright to speak of, so the studios could copy old stories and make movies out of them – like Fantasia, one of Disneys biggest hits ever.

So, the whole basis of this industry, that today is screaming about losing control over immaterial rights, is that they circumvented immaterial rights. They copied (or put in their terminology: “stole”) other peoples creative works, without paying for it. They did it in order to make a huge profit. Today, they’re all successful and most of the studios are on the Fortune 500 list of the richest companies in the world. Congratulations – it’s all based on being able to re-use other peoples creative works. And today they hold the rights to what other people create. If you want to get something released, you have to abide to their rules. The ones they created after circumventing other peoples rules.

The reason they are always complainting about “pirates” today is simple. We’ve done what they did. We circumvented the rules they created and created our own. We crushed their monopoly by giving people something more efficient. We allow people to have direct communication between eachother, circumventing the profitable middle man, that in some cases take over 107% of the profits (yes, you pay to work for them).

It’s all based on the fact that we’re competition.
We’ve proven that their existence in their current form is no longer needed. We’re just better than they are.

And the funny part is that our rules are very similar to the founding ideas of the USA. We fight for freedom of speech. We see all people as equal. We believe that the public, not the elite, should rule the nation. We believe that laws should be created to serve the public, not the rich corporations.

The Pirate Bay is truly an international community. The team is spread all over the globe – but we’ve stayed out of the USA. We have Swedish roots and a swedish friend said this:

The word SOPA means “trash” in Swedish. The word PIPA means “a pipe” in Swedish. This is of course not a coincidence. They want to make the internet inte a one way pipe, with them at the top, shoving trash through the pipe down to the rest of us obedient consumers.
The public opinion on this matter is clear. Ask anyone on the street and you’ll learn that noone wants to be fed with trash. Why the US government want the american people to be fed with trash is beyond our imagination but we hope that you will stop them, before we all drown.

SOPA can’t do anything to stop TPB. Worst case we’ll change top level domain from our current .org to one of the hundreds of other names that we already also use. In countries where TPB is blocked, China and Saudi Arabia springs to mind, they block hundreds of our domain names. And did it work? Not really.
To fix the “problem of piracy” one should go to the source of the problem. The entertainment industry say they’re creating “culture” but what they really do is stuff like selling overpriced plushy dolls and making 11 year old girls become anorexic. Either from working in the factories that creates the dolls for basically no salary or by watching movies and tv shows that make them think that they’re fat.

In the great Sid Meiers computer game Civilization you can build Wonders of the world. One of the most powerful ones is Hollywood. With that you control all culture and media in the world. Rupert Murdoch was happy with MySpace and had no problems with their own piracy until it failed. Now he’s complainting that Google is the biggest source of piracy in the world – because he’s jealous. He wants to retain his mind control over people and clearly you’d get a more honest view of things on Wikipedia and Google than on Fox News.

Some facts (years, dates) are probably wrong in this press release. The reason is that we can’t access this information when Wikipedia is blacked out. Because of pressure from our failing competitors. We’re sorry for that.

THE PIRATE BAY, (K)2012

http://static.thepiratebay.org/legal/sopa.txt

http://www.reddit.com/r/politics/comments/on5uq/the_piratebay_press_release_concerning_sopa_and/

Portal 2: Final Transmission, Decoded

20111022-010533.jpg

I have to give the Portal team some epic geek credit (and some to myself for actually trying this out) – if you record the signal played on the radio when you find the “Final Transmission” achievement location, you’ll have a SSTV signal which you can decode into an image of the companion cube on the moon. So, I did. This screenshot is the decoded result.

Update: I’ve just uploaded the transmission sound clip, so you can hear what the transmission actually sounds like: Portal – Final Transmission.m4a

 

mobiletuts: Learn Objective-C (Series)

I picked up a new MacBook Pro from Amazon.com in April (2011) with the intention of learning Objective-C to write iOS and Mac software, but made little progress with any of the tutorials I found, until I found this series on mobiletuts:

http://mobile.tutsplus.com/series/learn-objective-c/

I think the thing that kept me away from understanding Objective-C until now was the strange look of the significantly different syntax used in Objective-C, as compared to languages I’m familiar with like C#, Java, JavaScript, and C/C++. Objective-C syntax is derived from Smalltalk, in which one sends a message, as opposed to the more common Simula-derived languages, where one calls a function. (More detail on this concept can be found on Wikipedia here: Objective-C: Messages).

In other words, code like this (C#) looks familiar:

public interface SimpleCar : Object
{
  // Public Accessors
  public String Make { get; set; }
  public String Model { get; set; }
  public int Vin { get; set; }
  // Not really necessary, since we already have an accessor...
  public void SetVin (int newVin); 

}

…while this (Objective-C), until recently, looked incredibly foreign and confusing:

@interface SimpleCar : NSObject {
  NSString* make;
  NSString* model;
  NSNumber* vin;
}

// set methods
- (void) setVin:&nbsp;&nbsp; (NSNumber*)newVin;
- (void) setMake:&nbsp; (NSString*)newMake;
- (void) setModel: (NSString*)setModel;

// convenience method
- (void) setMake: (NSString*)newMake
         andModel: (NSString*)newModel;@end

Unfortunately, despite sincere interest and significant motivation, most of the Objective-C guides I came across were too dense, too verbose, or not particularly interesting. So, my MacBook got a ton of use as my primary home computer (I’m an ASP.NET software engineer by day, and I use Windows exclusively at the office, but I do love me some OS X…), but Xcode gathered dust in my dock, and I went about exploring alternatives that used a more familiar syntax – like the Qt SDK (C++), MonoDevelop (C#), and NetBeans(an impressive array of different languages).

Now that the back story is out of the way, here’s why the mobiletuts Objective-C series turned that all around and actually got me to *enjoy* developing with Objective-C:

  1. It’s very simple.

    While I do have an extensive background in software engineering, I appreciate guides that break concepts down to their simplest parts and rebuild them slowly, with no assumption of the reader’s background (other than interest in the topic). For most of you who already know your way around another language and who are familiar with the Terminal, the first lesson (Day 1) will seem almost too basic, but stick with it, because you’ll find that the author, Dan Walker, really knows his stuff. His approach reminds me of a quote from commonly mis-attributed to Einstein: “If you can’t explain it simply, you don’t understand it well enough”.

  2. It starts with what you know.

    I didn’t fully realize this from reading other sources about Objective-C, but it really is a strict superset of C. The benefit of this fact, for developers familiar with Simula-derived languages (C#, C++, Java, etc.) is that you can start writing Objective-C code in a syntax you’re familiar with (C), then sprinkle in bits of Objective-C syntax slowly, while you become more familiar with its Smalltalk-derived syntax. For instance, this code is valid, and compiles successfully in Xcode – Notice the use of Objective-C syntax within a familiar C-style method. (This clip is from the Day 3 post.):

    #import <Foundation/Foundation.h>
    
    int main (int argc, const char * argv[]) {
    
      NSString *testString;
      testString = [[NSString alloc] init];
      testString = @"Here's a test string in testString!";
      NSLog(@"testString: %@", testString);
    
      return 0;
    
    }
    
  3. It’s actually interesting.

    Dan has a great conversational style to his posts that make them very accessible and compelling, while slowly introducing increasingly complex topics. In Day 1, he explains how to open the Terminal app and invoke gcc from the command line, and by Day 2, he’s provided a great synopsis of  the benefits of concepts like encapsulation, abstraction, and inheritance.

I’m nowhere near an expert on Objective-C, since I literally (yes, literally) started reading this article yesterday, but I feel confident enough in what I’ve learned from this article to start poking around in Xcode and trying to refactor some of my existing code into a working Objective-C implementation. I hope this article helps you as much as it’s helped me, and please, let me know what you think by posting in the comment section below.

Happy coding! =)

Computer Science Question of the Day

Fun question for all the CS nerdz out there:

What is the simplest and/or most efficient function you can write to determine whether a given string has balanced brackets or not?

Examples:

  • Balanced: “(This is balanced)”
  • Not Balanced: “(((This is *not*) balanced.”

Function prototype:

bool stringHasBalancedBrackets(string inputString)

The function should return true if the brackets are balanced, otherwise false.

(BTW, there is a great solution on Stack Overflow; I’m looking to see what everyone can come up with off the top of their heads.)