<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Cyrozap's Tech Projects</title><link href="https://www.cyrozap.com/" rel="alternate"></link><link href="https://www.cyrozap.com/feeds/atom.xml" rel="self"></link><id>https://www.cyrozap.com/</id><updated>2015-05-31T17:30:00-04:00</updated><entry><title>Programming a Spartan-6 FPGA via JTAG</title><link href="https://www.cyrozap.com/2015/05/31/programming-a-spartan-6-fpga-via-jtag/" rel="alternate"></link><updated>2015-05-31T17:30:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2015-05-31:2015/05/31/programming-a-spartan-6-fpga-via-jtag/</id><summary type="html">&lt;p&gt;Recently, I've been working on repurposing some FPGA-based devices. Since the
devices in question can only be programmed via their JTAG interfaces, I needed
an FPGA JTAG programmer. Unfortunately, loading FPGA bitstreams with OpenOCD
using SEGGER J-Link turned out to be less than trivial. I'm sure others will run
into this issue in the future so to avoid duplicate effort, I've written this
post detailing my experiences. &lt;/p&gt;
&lt;h2&gt;Defining the Problem&lt;/h2&gt;
&lt;p&gt;The normal flow for Xilinx FPGA configuration over JTAG is very easy:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Generate the bitstream&lt;/li&gt;
&lt;li&gt;Set up the boundary scan chain in Xilinx iMPACT&lt;/li&gt;
&lt;li&gt;Generate an &lt;a href="https://en.wikipedia.org/wiki/Serial_Vector_Format"&gt;SVF file&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Program the device using iMPACT and your Xilinx Platform Cable&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Unfortunately (or maybe fortunately) for me, I did not have a Xilinx Platform
Cable, so I could not perform Step 4. However, I did have a SEGGER J-Link JTAG
cable and I'd read that OpenOCD could use it to play the SVF files iMPACT
generates, so I thought I was good-to-go. Unfortunately again, weird things kept
going wrong between OpenOCD's SVF player and its J-Link driver so I was still
unable to program my FPGA. Seeking a potentially-easy solution, I turned to
UrJTAG.&lt;/p&gt;
&lt;p&gt;That was a mistake. While UrJTAG also has SVF playback support, its J-Link
driver had not been touched in five years so, naturally, it did not work with my
J-Link's new firmware.&lt;/p&gt;
&lt;p&gt;For some reason, I decided that it would be easier to fix UrJTAG's J-Link driver
than it would be to figure out why OpenOCD wasn't working (this was another
mistake). To help get myself started, I asked some questions in the #openocd
channel on Freenode. The people there were friendly and eager to help, but they
correctly pointed out that I would get more help if I tried porting UrJTAG's
features to OpenOCD. After wasting a day messing with UrJTAG, and after learning
that OpenOCD had all of the capabilities I thought only UrJTAG had &lt;em&gt;plus&lt;/em&gt; a TLC
RPC server, I decided to try my hand at writing a Python-based Spartan-6
programmer. This would effectively bypass steps 2-4, which would have been nice,
but I didn't have enough experience to do it properly. Putting that project
aside, I decided to fix OpenOCD's SVF player.&lt;/p&gt;
&lt;h2&gt;Fixing OpenOCD&lt;/h2&gt;
&lt;p&gt;A person in the channel going by the handle "PaulFertser" helped me debug the
issues I was having. As it turned out, the problem wasn't really in the SVF
player, but in OpenOCD's J-Link driver. Specifically, it lacked support for the
STABLECLOCKS command, which was causing OpenOCD to crash whenever it encountered
an SVF RUNTEST command.&lt;/p&gt;
&lt;p&gt;After reading the code in &lt;code&gt;ftdi.c&lt;/code&gt; and &lt;code&gt;jlink.c&lt;/code&gt;, I wrote &lt;a href="http://openocd.zylin.com/2748"&gt;a patch&lt;/a&gt; to add
the necessary functionality to the J-Link driver. However, I wasn't done yet.
After solving that problem, I ran into an issue with the way the J-Link driver
handled command buffering. Basically, the driver only buffers commands up to the
J-Link device's internal limit instead of buffering indefinitely and filling the
J-Link's buffer as-needed. This problem was easily solved with a small hack, but
that hack broke some of the SVF player's TDO-checking functionality. Thankfully,
I didn't need that functionality, so I just left it at that.&lt;/p&gt;
&lt;h2&gt;Adding Support for the Digilent Analog Discovery&lt;/h2&gt;
&lt;p&gt;Since I wasn't really sure where to go from there, I decided to work on a
related side-project involving the Digilent Analog Discovery MSO/AWG. Basically,
I wanted to be able to program its FPGA using OpenOCD so work could begin on
getting it supported in &lt;a href="http://sigrok.org/"&gt;sigrok&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This turned out to be a lot easier than I thought since the OpenOCD FTDI driver
is configured using TCL for each FTDI-based JTAG device. Fortunately, someone
else had already done the hard work of &lt;a href="https://github.com/bvanheu/urjtag-ad/commit/8bd883ee01d134f94b79cbbd00df42cd03bafd71"&gt;getting it supported in UrJTAG&lt;/a&gt;, so
I was able to take the relevant configuration parameters and use them to create
&lt;a href="http://openocd.zylin.com/2752"&gt;another patch for Openocd&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Writing a Programmer in Python&lt;/h2&gt;
&lt;p&gt;With the previous issues settled and the knowledge I gained, I was able to move
forward with my plans to cut iMPACT out of the programming process.&lt;/p&gt;
&lt;p&gt;To start, I had to read up on how Spartan-6 configuration works. Thankfully,
Xilinx has a user guide (&lt;a href="http://www.xilinx.com/support/documentation/user_guides/ug380.pdf"&gt;UG380&lt;/a&gt;) with information on all of the
configuration interfaces for Spartan-6 devices. From that guide, I was able to
write some code to interact with OpenOCD and attempt to program my FPGA.
However, due to my inexperience with JTAG, I didn't know that both the &lt;code&gt;irscan&lt;/code&gt;
and &lt;code&gt;drscan&lt;/code&gt; commands shifted data into the chip LSB-first, so when I tried to
send the configuration packets (which UG380 specified as needing to be sent
MSB-first), nothing happened. It was only after I observed how the SVF file was
sending commands that I realized that all of the configuration packets needed to
be bit-flipped left-to-right (i.e., 0x2000 -&amp;gt; 0x0004). Despite making that
change, my code still didn't work.&lt;/p&gt;
&lt;p&gt;After doing a lot of reading on the JTAG state machine, I realized why I was
still unable to program my FPGA: In each version of my code, I had been shifting
the configuration packets into the device one-by-one, separating each packet
with either a DRPAUSE state or the default RUN/TEST state. What I ended up
learning, though, was that all the configuration packets needed to be shifted in
&lt;em&gt;continuously&lt;/em&gt; by using &lt;code&gt;-endstate DRSHIFT&lt;/code&gt; between each &lt;code&gt;drscan&lt;/code&gt; command. In
hindsight, this explains the name of the bitstream (.bit) file since it
&lt;em&gt;literally&lt;/em&gt; contains a stream of bits that get sent to the FPGA over a
single wire (TDI).&lt;/p&gt;
&lt;p&gt;After some fiddling, my code started working, and after a few optimizations, I
was able to get it to program my Spartan-6 FPGAs despite the 2 KiB limit of
the J-Link's command buffer.&lt;/p&gt;
&lt;h2&gt;What I Learned&lt;/h2&gt;
&lt;h3&gt;Don't always trust datasheets&lt;/h3&gt;
&lt;p&gt;While UG380 had nearly all the information I needed, it would have been nice for
it to have some explanations as to &lt;em&gt;why&lt;/em&gt; things needed to be done the way they
were done instead of just presenting the instructions. I mention this because
presenting instructions on how to do something without explaining the
motivations behind each instruction leads to &lt;a href="https://en.wikipedia.org/wiki/Cargo_cult_programming"&gt;cargo cult programming&lt;/a&gt;, where
no one really understands &lt;em&gt;why&lt;/em&gt; certain things are done, only that trying to
modify those voodoo-magic sequences doesn't work.&lt;/p&gt;
&lt;h3&gt;Observe what the vendor tools are doing&lt;/h3&gt;
&lt;p&gt;The vendor tools always need to work, so if you think you're following the
vendor's instructions properly but not getting the expected results, try seeing
what the vendor tools are doing differently and do that instead.&lt;/p&gt;
&lt;h3&gt;IRC is your friend&lt;/h3&gt;
&lt;p&gt;Typically, the kinds of projects I'm working on are not the kinds of things the
people around me have any experience with, so the only way I can get help is to
find like-minded people on the Internet to talk to. While web forums are great,
nothing beats real-time communication, and IRC excels in that regard. If you
ever find yourself in a position where you're walking seemingly-uncharted
ground and you need help, it would be a really good idea to learn IRC if you
haven't already done so.&lt;/p&gt;
&lt;p&gt;I'd like to give a big thanks to everyone in the #openocd and ##fpga channels
for attempting to answer all of my JTAG and FPGA questions, no matter how
unusual they were. I'd also like to thank PaulFertser specifically for
encouraging me to continue with the project despite the number of roadblocks I
was encountering.&lt;/p&gt;
&lt;h2&gt;Results&lt;/h2&gt;
&lt;p&gt;I've uploaded my loader code &lt;a href="https://github.com/cyrozap/openocd-xilinx-loader"&gt;here&lt;/a&gt;. It requires Python 3 and OpenOCD to
work.&lt;/p&gt;</summary><category term="FPGA"></category><category term="J-Link"></category><category term="JTAG"></category><category term="OpenOCD"></category><category term="Spartan-6"></category></entry><entry><title>Configuring Nginx to use HSTS with an Automatic HTTPS Redirect</title><link href="https://www.cyrozap.com/2015/05/03/configuring-nginx-to-use-hsts-with-an-automatic-https-redirect/" rel="alternate"></link><updated>2015-05-03T16:46:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2015-05-03:2015/05/03/configuring-nginx-to-use-hsts-with-an-automatic-https-redirect/</id><summary type="html">&lt;p&gt;Since implementing HSTS and an HTTPS redirect properly was trickier than I'd
imagined, I decided to write my own guide on how to do it. I'll also explain
how to configure Nginx to use OSCP Stapling and IPv6 since I worked on getting
both of them working at around the same time as I got the proper HTTPS redirect
working. &lt;/p&gt;
&lt;h2&gt;Preface&lt;/h2&gt;
&lt;p&gt;Very recently, I decided to move my blog from Rackspace Cloud Files to a VPS at
&lt;a href="https://www.digitalocean.com/"&gt;DigitalOcean&lt;/a&gt;. While the pricing for Cloud Files was very agreeable, you
really did only get what you pay for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Extremely high latency (500-1500 ms)&lt;/li&gt;
&lt;li&gt;No support for TLS (SSL) on custom domains&lt;/li&gt;
&lt;li&gt;No way to have separate TTL and browser cache durations on objects&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These might have been acceptable trade-offs if I were hosting a large,
million-views-per-day website and only used Cloud Files for images, documents,
and other static content, but I'm not, and these issues really started to bug me
after a while.&lt;/p&gt;
&lt;p&gt;Since I had about $100 of unused DigitalOcean credit, I decided to see how the
blog would perform on their lowest-tier VPS running CentOS with Nginx. To my
surprise, pages loaded &lt;em&gt;much&lt;/em&gt; faster and with &lt;em&gt;significantly&lt;/em&gt; less latency than
on Cloud Files. I thought this was incredible and that the performance
more than justified DigitalOcean's relatively-high pricing ($5/mo. for 512 MB
RAM, 20 GB RAID 10 SSD, and 1 CPU core), so I decided then to stay with
them until my credit runs out in 20 months.&lt;/p&gt;
&lt;p&gt;Now that I was no longer on Cloud Files, I decided I'd finally implement HTTPS
on my blog. On top of that, though, I wanted to implement HTTP Strict Transport
Security since it's a really cool technology that helps prevent sslstrip-style
man-in-the-middle attacks. Of course, while I don't believe anyone would ever
consider my blog important enough to attack, there have been reported instances
of Internet Service Providers injecting ads into plaintext-HTTP webpages and I
want to ensure that the content my blog readers see is the content I posted on
it.&lt;/p&gt;
&lt;h2&gt;HTTPS and HSTS on Nginx&lt;/h2&gt;
&lt;p&gt;To start, I used the &lt;a href="https://mozilla.github.io/server-side-tls/ssl-config-generator/"&gt;Mozilla SSL Configuration Generator&lt;/a&gt; to create a nice
base config file for Nginx. Because I want as many people to securely view my
blog as possible, I chose to use the "Intermediate" list of ciphers. To
generate my DH paramaters, I followed the steps on &lt;a href="https://wiki.mozilla.org/Security/Server_Side_TLS#DHE_handshake_and_dhparam"&gt;this page&lt;/a&gt;. To enable
HSTS, I added &lt;code&gt;add_header Strict-Transport-Security "max-age=31536000";&lt;/code&gt; to
each HTTPS &lt;code&gt;server&lt;/code&gt; block in the config file (adding an HSTS header to plain
HTTP responses violates the HSTS specification).&lt;/p&gt;
&lt;p&gt;For my specific setup, I want people to automatically get redirected to the www
subdomain if they try to go to http(s)://cyrozap.com and for them to get
redirected to HTTPS if they try to go to http://www.cyrozap.com. Finally, an
HSTS header should be added to https://cyrozap.com so the browser knows not to
try the HTTP link in case that redirect gets intercepted by an SSL-stripper.
To do all of that, I used these simple configuration blocks:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="k"&gt;server{&lt;/span&gt;
    &lt;span class="s"&gt;listen&lt;/span&gt; &lt;span class="mi"&gt;80&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;listen&lt;/span&gt; &lt;span class="s"&gt;[::]:80&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;server_name&lt;/span&gt; &lt;span class="s"&gt;cyrozap.com&lt;/span&gt; &lt;span class="s"&gt;www.cyrozap.com&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;301&lt;/span&gt; &lt;span class="s"&gt;https://&lt;/span&gt;&lt;span class="nv"&gt;$host$request_uri&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;The block above handles the HTTP-&amp;gt;HTTPS redirect for both the main domain and
the www subdomain. Essentially, all it does is listen for any connections to
http://cyrozap.com or http://www.cyrozap.com and redirects them to
https://cyrozap.com and https://www.cyrozap.com, respectively.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="k"&gt;server{&lt;/span&gt;
    &lt;span class="s"&gt;listen&lt;/span&gt; &lt;span class="mi"&gt;443&lt;/span&gt; &lt;span class="s"&gt;ssl&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;listen&lt;/span&gt; &lt;span class="s"&gt;[::]:443&lt;/span&gt; &lt;span class="s"&gt;ssl&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;server_name&lt;/span&gt; &lt;span class="s"&gt;cyrozap.com&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;add_header&lt;/span&gt; &lt;span class="s"&gt;Strict-Transport-Security&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;max-age=31536000&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;301&lt;/span&gt; &lt;span class="s"&gt;https://www.&lt;/span&gt;&lt;span class="nv"&gt;$host$request_uri&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;This block only handles connections to https://cyrozap.com. Its purpose is to
add an HSTS header to the root domain and then immediately redirect it to the
www subdomain. If I skipped using this block, browsers that had only connected
to http://cyrozap.com in the past would always try to connect to that first,
making them vulnerable to an SSL-stripping MitM.&lt;/p&gt;
&lt;h2&gt;OCSP Stapling&lt;/h2&gt;
&lt;p&gt;OCSP Stapling turned out to be more difficult to enable HSTS. To do it in Nginx,
you need to add something that looks like this to your main server config block:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="k"&gt;ssl_stapling&lt;/span&gt;               &lt;span class="no"&gt;on&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;ssl_stapling_verify&lt;/span&gt;        &lt;span class="no"&gt;on&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;ssl_trusted_certificate&lt;/span&gt;    &lt;span class="s"&gt;/etc/nginx/startssl.stapling.crt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;resolver&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="s"&gt;.8.8.8&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="s"&gt;.8.4.4&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;resolver_timeout&lt;/span&gt; &lt;span class="s"&gt;5s&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;The tricky thing here is the &lt;code&gt;ssl_trusted_certificate&lt;/code&gt; variable. You do &lt;em&gt;not&lt;/em&gt;
set that to your TLS certificate's CA certificate. Instead, you need to
generate a certificate chain containing all the certificates leading up to the
one that signs the OCSP response. Since I use the StartCom Class 1 CA, I tried
using the certificate from &lt;a href="https://blog.kempkens.io/posts/ocsp-stapling-with-nginx/"&gt;this blog post&lt;/a&gt;, but it didn't work for me (I
kept getting the kind of errors seen &lt;a href="http://nginx.2469901.n2.nabble.com/OCSP-basic-verify-failed-td7583244.html"&gt;here&lt;/a&gt;). To fix it, I just tried
different combinations of Root CA + Intermediate CA StartCom certs until I no
longer got the OCSP verification failure messages. To make sure I don't somehow
lose this certificate, I've reproduced it below:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;-----BEGIN CERTIFICATE-----
MIIGNDCCBBygAwIBAgIBGTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEW
MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg
Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh
dGlvbiBBdXRob3JpdHkwHhcNMDcxMDI0MjA1NDE3WhcNMTcxMDI0MjA1NDE3WjCB
jDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0ZC4xKzApBgNVBAsT
IlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcxODA2BgNVBAMTL1N0
YXJ0Q29tIENsYXNzIDEgUHJpbWFyeSBJbnRlcm1lZGlhdGUgU2VydmVyIENBMIIB
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtonGrO8JUngHrJJj0PREGBiE
gFYfka7hh/oyULTTRwbw5gdfcA4Q9x3AzhA2NIVaD5Ksg8asWFI/ujjo/OenJOJA
pgh2wJJuniptTT9uYSAK21ne0n1jsz5G/vohURjXzTCm7QduO3CHtPn66+6CPAVv
kvek3AowHpNz/gfK11+AnSJYUq4G2ouHI2mw5CrY6oPSvfNx23BaKA+vWjhwRRI/
ME3NO68X5Q/LoKldSKqxYVDLNM08XMML6BDAjJvwAwNi/rJsPnIO7hxDKslIDlc5
xDEhyBDBLIf+VJVSH1I8MRKbf+fAoKVZ1eKPPvDVqOHXcDGpxLPPr21TLwb0pwID
AQABo4IBrTCCAakwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
VR0OBBYEFOtCNNCYsKuf9BtrCPfMZC7vDixFMB8GA1UdIwQYMBaAFE4L7xqkQFul
F2mHMMo0aEPQQa7yMGYGCCsGAQUFBwEBBFowWDAnBggrBgEFBQcwAYYbaHR0cDov
L29jc3Auc3RhcnRzc2wuY29tL2NhMC0GCCsGAQUFBzAChiFodHRwOi8vd3d3LnN0
YXJ0c3NsLmNvbS9zZnNjYS5jcnQwWwYDVR0fBFQwUjAnoCWgI4YhaHR0cDovL3d3
dy5zdGFydHNzbC5jb20vc2ZzY2EuY3JsMCegJaAjhiFodHRwOi8vY3JsLnN0YXJ0
c3NsLmNvbS9zZnNjYS5jcmwwgYAGA1UdIAR5MHcwdQYLKwYBBAGBtTcBAgEwZjAu
BggrBgEFBQcCARYiaHR0cDovL3d3dy5zdGFydHNzbC5jb20vcG9saWN5LnBkZjA0
BggrBgEFBQcCARYoaHR0cDovL3d3dy5zdGFydHNzbC5jb20vaW50ZXJtZWRpYXRl
LnBkZjANBgkqhkiG9w0BAQsFAAOCAgEAUiVivr7DGl0kxETnJMnlpLWn6AXQE+XS
L2TdMkbS3wY40tqEo2O/MJ54cf1WQgZilw659qpXYmxMNX2VGo8rz2HxPcBMaU2m
jRnVAyFXn2uLvTKUcBIu0Gs1qA75FBUOYxKudcreUaeWD2LlPgtdMX48mEU1Vmjt
DAHs1X7/z5j6c75c2VZ69xx05z1MKm4+32xsntq3EdcmskUBc2VZNqs6iz1+cCBT
QBdeP56f+1hFQ5HiisQ8bDVdeENoFO99kHAAtjv4pkmj4BYqBUVWJy3VXxJcOk3Q
Wyn5zwUps6EAJCAkY6u7rUiEhF4a3y7IV3llMx7V+lpkACGAKOlO2CVRohy+SDOi
VGkzF+dzn+dx8Dzk+XX8ttFMh7G/IkbOBXLUOEuIDshnupkJZZdIFznMWAWN0iOj
6qyb3+FwZAA5AZua5nrZrLeqK8ssn8L5sFQOfO9mwcgszBLr63VfH+y4WqSDyVj9
mVv3yh6zTKYoXOMjH722m0oPwmgFsNLVrRSMtGt3Vvh0oSoDCjOi594tqTwaemkt
FyGcXud7db/MkwC2MU0DC1QZX3YQpjuP/keRY/U46/oOwaqI8JnhNd6xyn4H4ufz
UAgl+Pu/aphb4RlClRuEL38a/Kq70wujW77vBXiEmjVOKnIkI2OElZ/AyIQS/jZf
AJX+NnYi6tU=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEW
MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg
Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh
dGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0NjM3WhcNMzYwOTE3MTk0NjM2WjB9
MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi
U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh
cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA
A4ICDwAwggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZk
pMyONvg45iPwbm2xPN1yo4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rf
OQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/C
Ji/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/deMotHweXMAEtcnn6RtYT
Kqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt2PZE4XNi
HzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMM
Av+Z6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w
+2OqqGwaVLRcJXrJosmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+
Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3
Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVcUjyJthkqcwEKDwOzEmDyei+B
26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT37uMdBNSSwID
AQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFul
F2mHMMo0aEPQQa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCC
ATgwLgYIKwYBBQUHAgEWImh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5w
ZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL2ludGVybWVk
aWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENvbW1lcmNpYWwgKFN0
YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0aGUg
c2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0
aWZpY2F0aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93
d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgG
CWCGSAGG+EIBDQQrFilTdGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1
dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5fPGFf59Jb2vKXfuM/gTF
wWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWmN3PH/UvS
Ta0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst
0OcNOrg+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNc
pRJvkrKTlMeIFw6Ttn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKl
CcWw0bdT82AUuoVpaiF8H3VhFyAXe2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVF
P0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA2MFrLH9ZXF2RsXAiV+uKa0hK
1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBsHvUwyKMQ5bLm
KhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE
JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ
8dCAWZvLMdibD4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnm
fyWl8kgAwKQB2j8=
-----END CERTIFICATE-----
&lt;/pre&gt;&lt;/div&gt;


&lt;h2&gt;IPv6 with TLS on Nginx&lt;/h2&gt;
&lt;p&gt;This final part was a little confusing, but I eventually figured it out. Since
DigitalOcean supports IPv6 in the datacenter my VPS is in, I decided I'd take
advantage of that feature and get my blog to work with it. After adding the
necessary AAAA records to my domain, I needed to configure Nginx to listen on
all IPv6 addresses (it doesn't by default). However, even after adding the
&lt;code&gt;listen [::]:443 ssl;&lt;/code&gt; and &lt;code&gt;listen [::]:80;&lt;/code&gt; statements to the proper server
configuration blocks, IPv6  still did not work properly. After some reading, it
seems that the default listening ports need to be modified in the main Nginx
config file as well (&lt;code&gt;/etc/nginx/nginx.conf&lt;/code&gt;), not just the included config
file for the specific site. In the only active server config block in that file,
I modified the single &lt;code&gt;listen 80;&lt;/code&gt; statement to look like this:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="k"&gt;listen&lt;/span&gt;       &lt;span class="mi"&gt;80&lt;/span&gt; &lt;span class="s"&gt;default_server&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;listen&lt;/span&gt;       &lt;span class="s"&gt;[::]:80&lt;/span&gt; &lt;span class="s"&gt;ipv6only=on&lt;/span&gt; &lt;span class="s"&gt;default_server&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;After adding those lines, everything seemed to work as it should, even with
multiple TLS and non-TLS virtual hosts.&lt;/p&gt;</summary><category term="configuration"></category><category term="HSTS"></category><category term="HTTPS"></category><category term="IPv6"></category><category term="Nginx"></category><category term="OCSP"></category><category term="server"></category><category term="SSL"></category><category term="TLS"></category></entry><entry><title>Reversing the Symantec VIP Access Provisioning Protocol</title><link href="https://www.cyrozap.com/2014/09/29/reversing-the-symantec-vip-access-provisioning-protocol/" rel="alternate"></link><updated>2014-09-29T15:01:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2014-09-29:2014/09/29/reversing-the-symantec-vip-access-provisioning-protocol/</id><summary type="html">&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Multi-factor_authentication"&gt;Two factor authentication&lt;/a&gt; (2FA) is an amazing invention. For one thing,
it can significantly increase the security of your online accounts without
significantly increasing the hassle of logging in. Additionally, the most
popular 2FA algorithms are available in both free software and proprietary
software implementations. This weekend, I reverse engineered Symantec's
proprietary 2FA token solution with the goal of creating a free software
alternative. &lt;/p&gt;
&lt;h2&gt;Motivation&lt;/h2&gt;
&lt;p&gt;Why did I do this? Well, like many people in the world, I use PayPal to send
and receive money. To protect the security of my account, I use 2FA. Normally,
when you use 2FA, the service provider presents a barcode to you that you can
scan with any one of a number of applications (&lt;a href="https://www.authy.com/users"&gt;Authy&lt;/a&gt;, &lt;a href="https://www.duosecurity.com/authentication-methods"&gt;Duo Mobile&lt;/a&gt;,
&lt;a href="https://fedorahosted.org/freeotp/"&gt;FreeOTP&lt;/a&gt;, &lt;a href="https://www.google.com/landing/2step/"&gt;Google Authenticator&lt;/a&gt;, etc.). However, PayPal uses the
&lt;a href="http://www.symantec.com/vip-authentication-service"&gt;Symantec Validation and ID Protection Service&lt;/a&gt; (formerly Verisign Identity
Protection) for their second factor. PayPal probably didn't want the overhead
of managing a database of user tokens, so they went with Symantec's managed
solution. My problem with this is that, while I can use Authy for all of my
other accounts, I need to use the VIP Access app for PayPal only. So, I guess
my reasoning here was:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Having multiple apps that do essentially the same thing seemed inefficient&lt;/li&gt;
&lt;li&gt;The VIP Access app for iOS is pretty ugly (in my opinion)&lt;/li&gt;
&lt;li&gt;I would prefer to have all of my tokens generated with one
application/hardware device&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Since it appeared as though no one else had done so, I decided to reverse
engineer Symantec's VIP client myself.&lt;/p&gt;
&lt;h2&gt;Prior Work&lt;/h2&gt;
&lt;p&gt;I originally started working on this project around this time last year. I
worked on it on and off for a few months, but I never made much progress. This
was partially due to the fact I was attempting to de-obfuscate a heavily
obfuscated Android application. I eventually got tired of that project and set
it aside for a rainy day.&lt;/p&gt;
&lt;p&gt;That "rainy day" came earlier this year when I saw &lt;a href="http://blog.valverde.me/2014/01/03/reverse-engineering-my-bank's-security-token/"&gt;this post&lt;/a&gt;, in which
someone reversed their bank's obfuscated Android 2FA application in order to
create a hardware token for it. Interestingly enough, the obfuscation used in
that application was strikingly similar to the kind I found the VIP Access
Android app using. Despite this newfound knowledge, I was still unable to
deobfuscate many of the important portions of the application. At this point,
I still thought that VIP Access used a proprietary algorithm to generate one
time passwords.&lt;/p&gt;
&lt;p&gt;Earlier this month, I found &lt;a href="https://gist.github.com/p120ph37/8213727"&gt;this script&lt;/a&gt;, in which I learned that VIP
Access didn't use a proprietary algorithm to generate the tokens. I also
learned that Symantec had released VIP Access applications for OS X and
Windows. While this token extractor would have almost fit my needs, I really
didn't want to have to rely on Symantec's proprietary client in order to
generate these token keys. Plus, this script only works on OS X, so Linux and
Windows users would be unable to extract their keys. So, eager to try out my
recently-purchased disassembler (&lt;a href="http://www.hopperapp.com/"&gt;Hopper&lt;/a&gt;), I downloaded the VIP Access
application and got to work.&lt;/p&gt;
&lt;h2&gt;The Process&lt;/h2&gt;
&lt;h3&gt;Analysis of the Client-Server Communications&lt;/h3&gt;
&lt;p&gt;I started by opening the &lt;a href="https://idprotect.vip.symantec.com/desktop/download.v"&gt;VIP Access&lt;/a&gt; application. The first window that appears
indicates that the program is "Activating VIP Access". This would make sense
if the program was calling out to some server to activate, so I fired up
&lt;a href="http://mitmproxy.org/"&gt;mitmproxy&lt;/a&gt; to watch the communications.&lt;/p&gt;
&lt;p&gt;Here's an example of a provisioning request made by the application that would
be POSTed to &lt;code&gt;https://services.vip.symantec.com/prov&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="cp"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;GetSharedSecret&lt;/span&gt; &lt;span class="na"&gt;Id=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1412030064&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;Version=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;2.0&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;xmlns=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;http://www.verisign.com/2006/08/vipservice&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;xmlns:xsi=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;TokenModel&amp;gt;&lt;/span&gt;VSST&lt;span class="nt"&gt;&amp;lt;/TokenModel&amp;gt;&amp;lt;ActivationCode&amp;gt;&amp;lt;/ActivationCode&amp;gt;&amp;lt;OtpAlgorithm&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;HMAC-SHA1-TRUNC-6DIGITS&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&amp;lt;SharedSecretDeliveryMethod&amp;gt;&lt;/span&gt;HTTPS&lt;span class="nt"&gt;&amp;lt;/SharedSecretDeliveryMethod&amp;gt;&amp;lt;DeviceId&amp;gt;&amp;lt;Manufacturer&amp;gt;&lt;/span&gt;Apple Inc.
&lt;span class="nt"&gt;&amp;lt;/Manufacturer&amp;gt;&amp;lt;SerialNo&amp;gt;&lt;/span&gt;7QJR44Y54LK3
&lt;span class="nt"&gt;&amp;lt;/SerialNo&amp;gt;&amp;lt;Model&amp;gt;&lt;/span&gt;MacBookPro10,1
&lt;span class="nt"&gt;&amp;lt;/Model&amp;gt;&amp;lt;/DeviceId&amp;gt;&amp;lt;Extension&lt;/span&gt; &lt;span class="na"&gt;extVersion=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;auth&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;xsi:type=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;vip:ProvisionInfoType&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;xmlns:vip=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;http://www.verisign.com/2006/08/vipservice&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;AppHandle&amp;gt;&lt;/span&gt;iMac010200&lt;span class="nt"&gt;&amp;lt;/AppHandle&amp;gt;&amp;lt;ClientIDType&amp;gt;&lt;/span&gt;BOARDID&lt;span class="nt"&gt;&amp;lt;/ClientIDType&amp;gt;&amp;lt;ClientID&amp;gt;&lt;/span&gt;Mac-3E36319D3EA483BD
&lt;span class="nt"&gt;&amp;lt;/ClientID&amp;gt;&amp;lt;DistChannel&amp;gt;&lt;/span&gt;Symantec&lt;span class="nt"&gt;&amp;lt;/DistChannel&amp;gt;&amp;lt;ClientInfo&amp;gt;&amp;lt;os&amp;gt;&lt;/span&gt;MacBookPro10,1
&lt;span class="nt"&gt;&amp;lt;/os&amp;gt;&amp;lt;platform&amp;gt;&lt;/span&gt;iMac&lt;span class="nt"&gt;&amp;lt;/platform&amp;gt;&amp;lt;/ClientInfo&amp;gt;&amp;lt;ClientTimestamp&amp;gt;&lt;/span&gt;1412030064&lt;span class="nt"&gt;&amp;lt;/ClientTimestamp&amp;gt;&amp;lt;Data&amp;gt;&lt;/span&gt;mxk5NtUnCwd36GEpQq6+Zmnh+rPKDePuS/XYci6/WD0=&lt;span class="nt"&gt;&amp;lt;/Data&amp;gt;&amp;lt;/Extension&amp;gt;&amp;lt;/GetSharedSecret&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Because that request is really hard to read, I've run it through an XML
beautifier:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="cp"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;GetSharedSecret&lt;/span&gt; &lt;span class="na"&gt;Id=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1412030064&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;Version=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;2.0&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;xmlns=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;http://www.verisign.com/2006/08/vipservice&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;xmlns:xsi=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;TokenModel&amp;gt;&lt;/span&gt;VSST&lt;span class="nt"&gt;&amp;lt;/TokenModel&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;ActivationCode&amp;gt;&amp;lt;/ActivationCode&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;OtpAlgorithm&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;HMAC-SHA1-TRUNC-6DIGITS&amp;quot;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;SharedSecretDeliveryMethod&amp;gt;&lt;/span&gt;HTTPS&lt;span class="nt"&gt;&amp;lt;/SharedSecretDeliveryMethod&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;DeviceId&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Manufacturer&amp;gt;&lt;/span&gt;Apple Inc.
    &lt;span class="nt"&gt;&amp;lt;/Manufacturer&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;SerialNo&amp;gt;&lt;/span&gt;7QJR44Y54LK3
    &lt;span class="nt"&gt;&amp;lt;/SerialNo&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Model&amp;gt;&lt;/span&gt;MacBookPro10,1
    &lt;span class="nt"&gt;&amp;lt;/Model&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/DeviceId&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;Extension&lt;/span&gt; &lt;span class="na"&gt;extVersion=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;auth&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;xsi:type=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;vip:ProvisionInfoType&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;xmlns:vip=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;http://www.verisign.com/2006/08/vipservice&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;AppHandle&amp;gt;&lt;/span&gt;iMac010200&lt;span class="nt"&gt;&amp;lt;/AppHandle&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;ClientIDType&amp;gt;&lt;/span&gt;BOARDID&lt;span class="nt"&gt;&amp;lt;/ClientIDType&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;ClientID&amp;gt;&lt;/span&gt;Mac-3E36319D3EA483BD
    &lt;span class="nt"&gt;&amp;lt;/ClientID&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;DistChannel&amp;gt;&lt;/span&gt;Symantec&lt;span class="nt"&gt;&amp;lt;/DistChannel&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;ClientInfo&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;os&amp;gt;&lt;/span&gt;MacBookPro10,1
    &lt;span class="nt"&gt;&amp;lt;/os&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;platform&amp;gt;&lt;/span&gt;iMac&lt;span class="nt"&gt;&amp;lt;/platform&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/ClientInfo&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;ClientTimestamp&amp;gt;&lt;/span&gt;1412030064&lt;span class="nt"&gt;&amp;lt;/ClientTimestamp&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Data&amp;gt;&lt;/span&gt;mxk5NtUnCwd36GEpQq6+Zmnh+rPKDePuS/XYci6/WD0=&lt;span class="nt"&gt;&amp;lt;/Data&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/Extension&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/GetSharedSecret&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Notice how the values for &lt;code&gt;Manufacturer&lt;/code&gt;, &lt;code&gt;SerialNo&lt;/code&gt;, &lt;code&gt;Model&lt;/code&gt;, &lt;code&gt;ClientID&lt;/code&gt;, and
&lt;code&gt;os&lt;/code&gt; all have newline characters in the strings? This will be important later.
For now, let's look at the response we get back.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="cp"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;GetSharedSecretResponse&lt;/span&gt; &lt;span class="na"&gt;RequestId=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1412030064&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;Version=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;2.0&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;xmlns=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;http://www.verisign.com/2006/08/vipservice&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;Status&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;ReasonCode&amp;gt;&lt;/span&gt;0000&lt;span class="nt"&gt;&amp;lt;/ReasonCode&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;StatusMessage&amp;gt;&lt;/span&gt;Success&lt;span class="nt"&gt;&amp;lt;/StatusMessage&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/Status&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;SharedSecretDeliveryMethod&amp;gt;&lt;/span&gt;HTTPS&lt;span class="nt"&gt;&amp;lt;/SharedSecretDeliveryMethod&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;SecretContainer&lt;/span&gt; &lt;span class="na"&gt;Version=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1.0&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;EncryptionMethod&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;PBESalt&amp;gt;&lt;/span&gt;u5lgf1Ek8WA0iiIwVkjy26j6pfk=&lt;span class="nt"&gt;&amp;lt;/PBESalt&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;PBEIterationCount&amp;gt;&lt;/span&gt;50&lt;span class="nt"&gt;&amp;lt;/PBEIterationCount&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;IV&amp;gt;&lt;/span&gt;Fsg1KafmAX80gUEDADijHw==&lt;span class="nt"&gt;&amp;lt;/IV&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/EncryptionMethod&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;Device&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;Secret&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;HOTP&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;Id=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;VSST26070843&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Issuer&amp;gt;&lt;/span&gt;OU = ID Protection Center, O = VeriSign, Inc.&lt;span class="nt"&gt;&amp;lt;/Issuer&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Usage&lt;/span&gt; &lt;span class="na"&gt;otp=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;AI&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;HMAC-SHA1-TRUNC-6DIGITS&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;TimeStep&amp;gt;&lt;/span&gt;30&lt;span class="nt"&gt;&amp;lt;/TimeStep&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;Time&amp;gt;&lt;/span&gt;0&lt;span class="nt"&gt;&amp;lt;/Time&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;ClockDrift&amp;gt;&lt;/span&gt;4&lt;span class="nt"&gt;&amp;lt;/ClockDrift&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/Usage&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;FriendlyName&amp;gt;&lt;/span&gt;OU = ID Protection Center, O = VeriSign, Inc.&lt;span class="nt"&gt;&amp;lt;/FriendlyName&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Data&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;Cipher&amp;gt;&lt;/span&gt;ILBweOCEOoMBLJARzoeUIlu0+5m6b3khZljd5dozARk=&lt;span class="nt"&gt;&amp;lt;/Cipher&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;Digest&lt;/span&gt; &lt;span class="na"&gt;algorithm=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;HMAC-SHA1&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;MoaidW7XDzeTZJqhfRQCZEieARM=&lt;span class="nt"&gt;&amp;lt;/Digest&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/Data&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Expiry&amp;gt;&lt;/span&gt;2017-09-25T23:36:22.056Z&lt;span class="nt"&gt;&amp;lt;/Expiry&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/Secret&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/Device&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/SecretContainer&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;UTCTimestamp&amp;gt;&lt;/span&gt;1412030065&lt;span class="nt"&gt;&amp;lt;/UTCTimestamp&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/GetSharedSecretResponse&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;As you can see, these requests use XML and most of the fields are pretty self
explanatory&lt;/p&gt;
&lt;p&gt;To start reversing this protocol, I used &lt;a href="http://ditchnet.org/httpclient/"&gt;HTTP Client&lt;/a&gt;&lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="#fn:1" rel="footnote"&gt;1&lt;/a&gt;&lt;/sup&gt; to send
modified POST requests and note the responses. Interestingly enough, I could
change most of the values and still get "valid" responses. I put "valid" in
quotes because, as I would later learn, the value of &lt;code&gt;Data&lt;/code&gt; would determine
whether the credential would be activated or not. I didn't get very far by
poking the provisioning server, so I moved on to a static analysis of the
program.&lt;/p&gt;
&lt;h3&gt;Searching the Binary for Clues&lt;/h3&gt;
&lt;h4&gt;Static Analysis&lt;/h4&gt;
&lt;p&gt;To start, I decided to look for some functions involved in parsing the
response from the server. The &lt;code&gt;decryptCipher&lt;/code&gt; method in
&lt;code&gt;ProvisioningController&lt;/code&gt; looked promising, so I took a look at the
disassembled code. Lo and behold, one of the lines read:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="n"&gt;eax&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;CCCrypt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mh"&gt;0x1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;STK29&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;eax&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;edi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;STK25&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ecx&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;esi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;edx&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;From the CCCryptor man page:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="n"&gt;CCCrypt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;CCOperation&lt;/span&gt; &lt;span class="n"&gt;op&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;CCAlgorithm&lt;/span&gt; &lt;span class="n"&gt;alg&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;CCOptions&lt;/span&gt; &lt;span class="n"&gt;options&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;size_t&lt;/span&gt; &lt;span class="n"&gt;keyLength&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;iv&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;dataIn&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;size_t&lt;/span&gt; &lt;span class="n"&gt;dataInLength&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;dataOut&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="kt"&gt;size_t&lt;/span&gt; &lt;span class="n"&gt;dataOutAvailable&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;size_t&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;dataOutMoved&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;From this, I could tell&lt;sup id="fnref:2"&gt;&lt;a class="footnote-ref" href="#fn:2" rel="footnote"&gt;2&lt;/a&gt;&lt;/sup&gt; that CCCrypt is performing a decrypt
(&lt;code&gt;op = 1 = kCCDecrypt&lt;/code&gt;) operation using AES-128
(&lt;code&gt;alg = 0 = kCCAlgorithmAES128&lt;/code&gt;) with no padding and no ECB (&lt;code&gt;options = 0&lt;/code&gt;)
and a 16-byte keylength (&lt;code&gt;keyLength = 0x10&lt;/code&gt;, to be expected with AES-128-CBC).
I didn't try to find out the key and IV just yet, so I moved on to the next
interesting method in &lt;code&gt;ProvisioningController&lt;/code&gt;, &lt;code&gt;prepareHmacInRequest&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="p"&gt;...&lt;/span&gt;
&lt;span class="n"&gt;CCHmac&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mh"&gt;0x2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;esi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;edi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;STK29&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;eax&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;var_44&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;...&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;And from the CCHmac man page:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="n"&gt;CCHmac&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;CCHmacAlgorithm&lt;/span&gt; &lt;span class="n"&gt;algorithm&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;size_t&lt;/span&gt; &lt;span class="n"&gt;keyLength&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;size_t&lt;/span&gt; &lt;span class="n"&gt;dataLength&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;macOut&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;This told me that the HMAC algorithm being used was SHA-256
(&lt;code&gt;algorithm = 2 = kCCHmacAlgSHA256&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;Unfortunately, static analysis could only go so far and while I did
investigate other objects and their methods, most of them were dead ends. From
there, I moved on to the dynamic analysis.&lt;/p&gt;
&lt;h4&gt;Dynamic Analysis&lt;/h4&gt;
&lt;p&gt;Debugging a program in Hopper is incredibly easy since you can set all the
breakpoints in the GUI and read out the memory at arbitrary addresses with
simple commands.&lt;sup id="fnref:3"&gt;&lt;a class="footnote-ref" href="#fn:3" rel="footnote"&gt;3&lt;/a&gt;&lt;/sup&gt; Thankfully, VIP Access doesn't have any debugging
protections, nor does it have any memory obfuscation, so finding the inputs to
each of the important functions was trivial.&lt;/p&gt;
&lt;p&gt;I started with &lt;code&gt;CCCrypt&lt;/code&gt;, the function that decrypts the OTP token secret in
the provisioning response. I set breakpoints where I saw the pointers to the
&lt;code&gt;key&lt;/code&gt;, &lt;code&gt;iv&lt;/code&gt;, and &lt;code&gt;dataIn&lt;/code&gt; variables were being set. From there, I followed
those pointers to the areas in memory where those values were stored and
dumped them.&lt;/p&gt;
&lt;p&gt;First I dumped the key:&lt;/p&gt;
&lt;p&gt;&lt;a href="/wp-uploads/2014/09/Decryption_Key.png"&gt;&lt;img alt="The memory dump window" src="https://www.cyrozap.com/wp-uploads/2014/09/Decryption_Key.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;After dumping it, I decided to try it a few more times to make sure it
wouldn't change&amp;mdash;thankfully, it didn't, so I knew it was a static key.
But if the key didn't change, what did? None other than the IV, of course! I
set up a mitmproxy capture while performing my dynamic analysis to confirm
that, yes, the IV used to decrypt &lt;code&gt;dataIn&lt;/code&gt; was the same as the one in the
provisioning response (base64-decoded). Similarly, &lt;code&gt;dataIn&lt;/code&gt; ended up being the
base64-decoded value of &lt;code&gt;Cipher&lt;/code&gt;. From there, I wrote a small Python function
to do the decryption myself. After removing the padding, I ran
&lt;code&gt;oathtool --totp&lt;/code&gt; with the hex-encoded OTP token secret to confirm that it was
actually the correct secret. And it was! This was my first major victory, but
there was a setback&amp;mdash;when I tried playing back a valid captured request,
I would get a proper response, but when I went to check the token
&lt;a href="https://idprotect.vip.symantec.com/checktokenid.v"&gt;online&lt;/a&gt;, Symantec said the credential ID was invalid. Even after updating
the time in the request, the ID was still reported as invalid, so I knew that
the value of &lt;code&gt;Data&lt;/code&gt; in the request was significant in some way.&lt;/p&gt;
&lt;p&gt;Looking back on the static analysis, the method I hadn't dynamically analyzed
yet was &lt;code&gt;prepareHmacInRequest&lt;/code&gt; in &lt;code&gt;ProvisioningController&lt;/code&gt;. Again, by
strategically setting breakpoints, I was able to determine both the HMAC &lt;code&gt;key&lt;/code&gt;
and the &lt;code&gt;data&lt;/code&gt; used to generate it.&lt;/p&gt;
&lt;p&gt;&lt;a href="/wp-uploads/2014/09/HMAC_Key.png"&gt;&lt;img alt="The memory dump window, again" src="https://www.cyrozap.com/wp-uploads/2014/09/HMAC_Key.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The 32-byte dump is the static HMAC key and the 56-byte dump is the data that
is HMAC'd (the blacked out portion is the unique part of my board ID). Oh, and
remember earlier when I noted that &lt;code&gt;ClientID&lt;/code&gt; had a newline character in it?
Well, you can see it in the data to be HMAC'd (0x0a), right at the end of the
blacked out bytes. Apparently, when the program uses &lt;code&gt;ioreg&lt;/code&gt; to retrieve the
computer information (&lt;code&gt;-[ProvisioningController getDeviceInfo:]&lt;/code&gt;), it doesn't
strip the newline characters (which a simple &lt;code&gt;tr -d '\n'&lt;/code&gt; would have fixed,
but I digress). It doesn't matter, of course, since the VIP provisioning
system will accept any values for those keys.&lt;/p&gt;
&lt;h3&gt;Writing a Free Client&lt;/h3&gt;
&lt;p&gt;With both the HMAC key and the token encryption key, I was able to write a
Python program to automatically provision a VIP Access credential and generate
both an otpauth URI and a QR code of that URI. You can find the code I wrote
in &lt;a href="https://github.com/cyrozap/python-vipaccess"&gt;its repository on GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;All in all, it was pretty straightforward to write a client for this service
since, at it's core, it's a simple HTTP POST with some hashing and decryption.
The only obstacle I encountered was that the lxml.ElementMaker API wasn't
properly generating the namespace attributes of the &lt;code&gt;Extension&lt;/code&gt; tree, but I
got around that by creating a "template" to plug the dictionary of values into.
While it isn't the "correct" way to generate XML with Python, in this instance
it was the only way. Oh, and I haven't yet figured out how the response digest
HMAC is generated, but the program works without it.&lt;/p&gt;
&lt;p&gt;In the future, I might add the capability to emulate the mobile version of VIP
Access and I'll definitely add more error-checking to the code. Right now, all
it does it check whether the OTP token actually functions by sending a
separate request to Symantec to confirm that it does work. I might even turn
it into a full Python module, complete with class definitions and all that
fancy stuff.&lt;/p&gt;
&lt;h2&gt;Extras&lt;/h2&gt;
&lt;p&gt;There was some code in there that had to do with updating a token's details
from the server (&lt;code&gt;-[ProvisioningController updateNonACRequest:]&lt;/code&gt;), but I
didn't really pay attention to it. I assume it's there to handle updating the
token when it expires, but because the strings were xor-obfuscated and since
reversing it wasn't necessary for my purposes, I left it alone. Why was that
portion of the code obfuscated? Only the developers know. Speaking of which...&lt;/p&gt;
&lt;p&gt;If you're curious, you can learn the names and usernames of some of the
developers of this application by looking at the strings in the VIP Access
binary and the &lt;code&gt;.svn&lt;/code&gt; directory in the root of the VIP Access.app folder.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Hopefully, the work I've done will benefit the Internet community by
facilitating the interoperability of computer programs and, more specifically,
by allowing anyone on any operating system to use Symantec's VIP service.&lt;/p&gt;
&lt;p&gt;Aside from the ugly iOS app, this experience has actually given me a lot of
respect for the VIP service. It seems to to be a very robust system, capable
of using any implemented OTP algorithm by simply changing some of the
attributes in the protocol. Its inclusion of expiration dates for the tokens
is also a good idea, and I'm sure token revocation is implemented on the
backend. In other words, the people who built this system really knew what
they were doing.&lt;/p&gt;
&lt;p&gt;Lessons learned:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;If you want to mess with an amateur software reverse engineer, add as many
roadblocks as possible. i.e., obfuscate your code, obfuscate objects in
memory, etc. This, of course, will not deter a professional in the field.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Don't leave testing code in the production version of any application you
write. Doing so can potentially leak sensitive information (developer names
could be used by someone to socially-engineer their way into a company,
&lt;a href="https://en.wikipedia.org/wiki/Kevin_Mitnick"&gt;Kevin Mitnick&lt;/a&gt; style).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;When you package an application, be absolutely sure to remove any hidden
version control directories. If you don't, you can potentially leak sensitive
information (developer usernames, among other things).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="footnote"&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;While &lt;code&gt;curl&lt;/code&gt; would have worked just as well in this instance, a GUI can
be faster for experimentation.&amp;#160;&lt;a class="footnote-backref" href="#fnref:1" rev="footnote" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;When you want to know what constants are used in a function's arguments,
try looking in &lt;a href="https://opensource.apple.com/source/CommonCrypto/CommonCrypto-36064/CommonCrypto/"&gt;the header files&lt;/a&gt;.&amp;#160;&lt;a class="footnote-backref" href="#fnref:2" rev="footnote" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:3"&gt;
&lt;p&gt;Yes, I know &lt;code&gt;gdb&lt;/code&gt; can do the same things, but having a GUI makes
noticing patterns so much easier. Plus, I already spent the $89 for the
program, so I might as well use it!&amp;#160;&lt;a class="footnote-backref" href="#fnref:3" rev="footnote" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</summary><category term="free software"></category><category term="open source"></category><category term="protocol"></category><category term="reversing"></category><category term="Symantec"></category><category term="VIP Access"></category></entry><entry><title>On iPads and IMEI's</title><link href="https://www.cyrozap.com/2014/09/21/on-ipads-and-imeis/" rel="alternate"></link><updated>2014-09-21T14:52:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2014-09-21:2014/09/21/on-ipads-and-imeis/</id><summary type="html">&lt;p&gt;Approximately three years ago, I posted &lt;a href="https://www.cyrozap.com/2011/11/29/how-to-get-an-ipad-3g-data-plan-without-an-ipad/"&gt;instructions&lt;/a&gt; on how to get an
iPad data plan without having to own an iPad. Just for fun, I decided to check
if that method still works and, well, it does! It has been three years,
though, and I'd like to offer some improvements to the process using knowledge
I've gained since my original post. &lt;/p&gt;
&lt;h2&gt;IMEI Check Digit&lt;/h2&gt;
&lt;p&gt;First of all, in my original post, I said that "The IMEI should be in the form
of 01222300******* or 01222400*******, where ******* is a
random 7-digit number." This is not entirely accurate&amp;mdash;the last digit of
an IMEI is actually a check digit and not just any random digit. This would
explain why some iPad IMEI's would work and some wouldn't. Thankfully, the
algorithm to generate these digits is &lt;a href="https://en.wikipedia.org/wiki/International_Mobile_Station_Equipment_Identity#Check_digit_computation"&gt;publicly available&lt;/a&gt; and there are
&lt;a href="http://www.imei.info/calc"&gt;plenty&lt;/a&gt; &lt;a href="http://bavister.org/tools/genLuhn.php"&gt;of&lt;/a&gt; &lt;a href="http://www.meidconverter.net/index.php#ImeiValidator"&gt;websites&lt;/a&gt; that can calculate this number for you. If
you would rather use some code to do this, the Python implementation on the
&lt;a href="https://en.wikipedia.org/wiki/Luhn_algorithm#Implementation_of_standard_Mod_10"&gt;Wikipedia Page&lt;/a&gt; is useful:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;luhn_checksum&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;card_number&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;digits_of&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;
    &lt;span class="n"&gt;digits&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;digits_of&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;card_number&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;odd_digits&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;digits&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="n"&gt;even_digits&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;digits&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="n"&gt;checksum&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
    &lt;span class="n"&gt;checksum&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="nb"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;odd_digits&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;even_digits&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;checksum&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="nb"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;digits_of&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;checksum&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;calculate_luhn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;partial_card_number&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;check_digit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;luhn_checksum&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;partial_card_number&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;check_digit&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;check_digit&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;check_digit&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;So, the revised instructions should really be, "The IMEI should be in the form
of 01222300******X or 01222400******X, where ****** is a
random 6-digit number and "X" is the Luhn check digit." In code, this would be:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;random&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;random_ipad_imei&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;num_digits&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;
    &lt;span class="n"&gt;ipad_prefixes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1222300&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1222400&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="n"&gt;random_digits&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randint&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;num_digits&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;partial_imei&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choice&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ipad_prefixes&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;num_digits&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;random_digits&lt;/span&gt;
    &lt;span class="n"&gt;check_digit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;calculate_luhn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;partial_imei&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;final_imei&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;partial_imei&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;check_digit&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;final_imei&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;zfill&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Random IMEI: &lt;/span&gt;&lt;span class="si"&gt;%s&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;random_ipad_imei&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;h2&gt;Plans and prices&lt;/h2&gt;
&lt;p&gt;Surprisingly, prices haven't really changed that much (although you do get LTE
now instead of just 3G). You can pay $15 for 250 MB, $30 for 3 GB, and $50 for
5 GB, but it would probably be better to just buy the $30 plan and spend the
$10/GB in overage fees if you need more data. If you need more than that and
are willing to sacrifice a little network coverage for better prices, T-Mobile
offers 1 GB of mobile data for $20, with increases in 2 GB increments for $10
each, so if you want to use a lot of data, T-Mobile is definitely the best
when it comes to price.&lt;/p&gt;</summary><category term="AT&amp;T"></category><category term="broadband"></category><category term="DataConnect"></category><category term="iPad"></category><category term="mobile"></category></entry><entry><title>Pelican is Wonderful</title><link href="https://www.cyrozap.com/2014/07/16/pelican-is-wonderful/" rel="alternate"></link><updated>2014-07-16T19:45:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2014-07-16:2014/07/16/pelican-is-wonderful/</id><summary type="html">&lt;p&gt;As I mentioned in my last post, &lt;a href="http://blog.getpelican.com/"&gt;Pelican&lt;/a&gt; is the tool I now use to generate
all the static HTML files that make up this site. Pelican allows me to write
posts using either &lt;a href="http://daringfireball.net/projects/markdown/"&gt;Markdown&lt;/a&gt; or &lt;a href="http://docutils.sourceforge.net/rst.html"&gt;reStructuredText&lt;/a&gt; and can utilize a
large variety of plugins written in Python. There are a number of blogging
platform similar to Pelican like &lt;a href="http://octopress.org/"&gt;Octopress&lt;/a&gt; and &lt;a href="http://jekyllrb.com/"&gt;Jekyll&lt;/a&gt; (upon which
Octopress is based), but Pelican was the most fully-featured platform that is
also written in a language I'm very comfortable with. &lt;/p&gt;
&lt;p&gt;One of the benefits to writing posts as raw text files is that there is a
plethora of utilities to edit text files on Linux/BSD/Darwin (and other *nix)
platforms. For instance, I can use &lt;code&gt;sed&lt;/code&gt; to do bulk replacements in posts,
&lt;code&gt;grep&lt;/code&gt; to search them, and I can use any combinantion of commands by combining
them in a &lt;code&gt;bash&lt;/code&gt; script. In fact, after importing my WordPress blog, I used
this short script to organize the files in subdirectories based on their post
date:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;find ./posts -name &lt;span class="s2"&gt;&amp;quot;*.md&amp;quot;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; xargs -n &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
python -c &lt;span class="s2"&gt;&amp;quot; \&lt;/span&gt;
&lt;span class="s2"&gt;import sys; \&lt;/span&gt;
&lt;span class="s2"&gt;path = sys.argv[1]; \&lt;/span&gt;
&lt;span class="s2"&gt;date_line = open(path,&amp;#39;r&amp;#39;).read().split(&amp;#39;\n&amp;#39;)[1]; \&lt;/span&gt;
&lt;span class="s2"&gt;(year, month, day) = date_line.split()[1].split(&amp;#39;-&amp;#39;); \&lt;/span&gt;
&lt;span class="s2"&gt;print &amp;#39;mkdir -p ./posts/%s/%s; mv %s ./posts/%s/%s/%s&amp;#39; % \&lt;/span&gt;
&lt;span class="s2"&gt;(year, month, path, year, month, path.lstrip(&amp;#39;./posts/&amp;#39;))&amp;quot;&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="p"&gt;|&lt;/span&gt; sh
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Ok, I guess it isn't &lt;em&gt;that&lt;/em&gt; short and I &lt;em&gt;probably&lt;/em&gt; could have done it all in
Python, but it worked pretty well for me as a one-off command.&lt;/p&gt;
&lt;p&gt;Pelican is very easily extensible. Right now, I'm using the
&lt;a href="https://github.com/duilio/pelican-octopress-theme"&gt;pelican-octopress-theme&lt;/a&gt; as my blog theme. It's a nice theme, but I felt it
was lacking some features. Thankfully, the template files are easy to modify
so I was able to quickly change them to meet my needs. First, I changed how
article URLs are generated on the Archives page. In the original version, the
generated links were relative to the web path of the Archives page. With the
default page "save as" and "URL" options, this is fine, but it doesn't work if
you change them. To fix this, I prefixed the article.url variable with the
&lt;code&gt;SITEURL&lt;/code&gt; variable (among a few smaller changes). I also fixed the problem
where the "Read On" button would display in the post index even if the article
wasn't summarized. To do that, I just added a check to make sure the button was
only displayed when the article.content didn't equal the article.summary.
Finally, because I use FeedBurner, I added some FeedBurner integration. All I
did was add an additional &lt;code&gt;FEED_FEEDBURNER&lt;/code&gt; option to specify the FeedBurner
URL and disable displaying the raw feed URLs on the page itself.&lt;/p&gt;
&lt;p&gt;My changes were merged into the upstream pelican-octopress-theme repository as
of commit &lt;code&gt;bd5468f&lt;/code&gt;, so you can benefit from these new features, too!&lt;/p&gt;</summary><category term="Markdown"></category><category term="Pelican"></category><category term="Python"></category><category term="scripting"></category></entry><entry><title>The Blog is Back!</title><link href="https://www.cyrozap.com/2014/07/12/the-blog-is-back/" rel="alternate"></link><updated>2014-07-12T15:35:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2014-07-12:2014/07/12/the-blog-is-back/</id><summary type="html">&lt;p&gt;After over a year of silence, I'm blogging again! A lot has happened in the
time I've been away, the most notable of which is probably the new look of the
website. As you can see, I've abandoned my self-hosted WordPress blog in favor
of a static blog hosted on &lt;a href="https://www.rackspace.com/"&gt;Rackspace&lt;/a&gt;'s &lt;a href="https://www.rackspace.com/cloud/files/"&gt;Cloud Files&lt;/a&gt;. I did this for a
number of reasons: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Static HTML files load &lt;em&gt;really fast&lt;/em&gt; over a CDN.&lt;/li&gt;
&lt;li&gt;Cheap VPS services generally don't have the best uptimes.&lt;/li&gt;
&lt;li&gt;The old WordPress blog had a 500 ms latency when loading it, probably
    because:&lt;/li&gt;
&lt;li&gt;WordPress is really easy to fill up with junky plugins that slow it down.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I also made the switch because:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dynamicly-generated sites are potentially less-secure than sites that are
    pre-generated and I don't want to have to keep a WordPress installation
    up to date.&lt;/li&gt;
&lt;li&gt;It's easy to complicate the configuration of WordPress/LAMP server to the
    point where an update breaks something and it's been so long since you've
    edited the configuration you don't even know where to start fixing it.&lt;/li&gt;
&lt;li&gt;I just don't like PHP. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;On top of all those reasons, I wanted to simplify the posting process so I
could focus more on writing content and less on formatting it and maintaining
the blog's back-end. To do this, I started using &lt;a href="http://blog.getpelican.com/"&gt;Pelican&lt;/a&gt;, a static-site
generator written in Python that many people use as a robust blogging platform
(I'll write about it more in my next post). I then use some scripts included
with Pelican to upload the content files to Cloud Files to serve it (I'll write
more about this process later, too).&lt;/p&gt;
&lt;p&gt;I'm still getting used to the new format and while I've spent many hours
trying to ensure that old posts appear as they were meant to appear, the blog
import process isn't perfect so you may still see some broken links here and
there. For the most part, though, it works and I'm pretty happy with it.&lt;/p&gt;
&lt;p&gt;Anyways, I hope you all enjoy the new look and functionality of this blog and
I'm really excited to finally be posting again!&lt;/p&gt;</summary><category term="Cloud Files"></category><category term="Pelican"></category><category term="Python"></category><category term="Rackspace"></category></entry><entry><title>Mac SE Update</title><link href="https://www.cyrozap.com/2013/03/14/mac-se-update/" rel="alternate"></link><updated>2013-03-14T17:44:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2013-03-14:2013/03/14/mac-se-update/</id><summary type="html">&lt;p&gt;I just realized that I haven't posted any updates on my Macintosh SE in
over a year! I've made a few big strides since then and I'm really
getting excited about it.&lt;/p&gt;
&lt;p&gt;Remember that RAM Issue I was having? Well, the computer managed to work
on 2.5MB, but I really wanted the maximum of 4MB so I bought 2 x 1 MB
30-pin 60ns SIMMs on ebay for $4. Now, the computer works great! Well,
not really. The HDD is toast (it's been making the "click of death"), so
there's no OS. Luckily it still has a floppy drive! Unfortunately, it
only takes 800k floppies and is completely incompatible with modern 1.4M
floppies.&lt;/p&gt;
&lt;p&gt;After I discovered that I was't going to get an OS running on the Mac
via a floppy, I started searching for alternative means. First, I looked
into SCSI to IDE adapters. Unfortunately, they are EXTREMELY expensive
(on the order of hundreds of dollars). Next, I tried finding 50-pin SCSI
drives. I then realized that, even if I was able to buy a drive like
that, I would still have no way of loading an OS onto it. Finally, I
started researching floppy disk drive emulators. After a bit of
research, I discovered that they are more plentiful than many would
think. Sadly, they only support 1.4M floppies.&lt;/p&gt;
&lt;p&gt;For a while, I thought I was out of luck. But then, I discovered the
&lt;a href="http://www.bigmessowires.com/" title="Big Mess o' Wires"&gt;blog of a computer engineer&lt;/a&gt;
who, among other things, managed to create
&lt;a href="http://www.bigmessowires.com/macintosh-floppy-emu/" title="Macintosh Floppy Emu"&gt;a floppy disk emulator for 68k-based Macintoshes&lt;/a&gt;.
I really liked the concept and the design was proven so I decided to
build a few for myself!&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2013/03/2013-03-09-01.11.14.jpg"&gt;&lt;img alt="My first Mac floppy emu!" src="https://www.cyrozap.com/wp-uploads/2013/03/2013-03-09-01.11.14-640x478.jpg" title="My first Mac floppy emu!" /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;After a few hiccups with setting the AVR's fuse bits properly, I managed
to get both it and the CPLD programmed and working! I have successfully
used it to boot disks from System 1.1 to System 6.0.8 and so far, it
works flawlessly for disk reads. Disk writing is still a bit flaky (you
need to have a class 10 SD card for writes to work), but I'm looking
into how I can improve the code for that. Here are a few photos of the
device working:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2013/03/2013-03-09-00.56.38.jpg"&gt;&lt;img alt="It's alive!" src="https://www.cyrozap.com/wp-uploads/2013/03/2013-03-09-00.56.38-640x478.jpg" title="It’s alive!" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2013/03/2013-03-09-00.56.57.jpg"&gt;&lt;img alt="System 1.1" src="https://www.cyrozap.com/wp-uploads/2013/03/2013-03-09-00.56.57-640x478.jpg" title="System 1.1" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2013/03/2013-03-09-00.58.32.jpg"&gt;&lt;img alt="Booting System 6.0.8" src="https://www.cyrozap.com/wp-uploads/2013/03/2013-03-09-00.58.32-640x478.jpg" title="Booting System 6.0.8" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2013/03/2013-03-09-01.12.37.jpg"&gt;&lt;img alt="System 6.0.8" src="https://www.cyrozap.com/wp-uploads/2013/03/2013-03-09-01.12.37-640x478.jpg" title="System 6.0.8" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2013/03/2013-03-09-01.11.32.jpg"&gt;&lt;img alt="Reading from a disk" src="https://www.cyrozap.com/wp-uploads/2013/03/2013-03-09-01.11.32-640x478.jpg" title="Reading from a disk" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To install the floppy emulator, you simply need to plug one end of a 20
pin IDC cable into the Mac and the other end into the emulator. To use
it, you need to have an SD card with the disk images you want to load on
it (sample disk images can be found in the &lt;a href="http://www.bigmessowires.com/floppyemu.zip"&gt;file bundle&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;I've made a few extras, so if you want one, feel free to &lt;a href="https://www.cyrozap.com/contact-me/" title="Contact Me"&gt;contact me&lt;/a&gt;! The price is $150 +
shipping (USPS Priority mail) for each device (2 are available, price
covers parts and labor). I accept both Bitcoin and Paypal for payment.
If you use Bitcoin, you get $10 off the purchase price because I'm not
fond of Paypal's policies. As always, no warranty is implied; I will
test all devices and make sure they're working before I ship them, but
you are buying the device "as-is". All sales are final. I'll respond to
requests for assistance as best as I can.&lt;/p&gt;
&lt;p&gt;The schematics, board layout, sample disk files, and source code for the
Macintosh Floppy Emu can be found
&lt;a href="http://www.bigmessowires.com/floppyemu.zip"&gt;here&lt;/a&gt;.&lt;/p&gt;</summary></entry><entry><title>bladeRF: a USB 3.0 Software Defined Radio</title><link href="https://www.cyrozap.com/2013/02/08/bladerf-a-usb-3-0-software-defined-radio/" rel="alternate"></link><updated>2013-02-08T21:57:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2013-02-08:2013/02/08/bladerf-a-usb-3-0-software-defined-radio/</id><summary type="html">&lt;p&gt;I just backed &lt;a href="http://www.kickstarter.com/projects/1085541682/bladerf-usb-30-software-defined-radio" title="bladeRF"&gt;this project&lt;/a&gt;!
Why? Because for $400, I get one of the most flexible and inexpensive
SDR's on the market. Not only do I get that, I also get in-depth
documentation and guides on how to use it. I've been wanting a nice SDR
for some time now, ever since I saw the OpenBTS demo using the
&lt;a href="https://www.ettus.com/product/details/USRP-PKG"&gt;Ettus Research USRP1&lt;/a&gt;.
Unfortunately, the USRP1 is, to me, too limited to justify the price.
Additionally, there is a very steep learning curve if you're a beginner
like me. I'm still interested in cell phone networks, though, and with
the pending release of the bladeRF, I will finally have a chance to play
around with the technology.&lt;/p&gt;</summary><category term="bladeRF"></category><category term="cellular"></category><category term="radio"></category><category term="SDR"></category><category term="USRP1"></category></entry><entry><title>Notice a Speed Increase?</title><link href="https://www.cyrozap.com/2013/02/01/notice-a-speed-increase/" rel="alternate"></link><updated>2013-02-01T02:46:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2013-02-01:2013/02/01/notice-a-speed-increase/</id><summary type="html">&lt;p&gt;Well, I've finally done it&amp;mdash;I've purchased a VPS and now I'm hosting
this blog on it! I'm still using CloudFlare for caching, spam-filtering,
and DDoS protection, but now I'm running the blog on a network that is
about two orders of magnitude faster than my home upload speed of 180
KB/s. It is VERY nice and the transition went much smoother than I
expected! &lt;/p&gt;
&lt;p&gt;Basically, to transfer my blog, I installed all the necessary packages
on the new server, rolled up all of the important directories from the
old server (&lt;code&gt;/etc/wordpress&lt;/code&gt;, &lt;code&gt;/usr/share/wordpress&lt;/code&gt;, &lt;code&gt;/var/www/wp-uploads&lt;/code&gt;,
&lt;code&gt;/etc/apache2&lt;/code&gt;, etc.) into a few archives, restored them onto the VPS, and
transferred the Wordpress database by exporting it as SQL queries. I ran
into a few hiccups with the time zone and some Apache misconfigurations,
but those were mitigated quickly. For an entire blog migration, 5 hours
is a pretty good time&amp;mdash;and with minimal downtime, too!&lt;/p&gt;
&lt;p&gt;If you were wondering, I got my VPS from
&lt;a href="https://www.budgetvm.com/account/aff.php?aff=763"&gt;BudgetVM&lt;/a&gt;. For $7
per month, I got a Xen-based VPS with 768 MB of RAM, 1.5 GB of swap
space, 40 GB of Raid 10 storage, and 2500 GB of bandwidth. All-in-all, I
think it's a great deal, seeing as I get to have full control over my
virtual server for the same price as shared hosting at a site like
Bluehost. I did a download speed test on the server and managed to get
up to 85 MB/s (yes, megaBYTES). The upload speed from the server maxed
out my download connection so I really can't say how fast the upload is
other than it's really fast.&lt;/p&gt;
&lt;p&gt;I'm actually so impressed with the quality of the service that I'm
considering getting a second Xen VPS with more RAM for my Minecraft
server. Unfortunately, it would cost me $20/month and I really can't
justify the cost right now for what is just a game. I also don't want to
charge my friends to use my server because it will take some or all of
the fun out of the game. More importantly, it would mean that I wouldn't
be able to mess with them in-game. ;)&lt;/p&gt;
&lt;p&gt;P.S.: If anyone has or knows of better, cool-looking background and/or
header images that I could use for the site under the Creative Commons
license, that would be awesome. The theme has been feeling a bit rough
on the eyes for a while now.&lt;/p&gt;</summary><category term="LAMP"></category><category term="migration"></category><category term="Minecraft"></category><category term="VPS"></category><category term="WordPress"></category></entry><entry><title>CloudFlare is Awesome!</title><link href="https://www.cyrozap.com/2013/01/26/cloudflare-is-awesome/" rel="alternate"></link><updated>2013-01-26T21:44:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2013-01-26:2013/01/26/cloudflare-is-awesome/</id><summary type="html">&lt;p&gt;I've been trying out CloudFlare to try to speed up the site a bit and so
far, it's working great! It's also handy because I can use it to bypass
1and1's 5 subdomain limit because I'm using CloudFlare's servers.&lt;/p&gt;
&lt;p&gt;Unfortunately, this means I've had to reconfigure a bunch of stuff. I've
already noticed that some things are breaking (https stuff) and I'm
trying my best to fix them, but sometimes it's difficult to pinpoint the
source of the problem.&lt;/p&gt;</summary><category term="1and1"></category><category term="CloudFlare"></category><category term="https"></category><category term="SSL"></category><category term="subdomains"></category><category term="upgrade"></category></entry><entry><title>My Current 3D-Printing Status</title><link href="https://www.cyrozap.com/2012/11/27/my-current-3d-printing-status/" rel="alternate"></link><updated>2012-11-27T17:52:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2012-11-27:2012/11/27/my-current-3d-printing-status/</id><summary type="html">&lt;p&gt;&lt;strong&gt;Hardware upgrade:&lt;/strong&gt; After wiring the 8-pin CPU power connector to go
to the relay board and connecting my Cupcake's new PSU, the machine no
longer skips steps in the Z-axis nor in the extruder and the heated
build platform and extruder nozzle heat up in a more timely manner. My
reasoning for wiring an 8-pin CPU power connector to the relay board was
to ensure that the heater elements would have enough power and not take
it from the steppers. I'm pretty sure this works because the CPU power
is on a separate rail from the normal connectors, but it may also just
be because everything isn't running off the same strand of connectors
any more. It really is a nice power supply and I can really appreciate
the engineering and industrial design work that went into it. Anyways,
to finish up, I just need to cut a large hole or a series of holes in
the bottom of the Cupcake's wooden "PSU shelf" so when I put it in, the
power supply will have a way to draw in air for cooling. Then, I'll be
able to close up my Cupcake for a while.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Software upgrade:&lt;/strong&gt; I'm still on ReplicatorG 34 because it's what I'm
familiar with and is the latest supported by my Gen3 electronics, but
that doesn't mean I can't improve the slicing speed! Just today I
managed to install PyPy, a really fast python interpreter that has been
shown to make slicing go 4-5 times faster. For instance, Brainy Walt now
slices in only 6 minutes on my Core i7 MacBook Pro where before it would
take around 30-45 minutes. This is really great because now I can try
out new settings without having to wait forever for Skeinforge to
re-slice things.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Here's a tip for those of you trying to install PyPy and tkinter-pypy
on OS X Mountain Lion (and possibly Lion):&lt;/strong&gt; If you get any ld errors
about missing tk8.4 or tcl8.4, just find the "setup.py" file in the
tkinter directory you're installing from and change the versions to 8.5
for both of them. Also, if you get any errors similar to that regarding
X11, first make sure you have XQuartz installed, then run
&lt;code&gt;ln -s /opt/X11/include/X11 /usr/local/include/X11&lt;/code&gt; in a terminal to
symlink the X11 includes so the setup.py script (or whatever else) can
find them.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RepRap status:&lt;/strong&gt; Now that I've pretty much fully repaired my Cupcake,
I can work on my Prusa Mendel without any guilt. All I need to do with
it is figure out some temporary wiring scheme to test out the
electronics and steppers, then I'll fit the heated build to the Y-axis
plate and start trying out Slic3r.&lt;/p&gt;</summary><category term="MakerBot"></category><category term="RepRap"></category></entry><entry><title>Python is Fun</title><link href="https://www.cyrozap.com/2012/10/18/python-is-fun/" rel="alternate"></link><updated>2012-10-18T17:33:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2012-10-18:2012/10/18/python-is-fun/</id><summary type="html">&lt;p&gt;Usually, I don't do much programming because it's always taken a lot of
work to do even the simplest of things. However, since I've discovered
Python, I've been having a blast. Just yesterday, I wrote a command line
tool to upload files to &lt;a href="https://box.com/"&gt;Box.com&lt;/a&gt;. While I could have
used somebody else's libraries to do the heavy lifting, I wanted to roll
my own code. I thought it would be both more fun and more educational
that way, and it was. My initial purpose for writing this program was
that I could use it in a cron job to perform server backups. Now,
because server backup was my primary goal and I can encrypt the backup
archives before uploading, security wasn't much of an issue. Because I
wasn't very concerned with the security of the transfers, I didn't
bother to do things like check for SSL/TLS certificate validity.
Additionally, I put my API key right in the code, so I can't just
distribute it and let people see that. If you want it, I've posted it
below (with my API key removed, of course).&lt;/p&gt;
&lt;p&gt;The license is Public Domain because it's so simple and I only spent
around 6 hours writing it. Currently, it can upload multiple files in
the same command, but it's not exactly elegant because it makes a new
connection for each file. The "proper" way to do it is to use the
multiple-file-upload part of the API, but that would have taken a
significant rewrite of the upload function and, well, "If it ain't
broke, don't fix it!" Oh, and it freaks out if you tell it to upload a
folder, so don't do that.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="c"&gt;#!/usr/bin/env python&lt;/span&gt;
&lt;span class="c"&gt;# Box Upload&lt;/span&gt;
&lt;span class="c"&gt;# This code accepts arguments to upload files.&lt;/span&gt;

&lt;span class="c"&gt;# WARNING!&lt;/span&gt;
&lt;span class="c"&gt;# This code does not check SSL certificate validity!&lt;/span&gt;
&lt;span class="c"&gt;# TODO: Implement certificate validation.&lt;/span&gt;

&lt;span class="c"&gt;# Get the API key by making a Box application here: http://box.com/developers/services/edit/&lt;/span&gt;
&lt;span class="n"&gt;api_key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;replace-with-api-key&amp;#39;&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;sys&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;urllib&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;urllib2&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;MultipartPostHandler&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nn"&gt;cookielib&lt;/span&gt; &lt;span class="c"&gt;# MultipartPostHandler can be found at: http://pypi.python.org/pypi/MultipartPostHandler2&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;xml.dom&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;minidom&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;authenticate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;xml_ticket&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;minidom&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parseString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;urllib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;urlopen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;https://www.box.com/api/1.0/rest?action=get_ticket&amp;amp;api_key=&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="c"&gt;# This grabs the XML authentication ticket that we&amp;#39;ll be using to generate the auth_token.&lt;/span&gt;
    &lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;xml_ticket&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;firstChild&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;childNodes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;firstChild&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="c"&gt;# This gets the ticket status to make sure we actually retrieved a valid ticket.&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;get_ticket_ok&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="c"&gt;# Did we get a valid ticket? If so, continue. If not, the user needs to check their API key.&lt;/span&gt;
        &lt;span class="n"&gt;ticket&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;xml_ticket&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;firstChild&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;childNodes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;firstChild&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;Please go to https://www.box.com/api/1.0/auth/&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;ticket&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="s"&gt;&amp;#39; and follow the instructions there. Then, press ENTER or RETURN to continue.&amp;#39;&lt;/span&gt;
        &lt;span class="nb"&gt;raw_input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="n"&gt;xml_auth_token&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;minidom&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parseString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;urllib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;urlopen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;https://www.box.net/api/1.0/rest?action=get_auth_token&amp;amp;api_key=&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;&amp;amp;ticket=&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;ticket&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="c"&gt;# This is the auth token in XML format.&lt;/span&gt;
        &lt;span class="n"&gt;auth_status&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;xml_auth_token&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;firstChild&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;childNodes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;firstChild&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="c"&gt;# Reads the authentication status into &amp;quot;auth_status&amp;quot;&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;auth_status&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;get_auth_token_ok&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;auth_token&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;xml_auth_token&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;firstChild&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;childNodes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;firstChild&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;
            &lt;span class="n"&gt;token_path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;expanduser&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;~/.box_auth_token&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;auth_token_file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;token_path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;w&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;auth_token_file&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;auth_token&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;auth_token_file&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;close&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
            &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;The authentication token has been saved in the file &amp;quot;&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;token_path&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;&amp;quot;. If you remove this file, you will need to reauthenticate.&amp;#39;&lt;/span&gt;
            &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;&amp;#39;&lt;/span&gt;
            &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;Please run &amp;quot;boxupload&amp;quot; again to initiate your upload.&amp;#39;&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt;
        &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;auth_status&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;not_logged_in&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;I&amp;#39;m sorry, but you haven&amp;#39;t authorized me to connect to your account. Please run &lt;/span&gt;&lt;span class="se"&gt;\&amp;quot;&lt;/span&gt;&lt;span class="s"&gt;boxupload&lt;/span&gt;&lt;span class="se"&gt;\&amp;quot;&lt;/span&gt;&lt;span class="s"&gt; again to restart the authentication process.&amp;quot;&lt;/span&gt;
        &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;auth_status&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;get_auth_token_error&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;I&amp;#39;m sorry, but there was an error in retrieving your authentication token. Please run &lt;/span&gt;&lt;span class="se"&gt;\&amp;quot;&lt;/span&gt;&lt;span class="s"&gt;boxupload&lt;/span&gt;&lt;span class="se"&gt;\&amp;quot;&lt;/span&gt;&lt;span class="s"&gt; again to restart the authentication process.&amp;quot;&lt;/span&gt;
        &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Error: &amp;quot;&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;auth_status&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;. Try reauthenticating.&amp;quot;&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;Error retrieving ticket! Check your API key.&amp;#39;&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_account_info&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;auth_token&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;xml_account_info&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;minidom&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parseString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;urllib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;urlopen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;https://www.box.net/api/1.0/rest?action=get_account_info&amp;amp;api_key=&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;&amp;amp;auth_token=&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;auth_token&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
    &lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;xml_account_info&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;firstChild&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;childNodes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;firstChild&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;get_account_info_ok&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;login&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;xml_account_info&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;firstChild&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;childNodes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;childNodes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;firstChild&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;email&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;xml_account_info&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;firstChild&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;childNodes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;childNodes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;firstChild&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;access_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;xml_account_info&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;firstChild&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;childNodes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;childNodes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;firstChild&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;user_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;xml_account_info&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;firstChild&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;childNodes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;childNodes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;firstChild&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;space_amount&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;xml_account_info&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;firstChild&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;childNodes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;childNodes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;firstChild&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c"&gt;# Total capacity of the account in bytes&lt;/span&gt;
        &lt;span class="n"&gt;space_used&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;xml_account_info&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;firstChild&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;childNodes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;childNodes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;firstChild&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c"&gt;# Data usage of the account in bytes&lt;/span&gt;
        &lt;span class="n"&gt;max_upload_size&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;xml_account_info&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;firstChild&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;childNodes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;childNodes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;firstChild&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c"&gt;# Maximum file upload size in bytes&lt;/span&gt;
        &lt;span class="n"&gt;account_info&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;login&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;email&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;access_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;user_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;space_amount&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;space_used&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;max_upload_size&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="c"&gt;# Turn the data into a list for easy access&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;account_info&lt;/span&gt;
    &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;not_logged_in&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;I&amp;#39;m sorry, your authentication token is invalid. Try removing your &lt;/span&gt;&lt;span class="se"&gt;\&amp;quot;&lt;/span&gt;&lt;span class="s"&gt;auth_token&lt;/span&gt;&lt;span class="se"&gt;\&amp;quot;&lt;/span&gt;&lt;span class="s"&gt; file and reauthenticating.&amp;quot;&lt;/span&gt;
    &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;Wrong input&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;I&amp;#39;m sorry, the API key you are using is mistyped.&amp;quot;&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;upload&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;file&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;auth_token&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exists&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;file&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;ERROR: File &lt;/span&gt;&lt;span class="se"&gt;\&amp;quot;&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="nb"&gt;file&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;&lt;/span&gt;&lt;span class="se"&gt;\&amp;quot;&lt;/span&gt;&lt;span class="s"&gt; was not found!&amp;#39;&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt;
    &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;https://upload.box.net/api/1.0/upload/&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;auth_token&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;/0&amp;#39;&lt;/span&gt;
    &lt;span class="n"&gt;cookies&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cookielib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CookieJar&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;opener&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;urllib2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;build_opener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;urllib2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;HTTPCookieProcessor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cookies&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;MultipartPostHandler&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;MultipartPostHandler&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;params&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;file&amp;quot;&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;file&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;rb&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="n"&gt;xml_response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;minidom&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parseString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;opener&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
    &lt;span class="n"&gt;upload_status&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;xml_response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;firstChild&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;childNodes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;firstChild&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;upload_status&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;upload_ok&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Upload successful!&amp;quot;&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Upload failure!&amp;quot;&lt;/span&gt;

&lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="c"&gt;# Check for and read auth_token file&lt;/span&gt;
    &lt;span class="n"&gt;token_path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;expanduser&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;~/.box_auth_token&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;auth_token_file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;token_path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;r&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;auth_token&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;auth_token_file&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="k"&gt;pass&lt;/span&gt;
&lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="ne"&gt;IOError&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;authenticate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c"&gt;# If there&amp;#39;s no auth_token, initiate authentication.&lt;/span&gt;
    &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;usage: &amp;quot;&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="s"&gt;&amp;quot; file_1 [file_2] [file_3] ... [file_n]&amp;quot;&lt;/span&gt;
    &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c"&gt;# account_info = get_account_info(api_key,auth_token)&lt;/span&gt;

&lt;span class="sd"&gt;&amp;#39;&amp;#39;&amp;#39; # Uncomment for debugging.&lt;/span&gt;
&lt;span class="sd"&gt;print &amp;#39;Auth token: &amp;#39; + auth_token&lt;/span&gt;
&lt;span class="sd"&gt;print &amp;#39;Max upload size: &amp;#39; + str((account_info[6])/1024.0/1024) + &amp;#39; MB&amp;#39;&lt;/span&gt;
&lt;span class="sd"&gt;print &amp;#39;Total capacity: &amp;#39; + str((account_info[4])/1024.0/1024) + &amp;#39; MB | Space used: &amp;#39; + str((account_info[5])/1024.0/1024) + &amp;#39; MB | Space remaining: &amp;#39; + str((account_info[4]-account_info[5])/1024.0/1024) + &amp;#39; MB | Percent free: &amp;#39; + str(100.0*(account_info[4]-account_info[5])/account_info[4]) + &amp;#39;%&amp;#39;&lt;/span&gt;
&lt;span class="sd"&gt;&amp;#39;&amp;#39;&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;arguments&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;argv&lt;/span&gt;
&lt;span class="n"&gt;arguments&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pop&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;argv&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;arguments&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;upload&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;auth_token&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;</summary></entry><entry><title>Upgrading the Kyocera KR2 With the CradlePoint MBR1000 Firmware</title><link href="https://www.cyrozap.com/2012/10/15/upgrading-the-kyocera-kr2-with-the-cradlepoint-mbr1000-firmware/" rel="alternate"></link><updated>2012-10-15T19:38:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2012-10-15:2012/10/15/upgrading-the-kyocera-kr2-with-the-cradlepoint-mbr1000-firmware/</id><summary type="html">&lt;p&gt;This is the first post in my quest to get my Kyocera KR2 running some
more modern firmware. For those of you who don't know, The CradlePoint
MBR1000 3G/4G wireless router is essentially a rebranded Kyocera KR2
with different firmware and no PCMCIA slot. Internally, the hardware is
exactly the same (except for the PCMCIA card slot). The MBR1000's
firmware is more up-to-date than the KR2 firmware with support for more
3G and 4G cellular cards, so I wanted to see if I could upgrade the
firmware. If I do eventually get this to work, I'll probably lose the
PCMCIA card slot functionality, but it will be worth it.&lt;/p&gt;
&lt;p&gt;Here's what I have so far: &lt;/p&gt;
&lt;p&gt;The MBR1000 has &lt;a href="http://www.cradlepoint.com/firmware/MBR1000"&gt;two firmware files&lt;/a&gt;, both with the .bin
extension. The second firmware file contains the modem drivers and is
not relevant. The first firmware file, however, is much more
interesting. Here's the output after I ran &lt;code&gt;binwalk&lt;/code&gt; on
the &lt;code&gt;u_mbr_2012_04_16.bin&lt;/code&gt; file:  &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;DECIMAL     HEX         DESCRIPTION
-------------------------------------------------------------------------------------------------------
0           0x0         Ubicom firmware header, checksum: 0x1C2EDFD2, image size: 1703936
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;It turns out that you can actually extract files from this archive (it's
called an ARJ; I've never heard of that kind of archive before). So,
using "The Archive Browser" on my Mac (it's a very good utility, by the
way), I extracted a file called
&lt;code&gt;nightlies/mbrcore_2_0_0_Release_2012_04_16/build/bin/img.bin&lt;/code&gt; from it.
This is what it's called when I extract it using The Archive Browser.
When I use 7-Zip to extract it, instead of getting that directory
structure in the file name, the directory structure is actually visible
inside 7-Zip and you can browse through it. There aren't any additional
files, though, so either way you get an image file out of it. Here's the
&lt;code&gt;binwalk&lt;/code&gt; output for that file:  &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;DECIMAL     HEX         DESCRIPTION
-------------------------------------------------------------------------------------------------------
97386       0x17C6A     JFFS2 filesystem (old) data big endian, JFFS node length: 53663
1552871     0x17B1E7    LZMA compressed data, properties: 0x84, dictionary size: 1393557504 bytes, uncompressed size: 606931776 bytes
1555019     0x17BA4B    LZMA compressed data, properties: 0xB8, dictionary size: 756023296 bytes, uncompressed size: 417925696 bytes
1557687     0x17C4B7    LZMA compressed data, properties: 0xE0, dictionary size: 403701760 bytes, uncompressed size: 680856384 bytes
1558159     0x17C68F    LZMA compressed data, properties: 0x84, dictionary size: 655360000 bytes, uncompressed size: 748555072 bytes
1990922     0x1E610A    PNG image, 16 x 16, 8-bit/color RGBA, non-interlaced
2019004     0x1ECEBC    TIFF image data, big-endian
2038803     0x1F1C13    GIF image data 8289 x 256
2044879     0x1F33CF    GIF image data, version 89a, 740 x 30
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Wow! I wish I had this program a few years ago... Anyways, this is all
very interesting stuff. The PNG (if you haven't already guessed from the
size) is the favicon for the web interface; I have no idea what the TIFF
is; after a little poking around, I found that the "8289 x 256" GIF is
simply a spinning "loading" disk from &lt;a href="http://ajaxload.info/"&gt;here&lt;/a&gt;; and
that last GIF is just some sort of simple footer image. All in all,
nothing too special here. On to the Kyocera firmware!&lt;/p&gt;
&lt;p&gt;The KR2 only uses &lt;a href="http://www.kyocera-wireless.com/kr2-router/compatibility.htm"&gt;one firmware image&lt;/a&gt;,
the latest is called &lt;code&gt;ZE1004.bin&lt;/code&gt;. Here's the &lt;code&gt;binwalk&lt;/code&gt; output for it:  &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;DECIMAL     HEX         DESCRIPTION
-------------------------------------------------------------------------------------------------------
0           0x0         Ubicom firmware header, checksum: 0x6953B032, image size: 1507328
978291      0xEED73     TIFF image data, big-endian
1362951     0x14CC07    GIF image data, version 89a, 4128 x 256
1369624     0x14E618    GIF image data, version 89a, 16 x 16
1382219     0x15174B    TIFF image data, big-endian
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Unfortunately, I wasn't able to extract anything from &lt;code&gt;ZE1004.bin&lt;/code&gt;. Oh,
well.&lt;/p&gt;
&lt;p&gt;Noting that &lt;code&gt;ZE1004.bin&lt;/code&gt; and &lt;code&gt;u_mbr_2012_04_16.bin&lt;/code&gt; both had Ubicom
firmware headers, I decided to compare them using "Hex Fiend." From that
hex comparison, I found that that the two files are remarkably similar.
First of all, they are cllose to each other in filesize (1.7 and 1.5
MB). Second, for the first 1.5 kB, there are only 37 differences with
many of them being simple byte replacements. After that, the files
become very different for a little over a megabyte. After that
difference, though, there's a bunch of "FF" bytes and these continue
until the end of the file where there is a 4 byte value that varies by
one byte between the two files and is certainly not a checksum. In the
MBR1000 file, you could remove around 200 kB worth of "FF" after the
main code block and make it the same size as the KR2 file. After looking
through the two files, it seems as though the KR2 file has much more
code than the MBR1000 file, but this can be explained by the fact that
the KR2 firmware has its modem drivers built-in.&lt;/p&gt;
&lt;p&gt;At this point, I believe that if I can change the MBR1000 firmware to
look like the KR2 firmware a little, I'll be able to trick my Kyocera
KR2 into upgrading from the MBR1000 firmware file.&lt;/p&gt;
&lt;p&gt;Things are beginning to look good!&lt;/p&gt;</summary><category term="CradlePoint"></category><category term="firmware"></category><category term="Kyocera"></category></entry><entry><title>Power Supply Perils</title><link href="https://www.cyrozap.com/2012/09/23/power-supply-perils/" rel="alternate"></link><updated>2012-09-23T14:51:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2012-09-23:2012/09/23/power-supply-perils/</id><summary type="html">&lt;p&gt;After 3 years of faithfully supplying power to my MakerBot Cupcake, the
power supply has finally died. Every time I switched it on, it would
turn right off. That's not bad for 3 years of use, especially
considering that I probably started using too much power when I switched
to a stepper extruder with power resistor heating with the MK6 upgrade.
I've already found an amazing new power supply for it, but it has an air
intake on one of its larger sides, so I'll have to cut a hole (or drill
a bunch of tiny holes) in the MakerBot's bottom panel. This is in
addition to the work I'll have to do on the back panel to get the power
switch to fit. &lt;/p&gt;
&lt;p&gt;The funny thing is, while I was thinking about power supplies, I decided
to finally wire up my RepRap's $40 PSU that I got many months ago. Upon
plugging it into the wall, I decided to feel how warm the case got with
no load (as an initial precaution). &lt;del&gt;What I got was something much more
interesting. Instead of feeling heat, I felt a light tingle. Even more
interesting was the fact that the tingling seemed to make my fingers
move ever-so-slightly at a familiar 60 Hz. After pulling my hand away
and mulling over the implications of what just happened, I decided to
touch the PSU casing again. I guess that makes me a
&lt;a href="http://xkcd.com/242/" title="Always-relevant XKCD"&gt;scientist&lt;/a&gt;. After my
little science experiment, I cut power to the PSU to prevent further
mishaps. I guess I'll be modding an ATX power supply and using that for
now...&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update: &lt;/strong&gt;Apparently I only imagined the whole "tingling" thing (it
may also have been the result of a pinched nerve). I just tested the
power supply again and I felt no tingling and the output voltage range
seems fine. I highly recommend &lt;a href="http://www.lulzbot.com/"&gt;Lulzbot&lt;/a&gt; as a
source of RepRap power supplies because they have top-notch customer
service.&lt;/p&gt;</summary><category term="MakerBot"></category><category term="power"></category><category term="RepRap"></category></entry><entry><title>MakerBot is Growing Up</title><link href="https://www.cyrozap.com/2012/09/19/makerbot-is-growing-up/" rel="alternate"></link><updated>2012-09-19T19:55:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2012-09-19:2012/09/19/makerbot-is-growing-up/</id><summary type="html">&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt; This is just, like, my opinion, man. Also, I won't be
discussing whether MakerBot has done anything illegal or not; I'll only
be explaining what I think is going on at the company.&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;Introduction:&lt;/h3&gt;
&lt;p&gt;Recently, the MakerBot Replicator 2 was announced as a closed-source
device. This didn't really surprise me. In fact, I'm more surprised they
didn't do this with the original Replicator. Yes, they're a company
we've all come to know and love, but I've felt that for a while now that
they've been becoming less and less relevant to the community of 3D
printing tinkerers.&lt;/p&gt;
&lt;h3&gt;They Want to Change the World:&lt;/h3&gt;
&lt;p&gt;I feel that if MakerBot can make a very good 3D printer that requires
almost no tuning or configuration for under $5000, they should go right
ahead and do it&amp;mdash;open source or not. I started 3D printing on a
MakerBot, but that was with the Cupcake CNC, a completely experimental
device. The end goal for me really wasn't to make little plastic
objects; my goal was to build a really cool machine and to learn from
the experience. I did learn a lot from the experience, but I don't think
MakerBot is targeting people like me any more. I think they want to make
a 3D printer that &lt;em&gt;anyone&lt;/em&gt; can use, regardless of their tinkering
ability. Is this a good thing? I think so! Why? Because it gets the
technology into the hands of more people!&lt;/p&gt;
&lt;h3&gt;Business Reasons:&lt;/h3&gt;
&lt;p&gt;One of the biggest issues with the DIY 3D printer market now is that it
is &lt;em&gt;extremely&lt;/em&gt; price-sensitive. This is because there are many more
choices for 3D printer kits available now than there were back when I
was first starting out. I don't think it would even be possible for
MakerBot to make a better product like they've done while still being
able to compete because people looking for kits are looking to save
money and/or tinker. Essentially, they've switched from making kits for
tinkerers to making finished products for schools, small businesses, and
individuals whose time is more valuable than money because the tinkerers
no longer want MakerBot's products.&lt;/p&gt;
&lt;h3&gt;Open or Closed?:&lt;/h3&gt;
&lt;p&gt;Even though MakerBot has gone closed-source, I think it's for the best.
Because they've made this amazing technology easier to use, they've been
able to get it into the hands of more and more creative people. Making
anything open source is &lt;em&gt;never&lt;/em&gt; as simple as just "posting the files on
the web somewhere." By not keeping it open source, MakerBot is able to
focus more of its energy to improving the product because they no longer
have to worry about documenting all their designs or supporting
tinkerers. MakerBot, quite simply, no longer has any incentive to remain
open source. Yes, they're pretty much becoming Apple, but I don't think
that's a bad thing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;tl;dr:&lt;/strong&gt; MakerBot would not be able to survive if it didn't change its
target market and lose its open source nature in the process.&lt;/p&gt;
&lt;hr /&gt;
&lt;h4&gt;Detailed Economics Stuff:&lt;/h4&gt;
&lt;p&gt;The price elasticity of demand for 3D printer kits is a lot greater than
1 because there are so many equivalent substitutes. The opportunity cost
for small businesses and schools to build and maintain their own 3D
printers is a lot more than the price of a MakerBot Replicator 2 +
support fees. MakerBot saw that there was a demand for an inexpensive,
"zero-configuration" 3D printer for schools and SMBs and, seeing that
the market they were currently competing in no longer desired enough of
their products, they decided to switch markets to one that would pay
more money for better quality.&lt;/p&gt;</summary><category term="business"></category><category term="economics"></category><category term="MakerBot"></category><category term="rapid prototyping"></category><category term="Replicator"></category></entry><entry><title>Totally not a "tech project" post.</title><link href="https://www.cyrozap.com/2012/06/18/totally-not-a-tech-project-post/" rel="alternate"></link><updated>2012-06-18T23:18:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2012-06-18:2012/06/18/totally-not-a-tech-project-post/</id><summary type="html">&lt;p&gt;For this blog post, I'm going to analyze Apple's success because I'm
&lt;em&gt;totally&lt;/em&gt; qualified to do that. Also, if you're an Apple hater, you
might not like reading this.&lt;/p&gt;
&lt;p&gt;I noticed something interesting I regarding the differences between
Apple advertisements and advertisements from other smartphone and tablet
manufacturers. Let's see if you can spot the differences, too:
&lt;/p&gt;
&lt;p&gt;Apple iPhone ad: &lt;a href="http://www.youtube.com/watch?v=0t-lsULa8ZM"&gt;http://www.youtube.com/watch?v=0t-lsULa8ZM&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Apple iPad ad: &lt;a href="http://www.youtube.com/watch?v=RksyMaJiD8Y"&gt;http://www.youtube.com/watch?v=RksyMaJiD8Y&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Vs.&lt;/p&gt;
&lt;p&gt;Motorola Droid Razr ad: &lt;a href="http://www.youtube.com/watch?v=yj9yisLa4ao"&gt;http://www.youtube.com/watch?v=yj9yisLa4ao&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Motorola Droid Bionic ad: &lt;a href="http://www.youtube.com/watch?v=A-K71MpwCko"&gt;http://www.youtube.com/watch?v=A-K71MpwCko&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Microsoft Surface ad: &lt;a href="http://www.youtube.com/watch?v=dpzu3HM2CIo"&gt;http://www.youtube.com/watch?v=dpzu3HM2CIo&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;See the differences? The Motorola and Microsoft ads are strangely devoid
of human beings actually using the devices and are filled with hard,
distorted, electronic sounds whereas the Apple ads include people
interacting with the devices Apple is trying to sell. Oh, and the Apple
ads have calming music, too.&lt;/p&gt;
&lt;p&gt;I'm not saying the Motorola and Microsoft ads are bad and the Apple ads
are good. What I see here are advertisements catering to different
markets. The Motorola/Microsoft ads are obviously targeting the action
movie-loving 13- to 28-year-old males. The Apple ads are targeting
everyone else. In fact, these ads clearly show the differences in
mindsets between Windows/Android fans and Apple fans. Windows/Android
fans like having really powerful hardware because it's pretty cool and
they prioritize this over factors like the physical design or UI of the
device. Apple fans like Apple devices because they provide a friendly
and intuitive user experience. Also, Apple devices look pretty.&lt;/p&gt;
&lt;p&gt;I don't really like Android phones because their UIs looks ugly to me
(too dark and too much flashiness), and the screens (usually) don't
represent colors accurately or very well. The cameras on the phones are
also not color-corrected (usually, there's a blue tint to the images).&lt;/p&gt;
&lt;p&gt;I like Apple devices because they have nice, mostly color-accurate
screens and cameras, a beautiful user interface/experience, and lots of
built-in services and useful functionality like iCloud, Find My Apple
Device, AppleCare, etc.&lt;/p&gt;
&lt;p&gt;I also know that when Apple integrates a new technology into their
devices, they do it right. Apple knows that its customers don't care
about specs so much as excellent implementations of new technologies.
Apple didn't add USB 3 to the Mac until they saw it was mature and going
to last. Thunderbolt can be used with 3rd party adapters for anything
Apple didn't include. Blu-Ray is a stupid Sony technology. Apple had
DisplayPort before most other computers. The iPhone doesn't have 4G, but
that means they're still perfecting the implementation. The iPhone had a
retina display before any other device. The list goes on.&lt;/p&gt;
&lt;p&gt;I'm too tired to finish my thoughts and bring them back to the original
point of the different attitudes and then back to the original original
point about the advertising and stuff. Ugh. Maybe later... I think my
fellow Apple fans will understand what I'm trying to say.&lt;/p&gt;
&lt;p&gt;Therefore, based on my completely anecdotal evidence, I believe this all
shows how Apple sets itself apart from other companies and how various
factors contribute to its continued success.&lt;/p&gt;</summary><category term="Android"></category><category term="Apple"></category><category term="iOS"></category><category term="Microsoft"></category><category term="random"></category><category term="rant"></category><category term="tired"></category></entry><entry><title>Almost there...</title><link href="https://www.cyrozap.com/2012/05/28/almost-there/" rel="alternate"></link><updated>2012-05-28T15:00:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2012-05-28:2012/05/28/almost-there/</id><summary type="html">&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2012/03/IMG_0796.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2012/03/IMG_0796-640x478.jpg" title="IMG_0796" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;All I have left is to wire up the power supply and attach the heated
bed!&lt;/p&gt;</summary><category term="Mendel"></category><category term="Prusa"></category><category term="Prusa Mendel"></category><category term="RepRap"></category></entry><entry><title>Debian Linux + ReplicatorG</title><link href="https://www.cyrozap.com/2012/05/01/debian-linux-replicatorg/" rel="alternate"></link><updated>2012-05-01T13:38:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2012-05-01:2012/05/01/debian-linux-replicatorg/</id><summary type="html">&lt;p&gt;Recently, I have been trying to get rid of my MacBook Pro so I will be
able to upgrade my iPhone in the Fall when the new one is supposed to
come out. Up until now, my MacBook had been my MakerBot-controlling
machine. Now that I have a nice, speedy Linux laptop with an average of
7 hours of battery life and become more proficient with Linux, I've been
using the MacBook less and less. Today, I decided I was going to print
more parts from the Mendel-Inspired Lowrider. To do this, I needed to
install ReplicatorG. Well, I got it running fine, but it wasn't
detecting my serial port (I plan on using the physical RS-232 port on my
laptop instead of the USB-TTL convertor). As is the norm with Linux, I
figured it was a permissions problem and, lo-and-behold, I was right!
&lt;a href="http://coolshitindustries.com/2011/03/replicatorg-on-linux-mint-debian-edition-lmde/"&gt;This article&lt;/a&gt;
got me up and running rather quickly. Basically, I just had to &lt;code&gt;sudo
chmod a+rw /dev/ttyS0&lt;/code&gt; and I was good to go.&lt;/p&gt;
&lt;p&gt;An interesting thing I noticed: for some reason, Skeinforge works a lot
faster on my Debian Laptop than my MacBook Pro even though they have the
same processor (T7300) and RAM speed (DDR2 667 MHz).&lt;/p&gt;
&lt;p&gt;The thought just occurred to me that maybe my Debian Laptop's Skeinforge
is faster because the Debian Laptop has an SSD.&lt;/p&gt;</summary><category term="Debian"></category><category term="Linux"></category><category term="Mac"></category><category term="MakerBot"></category><category term="ReplicatorG"></category></entry><entry><title>The Peeks have arrived!</title><link href="https://www.cyrozap.com/2012/02/26/the-peeks-have-arrived/" rel="alternate"></link><updated>2012-02-26T15:16:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2012-02-26:2012/02/26/the-peeks-have-arrived/</id><summary type="html">&lt;p&gt;&lt;strong&gt;Update 5/27/21:&lt;/strong&gt; It's been nine years since this article was posted, and a lot has changed since then.
With the proliferation of inexpensive WiFi-, Bluetooth-, and even cellular-enabled microcontrollers, these devices are no longer as interesting as they used to be.
However, I still have most of those 30 Peeks, and I'm a lot more skilled at bare-metal programming now than I used to be, so I intend to do &lt;em&gt;something&lt;/em&gt; with them within the next year so they don't go to waste.
I'll post any project updates in &lt;a href="https://kiwiirc.com/nextclient/#ircs://irc.libera.chat/#peekdev"&gt;#peekdev on Libera IRC&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update 3/29/12:&lt;/strong&gt; Peek's OS has been open-sourced! The new dev site is
here: &lt;a href="http://www.peeklinux.com/index.php/Main_Page"&gt;PeekLinux.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Well, I just received my casepack of 30 Peek devices (it was originally
supposed to be 20...) and I have nothing to do with them. I'll be
hanging out in &lt;s&gt;#peekdev (##peek is no longer used) on Freenode IRC&lt;/s&gt; as
cyrozap, so spread the word about the IRC channel and join in so we can
collectively figure out how to make this awesome device better! Code to
help get started has been posted to &lt;a href="http://peekhack.posterous.com"&gt;http://peekhack.posterous.com&lt;/a&gt;.
&lt;a href="http://elinux.org/Peek"&gt;http://elinux.org/Peek&lt;/a&gt; has some good info on how to flash the device.&lt;/p&gt;
&lt;p&gt;Oh, and thanks to Sam Aarons for letting me know that Peeks were being
given away! I still have no idea why that news hasn't reached Hack-a-Day
yet...&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update 2/29/12:&lt;/strong&gt; For those of you wondering, this is how you wire up
a normal micro-USB cable to an FTDI cable for use with a Peek. Sorry for
the poor photo quality; my iPhone's case has plastic covering the lens
that likes to diffuse light. :|&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2012/02/20120229-195729.jpg"&gt;&lt;img alt="Cable Wiring" src="https://www.cyrozap.com/wp-uploads/2012/02/20120229-195729-478x640.jpg" title="Here's how you do the cable wiring" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;From FTDI -&gt; USB, the connections are: Black -&gt; Black, Red
-&gt; Red, Orange -&gt; Green, Yellow -&gt; White&lt;/p&gt;</summary><category term="FTDI"></category><category term="IRC"></category><category term="Linux"></category><category term="Peek"></category></entry><entry><title>My Enhancement Request to Apple (and Verizon, AT&amp;T, et al.)</title><link href="https://www.cyrozap.com/2011/12/27/my-enhancement-request-to-apple-and-verizon-att-et-al/" rel="alternate"></link><updated>2011-12-27T02:18:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-12-27:2011/12/27/my-enhancement-request-to-apple-and-verizon-att-et-al/</id><summary type="html">&lt;p&gt;I just sent this Enhancement Request to Apple. I've reproduced it below:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Unlocked Verizon iPhone 4S To Work On U.S. GSM Carriers&lt;/p&gt;
&lt;p&gt;This may be more of a problem with Verizon, but I really would love it
if an unlocked Verizon iPhone 4S could be permitted to work on any GSM
carrier in the world&amp;mdash;including the United States. Currently, it only
works on Verizon in the U.S. and GSM carriers internationally, but not
AT&amp;amp;T, T-Mobile U.S., nor any other U.S. regional GSM carriers. I was
going to buy an iPhone 4S, thinking that this was the dawn of the age
of easy migration between wireless carriers, but upon learning about
this crippling of the iPhone's enormous hardware potential, I have
resolved to not purchase one. I also find it absurd that Verizon will
not let an Apple-unlocked iPhone 4S be permitted on its network. This
stifles innovation and reeks of monopolistic practices. If iPhone
owners got fed up with AT&amp;amp;T's lack of expansive 3G coverage, they
could switch to Verizon. If they got tired of Verizon's slow 3G data
speeds, they could easily switch to AT&amp;amp;T or T-Mobile. If consumers
were allowed to freely flow between carriers, the superior carrier
would have more subscribers by nature and not by force. I'd prefer it
if companies would bring about this change by themselves instead of
legislation forcing the change. Either way, it must happen eventually.
Apple has the power to protest these anti-competitive habits by
allowing the activation of U.S. SIM cards in unlocked Verizon iPhone
4S's. I don't know if this request will actually do anything, but it
makes me feel better to know that someone will see this and might even
stop a moment to think, "What if..."&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Go to &lt;a href="http://www.apple.com/feedback/iphone.html"&gt;http://www.apple.com/feedback/iphone.html&lt;/a&gt; to send your own
Enhancement Request.&lt;/p&gt;</summary><category term="Apple"></category><category term="CDMA"></category><category term="GSM"></category><category term="iPhone"></category><category term="iPhone 4S"></category><category term="monopolism"></category><category term="request"></category></entry><entry><title>Peek Linux With GSM Support</title><link href="https://www.cyrozap.com/2011/12/05/peek-linux-with-gsm-support/" rel="alternate"></link><updated>2011-12-05T17:52:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-12-05:2011/12/05/peek-linux-with-gsm-support/</id><summary type="html">&lt;p&gt;The Peek is a mobile device that uses a GSM radio to get your email and
display it. Basically, it's a single-purpose email device.&lt;/p&gt;
&lt;p&gt;A month or two ago, I bought a Peek on eBay for $22. I thought it might
be useful, but it ended up being useless without the Peek service. So
far, I've managed to upgrade the firmware, but I still need the Peek
service to get it to work. Peek customer support has been unresponsive
to my request to activate my Peek, so I now want to install Linux on
this thing to at least get SOME functionality out of it. Unfortunately,
without the GSM radio drivers of the TI Locosto chip, this device is
still useless (even on Linux). My new side project is to now get access
to TI's Locosto dev info so I can make binary drivers for the chip for
Linux. I would only be able to make binaries because of TI's NDA.&lt;/p&gt;
&lt;p&gt;Any help with this would be appreciated!&lt;/p&gt;
&lt;p&gt;Here's some info on the Peek's hardware: &lt;a href="http://elinux.org/Peek"&gt;http://elinux.org/Peek&lt;/a&gt;&lt;/p&gt;</summary><category term="Linux"></category><category term="Locosto"></category><category term="Peek"></category><category term="TI"></category></entry><entry><title>How To Get an iPad 3G Data Plan Without an iPad</title><link href="https://www.cyrozap.com/2011/11/29/how-to-get-an-ipad-3g-data-plan-without-an-ipad/" rel="alternate"></link><updated>2011-11-29T12:09:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-11-29:2011/11/29/how-to-get-an-ipad-3g-data-plan-without-an-ipad/</id><summary type="html">&lt;p&gt;Because there aren't any up-to-date guides on how to do this, I decided
to make my own.&lt;/p&gt;
&lt;p&gt;All you need is an unactivated (never used) &lt;a href="http://www.amazon.com/gp/product/B002G7A8TI/"&gt;AT&amp;amp;T SIM card&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;To start, go to &lt;a href="http://www.att.com/ipad"&gt;http://www.att.com/ipad&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Scroll down to where it says "Need More Data?" Click on that link (or
&lt;a href="https://dcp2.att.com/OEPNDClient/?wtSlotClick=1-0054JD-0-1&amp;amp;WT.svl=title"&gt;click here&lt;/a&gt;,
but this direct link might not always work).&lt;/p&gt;
&lt;p&gt;Click "Get Your Pass."&lt;/p&gt;
&lt;p&gt;You will come to a "Device Information" screen. Here is where you will
enter a fake iPad IMEI and your unactivated AT&amp;amp;T SIM number. The IMEI
should be in the form of 01222300******* or
01222400*******, where ******* is a random 7-digit number.
The SIM number should be right on your SIM card.&lt;/p&gt;
&lt;p&gt;As an alternative to guessing IMEI numbers, you can also get the IMEI
from an iPad Wi-Fi + 3G in your local Apple or AT&amp;amp;T store. Just go to
Settings-&gt;General-&gt;About to see it. Taking a picture with your phone
would probably look less suspicious than writing the number down, but
either way YMMV.&lt;/p&gt;
&lt;p&gt;Click "Next." If it doesn't work, try again with another fake iPad IMEI.
I got my first number to work on my first try (what are the chances),
but the second valid IMEI I hit took over 20 more tries to get, so keep
trying till you get it!&lt;/p&gt;
&lt;p&gt;Once you get past this screen, you're home free! All you need to do is
enter your name, address, email, password for your new AT&amp;amp;T account,
Credit Card info, agree to the terms, and you're set. Also, from now on,
you'll be able to manage your account from the email and password you
set up earlier.&lt;/p&gt;
&lt;p&gt;Have fun with your new data plan!&lt;/p&gt;</summary><category term="3G"></category><category term="AT&amp;T"></category><category term="broadband"></category><category term="data"></category><category term="DataConnect"></category><category term="iPad"></category><category term="mobile"></category></entry><entry><title>Any Recommendations for Prusa Mendel Parts?</title><link href="https://www.cyrozap.com/2011/11/25/any-recommendations-for-prusa-mendel-parts/" rel="alternate"></link><updated>2011-11-25T15:16:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-11-25:2011/11/25/any-recommendations-for-prusa-mendel-parts/</id><summary type="html">&lt;p&gt;Progress on the RepRap has slowed to a crawl and it's really bumming me
out. Building from kits is SO much easier than sourcing the parts
yourself. I've probably gotten the final cost estimate into the
$600-$700 range by now.&lt;/p&gt;
&lt;p&gt;Anyway, I need your help. I just need to print out the new X-carriage,
get some M3x25mm bolts, buy some MDF for the Y-stage, and get a hot end.
However, I don't really know what to get. What are the recommended
dimensions for the Y-stage (LM8UU bearings)? What's the best hot-end for
3mm PLA that I can get in the U.S. for a Wades extruder?&lt;/p&gt;
&lt;p&gt;Feel free to comment with your suggestions!&lt;/p&gt;</summary><category term="extruder"></category><category term="hot end"></category><category term="MDF"></category><category term="Mendel"></category><category term="parts"></category><category term="Prusa"></category><category term="RepRap"></category><category term="vitamins"></category></entry><entry><title>Stupid Circuit Prototype...</title><link href="https://www.cyrozap.com/2011/11/23/stupid-circuit-prototype/" rel="alternate"></link><updated>2011-11-23T15:01:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-11-23:2011/11/23/stupid-circuit-prototype/</id><summary type="html">&lt;p&gt;Ok, I've built this thing TWICE on two different boards now and I
&lt;em&gt;still&lt;/em&gt; haven't managed to get it to work with the programmer!&lt;/p&gt;
&lt;p&gt;AAAAAAUUUUUGGGGGGHHHHHHHDSASDGFKLHASKJGHKLJAGLK!!!!!!!!!!!!!!!!!!!&lt;/p&gt;
&lt;p&gt;If you want to help me, see the &lt;a href="http://groups.google.com/group/makerbot/browse_thread/thread/b3883c37b7097bd4"&gt;post I made&lt;/a&gt;
on the MakerBot Google Group.&lt;/p&gt;</summary><category term="circuit"></category><category term="controller"></category><category term="Google"></category><category term="group"></category><category term="MakerBot"></category><category term="plotter"></category><category term="prototype"></category><category term="Unicorn"></category></entry><entry><title>RepRap Prusa Mendel 8mm Rods</title><link href="https://www.cyrozap.com/2011/11/22/reprap-prusa-mendel-8mm-rods/" rel="alternate"></link><updated>2011-11-22T18:37:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-11-22:2011/11/22/reprap-prusa-mendel-8mm-rods/</id><summary type="html">&lt;p&gt;A week ago, I bought three 3' lengths of 8mm smooth rod for my Prusa
Mendel because I wanted to use LM8UU bearings. After receiving the rod
and cutting it, I've fond that they make a huge difference in reducing
play between the linear bearings and the rods. With 5/16" rod, you could
feel the bearings wiggle. Now there is no wiggle at all! If you're
building a "United States customary units" Prusa Mendel and are ordering
online and might use LM8UU bearings now or in the future, get 8mm rods.
They're only a $1 more each on McMaster-Carr, so it's not a huge
expense.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;tl;dr: Get 8mm smooth rods. They're the best.&lt;/strong&gt;&lt;/p&gt;</summary><category term="LM8UU"></category><category term="Prusa"></category><category term="Prusa Mendel"></category><category term="RepRap"></category><category term="rods"></category></entry><entry><title>Vimeo Free Music Exploit</title><link href="https://www.cyrozap.com/2011/11/06/vimeo-free-music-exploit/" rel="alternate"></link><updated>2011-11-06T12:55:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-11-06:2011/11/06/vimeo-free-music-exploit/</id><summary type="html">&lt;p&gt;Well, calling this an "exploit" is really stretching the truth a bit&amp;mdash;
all I did was poke around in Chrome's Developer Tools. Basically, to
download any track for free, all you have to do is go to
http://vimeo.com/musicstore/preview?id=###### and put the music
track ID after the equals sign, where the pound signs are. The track ID
is the ###### at the end of any
http://vimeo.com/musicstore/track/###### link.&lt;/p&gt;
&lt;p&gt;I was going to notify Vimeo of this huge security hole, but then, after
test-downloading a track (it has since been deleted from my computer), I
noticed that the bitrate of the file was 64kbps. 64kbps is good enough
quality to give you a sense of the song but too poor quality to use in a
video or listen to regularly. This way, they can give you a full preview
of the song without worrying about piracy of the full-length song
preview.&lt;/p&gt;
&lt;p&gt;Clever Vimeo.&lt;/p&gt;</summary><category term="exploit"></category><category term="free"></category><category term="music"></category><category term="Vimeo"></category></entry><entry><title>My Current MakerBot Setup</title><link href="https://www.cyrozap.com/2011/11/03/my-current-makerbot-setup/" rel="alternate"></link><updated>2011-11-03T21:45:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-11-03:2011/11/03/my-current-makerbot-setup/</id><summary type="html">&lt;p&gt;I haven't added any good pictures or videos of my work area in a while
so, a few days ago, I decided to take some with my Nikon
D5100.&lt;/p&gt;
&lt;p&gt;&lt;embed type="application/x-shockwave-flash" src="https://picasaweb.google.com/s/c/bin/slideshow.swf" width="600" height="400" flashvars="host=picasaweb.google.com&amp;amp;noautoplay=1&amp;amp;hl=en_US&amp;amp;feat=flashalbum&amp;amp;RGB=0x000000&amp;amp;feed=https%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Fcyrozap%2Falbumid%2F5670794377873692769%3Falt%3Drss%26kind%3Dphoto%26hl%3Den_US" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&lt;/p&gt;
&lt;p&gt;I also took an HD video.&lt;/p&gt;
&lt;p&gt;&lt;div class="videobox"&gt;
                &lt;iframe
                    src="//player.vimeo.com/video/31578483?title=0&amp;amp;byline=0&amp;amp;portrait=0"
                    width="640" height="390" frameborder="0"
                    webkitAllowFullScreen mozallowfullscreen allowFullScreen&gt;
                &lt;/iframe&gt;
            &lt;/div&gt;&lt;/p&gt;</summary><category term="D5100"></category><category term="MakerBot"></category><category term="Nikon"></category><category term="workbench"></category></entry><entry><title>Cool Stuff</title><link href="https://www.cyrozap.com/2011/10/28/cool-stuff/" rel="alternate"></link><updated>2011-10-28T15:40:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-10-28:2011/10/28/cool-stuff/</id><summary type="html">&lt;p&gt;The parts for the Unicorn circuit board arrived! The circuit boards
themselves sill aren't here, of course (cheap shipping from China is
cheap and slow). Anyway, I went through the parts I received and, lo and
behold, I got one wrong. Thankfully, it was only the switch&amp;mdash;I had
ordered a surface-mount version instead of a through-hole version. The
good news is I can still use the switch. I have corrected the part
number and price in the part list spreadsheet.&lt;/p&gt;
&lt;p&gt;On a slightly related subject, I finally assembled the Magnetic Rotary
Encoder board!&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2011/10/Magnetic-Rotary-Encoder-001.jpg"&gt;&lt;img alt="Magnetic Rotary Encoder" src="https://www.cyrozap.com/wp-uploads/2011/10/Magnetic-Rotary-Encoder-001-640x423.jpg" title="Magnetic Rotary Encoder" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It's pretty cool. The surface-mount soldering, while not impossible, is
still a pain in the butt. Also, getting the rosin flux off the board was
fairly difficult, too. I feel like Hackaday did a how-to for using flux,
but I can't find the post right now. If any of you has a good method or
a link to a good method of removing rosin flux, leave a comment.&lt;/p&gt;</summary><category term="board"></category><category term="circuit"></category><category term="MakerBot"></category><category term="minimalist"></category><category term="pen"></category><category term="plotter"></category><category term="Unicorn"></category></entry><entry><title>Unicorn Pen Plotter Circuit Component Cost</title><link href="https://www.cyrozap.com/2011/10/26/unicorn-pen-plotter-circuit-component-cost/" rel="alternate"></link><updated>2011-10-26T15:53:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-10-26:2011/10/26/unicorn-pen-plotter-circuit-component-cost/</id><summary type="html">&lt;p&gt;Ok, so I'm a few days late with ordering the parts. No big deal, right?
Anyway, I got them ordered today and it ended up costing around $16
(including shipping, from Digi-key). That parts cost reflects a full set
of RoHS-compliant and lead-free parts, so it is possible to get the
parts cheaper. Tentative BOM after the break.&lt;/p&gt;
&lt;iframe src="https://docs.google.com/spreadsheet/pub?hl=en_US&amp;amp;hl=en_US&amp;amp;key=0AmKCjNYzqlardDNOaG5JT2dYLVFraUJMaVBGdGNsbkE&amp;amp;single=true&amp;amp;gid=0&amp;amp;output=html&amp;amp;widget=true" frameborder="0" width="640" height="440"&gt;&lt;/iframe&gt;

&lt;p&gt;I say that this BOM is "tentative" because I may have ordered some wrong
parts.&lt;/p&gt;</summary><category term="board"></category><category term="circuit"></category><category term="MakerBot"></category><category term="minimalist"></category><category term="pen"></category><category term="plotter"></category><category term="Unicorn"></category></entry><entry><title>Those LM8UU Bearings Sure Are Noisy!</title><link href="https://www.cyrozap.com/2011/10/26/those-lm8uu-bearings-sure-are-noisy/" rel="alternate"></link><updated>2011-10-26T15:19:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-10-26:2011/10/26/those-lm8uu-bearings-sure-are-noisy/</id><summary type="html">&lt;p&gt;Well, the cheap-o linear bearings work! However, they are &lt;em&gt;quite&lt;/em&gt; noisy
(not unexpected). Unfortunately, I have to print a new set of parts that
incorporate the LM8UU holder design to get them to work well with the
machine.&lt;/p&gt;</summary><category term="bearings"></category><category term="cheap"></category><category term="ebay"></category><category term="LM8UU"></category><category term="RepRap"></category></entry><entry><title>Unicorn Pen Plotter Dedicated Controller Board</title><link href="https://www.cyrozap.com/2011/10/23/unicorn-pen-plotter-dedicated-controller-board/" rel="alternate"></link><updated>2011-10-23T23:49:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-10-23:2011/10/23/unicorn-pen-plotter-dedicated-controller-board/</id><summary type="html">&lt;p&gt;I just ordered 10 of the &lt;a href="http://www.thingiverse.com/thing:4266"&gt;Minimalist Unicorn Controller Boards&lt;/a&gt; that I designed. Total
cost was around $34 from SeeedStudio, so that's about $3.40 per board.
If you want, I can send you one for the cost of the board + shipping. I
really only want one for my Unicorn (still haven't used it) so I kinda
want to offset that cost a bit. I'll be ordering the components tomorrow
so I'll let you know what the electronic bits cost then. Sorry about
this post's grammar&amp;mdash;it's late but I really wanted to get this out
tonight.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; This is essentially just the extruder controller with all
the unnecessary bits removed. The benefits of this board are that it is
(theoretically) cheaper than the EC board and it's smaller than the EC
board but it still has the plug-and-play RS485+Power port.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update 2:&lt;/strong&gt; Remember, this is just the PCB I'm selling, nothing
else&amp;mdash;no components. You all knew that, though. Right?&lt;/p&gt;</summary><category term="board"></category><category term="circuit"></category><category term="MakerBot"></category><category term="minimalist"></category><category term="pen"></category><category term="plotter"></category><category term="SeeedStudio"></category><category term="Unicorn"></category></entry><entry><title>My New Old Macintosh SE</title><link href="https://www.cyrozap.com/2011/10/18/my-new-old-macintosh-se/" rel="alternate"></link><updated>2011-10-18T22:24:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-10-18:2011/10/18/my-new-old-macintosh-se/</id><summary type="html">&lt;p&gt;Today, I got a free Macintosh SE! It's pretty awesome. Unfortunately,
it's giving me a RAM error, so I'll have to swap out the modules. I'm
going to try to fix it to the best of my ability because to gut a
fixable machine would be to destroy a piece of Apple history. I'm
thinking about replacing some of the components with more reliable
modern equivalents, too. Now that I think of it, I might just go ahead
and replace all the capacitors before they start leaking and ruin the
board. If I can, I'll also replace the floppy drive with an SD
card-based floppy drive emulator.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2011/10/20111018-221417.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2011/10/20111018-221417-640x478.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2011/10/20111018-221435.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2011/10/20111018-221435-478x640.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;</summary><category term="Apple"></category><category term="Mac"></category><category term="Macintosh"></category></entry><entry><title>Cheap-o LM8UU Bearings on Ebay</title><link href="https://www.cyrozap.com/2011/10/14/cheap-o-lm8uu-bearings-on-ebay/" rel="alternate"></link><updated>2011-10-14T12:31:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-10-14:2011/10/14/cheap-o-lm8uu-bearings-on-ebay/</id><summary type="html">&lt;p&gt;Today, I bought some linear bearings (against Spacexula's
recommendation). I got the 12 el-cheapo LM8UU bearings on ebay for $18
because I figured they might work better than brass bushings. If they
don't, $18 isn't a huge loss. I heard there are some small issues with
the cheap bearings, but I think I'll be fine.&lt;/p&gt;
&lt;p&gt;While I wait for the bearings to arrive, I will be cutting the threaded
rods down to size and I'll begin assembling the machine.&lt;/p&gt;</summary><category term="bearings"></category><category term="LM8UU"></category><category term="RepRap"></category></entry><entry><title>It has begun...</title><link href="https://www.cyrozap.com/2011/10/09/it-has-begun/" rel="alternate"></link><updated>2011-10-09T00:36:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-10-09:2011/10/09/it-has-begun/</id><summary type="html">&lt;p&gt;Well, I finally pulled the metaphorical trigger and bought the hardware
for my SAE Prusa Mendel. It's so exciting! I probably overpaid ($73.88
+ shipping), but it was nice to get everything all at once from
McMaster-Carr (I don't have a hardware store near me that sells the rods
or belts). Once I get the hardware (sometime next week) I'll start
building the frame.&lt;/p&gt;
&lt;p&gt;Things are getting interesting...&lt;/p&gt;</summary><category term="hardware"></category><category term="McMaster"></category><category term="Prusa"></category><category term="RepRap"></category><category term="SAE"></category></entry><entry><title>Prusa Mendel X-Carriage</title><link href="https://www.cyrozap.com/2011/10/02/prusa-mendel-x-carriage/" rel="alternate"></link><updated>2011-10-02T22:55:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-10-02:2011/10/02/prusa-mendel-x-carriage/</id><summary type="html">&lt;p&gt;This is the day you will always remember as the day I FINALLY PRINTED
THE PRUSA X-CARRIAGE!&lt;/p&gt;
&lt;p&gt;If you can't tell, I'm really excited. It turns out that the missing
ingredient to my MakerBotting success was some isopropyl alcohol (70%,
a.k.a. rubbing alcohol) to clean oils off of the build platform. Once I
cleaned the platform, prints started sticking like they did when I first
upgraded to the HBP. It's AWESOME.&lt;/p&gt;
&lt;p&gt;Now that I've gotten the x-carriage printed, the rest of the parts
should be easy by comparison. Once I get them printed, I'll start buying
the hardware for the new machine.&lt;/p&gt;</summary><category term="isopropyl"></category><category term="Mendel"></category><category term="Prusa"></category></entry><entry><title>Sprint Airave Teardown</title><link href="https://www.cyrozap.com/2011/09/28/sprint-airave-teardown/" rel="alternate"></link><updated>2011-09-28T22:54:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-09-28:2011/09/28/sprint-airave-teardown/</id><summary type="html">&lt;p&gt;Got my hands on a Sprint Airave (full model number SPDSC26UCS) in the
hopes of being able to hack it, but the FPGA ended up being an Altera
HardCopy II chip, which is basically an FPGA that is hard-coded to
remove the FP (Field Programmable) functionality.&lt;/p&gt;
&lt;p&gt;So, not wanting to waste a $40 investment, I decided to take pictures
of the insides in the hopes that it will help someone figure out some
hacks for it.&lt;/p&gt;
&lt;p&gt;If you need more-detailed pictures, let me know and I'll be happy to
take them for you. I hope to get some logic analyzing going at some
point so I can spoof the GPS data.&lt;/p&gt;
&lt;p&gt;&lt;embed type="application/x-shockwave-flash" src="https://picasaweb.google.com/s/c/bin/slideshow.swf" width="600" height="400" flashvars="host=picasaweb.google.com&amp;amp;noautoplay=1&amp;amp;hl=en_US&amp;amp;feat=flashalbum&amp;amp;RGB=0x000000&amp;amp;feed=https%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Fcyrozap%2Falbumid%2F5657578569239553633%3Falt%3Drss%26kind%3Dphoto%26authkey%3DGv1sRgCISD8oikmrevSQ%26hl%3Den_US" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&lt;/p&gt;</summary><category term="Airave"></category><category term="cellular"></category><category term="femtocell"></category><category term="GPS"></category><category term="Sprint"></category></entry><entry><title>No more ads! Yay! Sorta...</title><link href="https://www.cyrozap.com/2011/09/20/no-more-ads-yay-sorta/" rel="alternate"></link><updated>2011-09-20T19:06:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-09-20:2011/09/20/no-more-ads-yay-sorta/</id><summary type="html">&lt;p&gt;Well, ads don't seem to be making me any money. Because of this, I
figured that I might as well get rid of them.&lt;/p&gt;
&lt;p&gt;In place of ads, I now have Flattr buttons! Yay!&lt;/p&gt;
&lt;p&gt;Like a post? Flatter it! There are now Flattr buttons at the end of
every post. I'm sure you won't mind.&lt;/p&gt;</summary><category term="ad-free"></category><category term="ads"></category><category term="Flattr"></category></entry><entry><title>Maker Faire NY 2011 Was Awesome</title><link href="https://www.cyrozap.com/2011/09/19/maker-faire-ny-2011-was-awesome/" rel="alternate"></link><updated>2011-09-19T23:00:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-09-19:2011/09/19/maker-faire-ny-2011-was-awesome/</id><summary type="html">&lt;p&gt;Well, it was! I met some really cool people this year and it's always
great to put faces to names.&lt;/p&gt;
&lt;p&gt;I was amazed by Andrew Diehl's &lt;a href="http://fablicator.com"&gt;"Fablicator"&lt;/a&gt; and
the double-tall Ultimaker&amp;mdash;these things are game changers. I can see the
Fablicator directly competing with 3D System's lowest-cost pre-assembled
printers and MakerBot's pre-assembled Thing-O-Matic, and it's really an
amazing deal considering the Fablicator is made out of aluminum and it
includes a computer with all the software pre-installed.&lt;/p&gt;
&lt;p&gt;A lot of people have been saying that I'm getting great quality for a
batch 5 MakerBot with a DC extruder. I think so, too, but I would love
it if it was better. I believe the majority of my printing problems are
due to my use of the DC gearmotor. With a stepper extruder, I would be
able to get much finer control over the flowrate, thus fixing a lot of
my perimeter adhesion and excess infill problems.&lt;/p&gt;
&lt;p&gt;I posted the pictures I took at the Faire on my &lt;a href="http://picasaweb.google.com/cyrozap/MakerFaireNY2011/"&gt;Picasa Web Albums&lt;/a&gt;.
Bonus feature: I geotagged most of the pictures using my &lt;a href="https://www.cyrozap.com/2011/08/13/diy-nikon-d5100-gps/"&gt;DIY Nikon GPS&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;embed type="application/x-shockwave-flash" src="https://picasaweb.google.com/s/c/bin/slideshow.swf" width="600" height="400" flashvars="host=picasaweb.google.com&amp;amp;noautoplay=1&amp;amp;hl=en_US&amp;amp;feat=flashalbum&amp;amp;RGB=0x000000&amp;amp;feed=https%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Fcyrozap%2Falbumid%2F5654187969672002593%3Falt%3Drss%26kind%3Dphoto%26hl%3Den_US" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;
&lt;/embed&gt;&lt;/p&gt;</summary><category term="Maker Faire"></category><category term="MakerBot"></category><category term="MFNY2011"></category><category term="RepRap"></category></entry><entry><title>MakerBot Controller iOS App</title><link href="https://www.cyrozap.com/2011/09/03/makerbot-controller-ios-app/" rel="alternate"></link><updated>2011-09-03T17:34:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-09-03:2011/09/03/makerbot-controller-ios-app/</id><summary type="html">&lt;p&gt;I made an app that can hackishly control a MakerBot! Code is
&lt;a href="https://github.com/cyrozap/MakerBot-Controller"&gt;here&lt;/a&gt;. Clone via Git,
open and compile with XCode 4.&lt;/p&gt;
&lt;p&gt;I say "hackishly" because it only works on the X-axis right now and it
only supports absolute coordinates. Eventually, I want this to become a
full ReplicatorG implementation so you won't need a computer to control
a MakerBot.&lt;/p&gt;
&lt;p&gt;You need a Redpark serial cable and EITHER a provisioned iOS device and
developer program membership OR a jailbroken iOS device and modified
XCode. I have the latter.&lt;/p&gt;
&lt;p&gt;If you want to help the development, feel free to fork the repository
and do any dev work you want! &lt;a href="http://replicat.org/sanguino3g"&gt;This&lt;/a&gt; is
a great resource to use. I really do need help with this because my
coding skills are less than adequate.&lt;/p&gt;</summary><category term="app"></category><category term="iOS"></category><category term="iPad"></category><category term="iPhone"></category><category term="iPod touch"></category><category term="MakerBot"></category><category term="Redpark"></category></entry><entry><title>Power is back!</title><link href="https://www.cyrozap.com/2011/09/02/power-is-back/" rel="alternate"></link><updated>2011-09-02T19:10:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-09-02:2011/09/02/power-is-back/</id><summary type="html">&lt;p&gt;Awwww yeahhhhh!&lt;/p&gt;
&lt;p&gt;Also: &lt;a href="http://www.youtube.com/watch?v=kpAcanUJX7s"&gt;http://www.youtube.com/watch?v=kpAcanUJX7s&lt;/a&gt;&lt;/p&gt;</summary><category term="firstworldproblems"></category><category term="fixed"></category></entry><entry><title>Possible Downtime</title><link href="https://www.cyrozap.com/2011/08/26/possible-downtime/" rel="alternate"></link><updated>2011-08-26T12:21:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-08-26:2011/08/26/possible-downtime/</id><summary type="html">&lt;p&gt;The server may be down for a week due to Hurricane Irene. Just letting
you know in advance. If only I had my own fusion reactor...&lt;/p&gt;</summary><category term="hurricane"></category><category term="power"></category><category term="server"></category></entry><entry><title>Random Thought</title><link href="https://www.cyrozap.com/2011/08/18/random-thought/" rel="alternate"></link><updated>2011-08-18T17:12:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-08-18:2011/08/18/random-thought/</id><summary type="html">&lt;p&gt;I wonder how much faster my server would be if I ran it off of a 64 GB
SSD... It would only be a $115 upgrade. Though, site speed would still
be limited by the 3 Mbps upload rate. I long for 25/25 FiOS...&lt;/p&gt;</summary><category term="FiOS"></category><category term="random"></category><category term="server"></category><category term="SSD"></category><category term="upgrade"></category><category term="upgrades"></category></entry><entry><title>DIY Nikon D5100 GPS</title><link href="https://www.cyrozap.com/2011/08/13/diy-nikon-d5100-gps/" rel="alternate"></link><updated>2011-08-13T21:44:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-08-13:2011/08/13/diy-nikon-d5100-gps/</id><summary type="html">&lt;p&gt;Recently, I bought a Nikon D5100. It is the best camera I have ever
owned. EVER. You have no idea how happy I am with my purchase of it (and
I should be happy with it&amp;mdash;at $840, it's nowhere near cheap). One of
the awesome features it has is GPS input. It can take TTL serial GPS
data and use it to geotag pictures. This is awesome, but it comes with a
catch: Nikon's GPS is $250! It's also absurdly bulky. Wanting
geotagging that I can easily disable (I don't want home pictures, etc.
to be tagged), I built this simple GPS that will work in many of Nikon's
newer cameras.&lt;/p&gt;
&lt;p&gt;BoM:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Microsoft GPS-500 (or GPS-360, it has the same pinout)&amp;mdash;I got mine
  on eBay for $20 (and it came with a TTL-USB cable AND Streets &amp;amp;
  Trips 2008 AND an MSN Direct Receiver)&lt;/li&gt;
&lt;li&gt;Shutter connecting cord for Nikon D5100&lt;/li&gt;
&lt;li&gt;Ethernet cable that you're willing to strip&lt;/li&gt;
&lt;li&gt;Kapton tape&lt;/li&gt;
&lt;li&gt;Some sort of strain relief for the wires at the camera connector&lt;/li&gt;
&lt;li&gt;A steady hand&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I got the pinout data for the GPS from
&lt;a href="http://www.flickr.com/photos/imager/4383334403/"&gt;here&lt;/a&gt; and the pinout
data for the camera connector (with a lot of other useful info)
&lt;a href="http://grink.com/2010/12/05/nikon-d90-homemade-gps/"&gt;here&lt;/a&gt;. Note: on
the Flickr photo, read my comment for clarifying info and corrections.&lt;/p&gt;
&lt;p&gt;My setup doesn't use any TTL voltage converters because the D5100 seems
to be able to use the 3.3V TTL from the GPS. I may include a diode in
the power line at some point to drop the voltage a little because the
camera is feeding 6V to the GPS and its
&lt;a href="http://www.pharosgps.com/products/proddetail.asp?prod=006_PB010_1.00&amp;amp;cat=141"&gt;specs&lt;/a&gt;
say it has a max power input of 5.5V, but it's working so far.&lt;/p&gt;
&lt;p&gt;Basically, connect pin 5 on the GPS (the one to the right of the
leftmost one when the gold contacts are facing up) to the power pin on
the camera connector, pin 2 on the GPS to ground on the camera
connector, and pin 3 on the GPS to TTL/Serial in on the camera
connector.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; I added the diode; it dropped the voltage to about 5.0V-5.2V.
I feel a bit better now.&lt;/p&gt;
&lt;p&gt;Oh, by the way, &lt;strong&gt;&lt;em&gt;don't connect Pin 1 (GPS Rx) to ground!&lt;/em&gt;&lt;/strong&gt; I happened
to do this by accident and it screwed up the serial output until I fixed
the solder bridge.&lt;/p&gt;
&lt;p&gt;This setup may work for other newish Nikon cameras, but they may not be
3.3V TTL tolerant, so YMMV.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2011/08/DSC_0363.jpg"&gt;&lt;img alt="The Microsoft GPS" src="https://www.cyrozap.com/wp-uploads/2011/08/DSC_0363-640x423.jpg" title="The Microsoft GPS" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2011/08/DSC_0365.jpg"&gt;&lt;img alt="The connector" src="https://www.cyrozap.com/wp-uploads/2011/08/DSC_0365-640x423.jpg" title="Note the excess amount of kapton tape" /&gt;&lt;/a&gt;&lt;/p&gt;</summary><category term="D5100"></category><category term="GPS"></category><category term="Nikon"></category></entry><entry><title>Wordpress Admin Errors</title><link href="https://www.cyrozap.com/2011/08/13/wordpress-admin-errors/" rel="alternate"></link><updated>2011-08-13T21:38:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-08-13:2011/08/13/wordpress-admin-errors/</id><summary type="html">&lt;p&gt;I was having EXACTLY the same errors as &lt;a href="http://orenyomtov.com/jquery-is-not-defined-wordpress-error-fix.html"&gt;this guy&lt;/a&gt;&amp;mdash;basically,
none of the javascript elements in Wordpress were working, ex. Check All
Checkboxes, multi-file uploader, text in the post editor was
"invisible," etc.&lt;/p&gt;
&lt;p&gt;How I fixed it:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Delete all the files &amp;amp; folders in your "wp-includes" folder.&lt;/li&gt;
&lt;li&gt;Re-upload all the files &amp;amp; folders in the "wp-includes" folder.&lt;/li&gt;
&lt;li&gt;If any of the files failed to transfer, put them back in the
    transfer queue and send them again.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;SUCCESS!&lt;/p&gt;</summary><category term="fixed"></category><category term="server"></category><category term="technical difficulties"></category><category term="WordPress"></category><category term="Wordpress.org"></category></entry><entry><title>Server Upgrade Finally Complete!</title><link href="https://www.cyrozap.com/2011/08/06/server-upgrade-finally-complete/" rel="alternate"></link><updated>2011-08-06T17:29:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-08-06:2011/08/06/server-upgrade-finally-complete/</id><summary type="html">&lt;p&gt;I finally did it! The new server has all the parts that used to be in my
old gaming machine, but it has the same HDDs as before (because I'm too
lazy and cheap to get it a 1 TB SATA drive and image it from the old
drives). For some reason, one of the NICs on the motherboard is present
in the OS and activated in the BIOS but doesn't light up when a network
cable is inserted. Oh, well; it has two, so it's no big deal. It also
decided not to keep its network settings after a reboot, so I put the
dhclient command in the /etc/init.d/rc.local file. Everything works now.
There's a possibility that this will also be a TF2 server in the near
future.&lt;/p&gt;
&lt;p&gt;New-old server specs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AMD Athlon 64 X2 4200+&lt;/li&gt;
&lt;li&gt;ROG Crosshair II Formula Motherboard&lt;/li&gt;
&lt;li&gt;2 GB DDR2 667 RAM&lt;/li&gt;
&lt;li&gt;10 GB 5400rpm OS drive&lt;/li&gt;
&lt;li&gt;80 GB 7200rpm Data Drive&lt;/li&gt;
&lt;li&gt;430W Antec Earthwatts 80 Plus PSU&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I'll definitely be posting to the blog a lot more now that the server
won't hang every time I publish a post!&lt;/p&gt;</summary><category term="fixed"></category><category term="server"></category><category term="upgrade"></category><category term="upgrades"></category></entry><entry><title>CD/Cassette/Radio Hack</title><link href="https://www.cyrozap.com/2011/06/22/cdcassetteradio-hack/" rel="alternate"></link><updated>2011-06-22T14:11:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-06-22:2011/06/22/cdcassetteradio-hack/</id><summary type="html">&lt;p&gt;Today, I hacked a multi-function audio player (commonly known as a "boom
box") to add an external audio input. This hack isn't really done yet (I
still have to solder everything up, drill a hole, add the 1/8" jack,
etc.), but I have pictures of what I've done.&lt;/p&gt;
&lt;p&gt;Essentially, I started out by poking around the live circuit with my
oscilloscope. I didn't get very far with that, so I decided to look up
the datasheet for the identical DIP chips that looked like they were the
amp chips. After reading the bits I needed, I saw that the chips were
indeed amplifiers (with one for each channel). After tracing some
circuit paths, I managed to find a good point to input the signal. I
connected some wires to those points, found a point for ground, and
connected it to an 1/8" jack in my iPhone.&lt;/p&gt;
&lt;p&gt;I was able to play Derezzed REALLY loud before it started getting
distorted.&lt;/p&gt;
&lt;p&gt;Sorry there's no video, but the music player I was using also happens to
be my video camera, phone, calendar, and video player (among other
things). Also, my normal video camera wasn't available. Click "Continue
Reading" to see the pictures. &lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2011/06/20110622-020935.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2011/06/20110622-020935-640x478.jpg" title="20110622-020935.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2011/06/20110622-020948.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2011/06/20110622-020948-640x478.jpg" title="20110622-020948.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2011/06/20110622-020957.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2011/06/20110622-020957-640x478.jpg" title="20110622-020957.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2011/06/20110622-021006.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2011/06/20110622-021006-640x478.jpg" title="20110622-021006.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;</summary><category term="amp"></category><category term="amplifier"></category><category term="cassette"></category><category term="CD"></category><category term="iPhone"></category><category term="music"></category><category term="radio"></category></entry><entry><title>Making a Prusa Mendel</title><link href="https://www.cyrozap.com/2011/06/19/making-a-prusa-mendel/" rel="alternate"></link><updated>2011-06-19T19:14:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-06-19:2011/06/19/making-a-prusa-mendel/</id><summary type="html">&lt;p&gt;I've decided to print as many parts as I can to make a Prusa Mendel.
Hopefully I can make enough parts so I can just ask some people to make
the parts my CupCake can't make. Currently, every object I make has too
much perimeter material&amp;mdash;parts designed to interlock don't fit. I've
tried to fix this in Skeinforge, but right now I'm adjusting my belt
tension to see if that helps. My CupCake fails on large prints, so I'll
need help on those.&lt;/p&gt;
&lt;p&gt;The goal of getting my MakerBot was to get it to make a full set of
working RepRap parts, but it never has. This has made me a bit sad. So,
to remedy this, I'm going to calibrate my bot to the best of my ability
(and maybe get some help from others in the 3D Printer Village) and
print as many parts as I can. Wish me luck!&lt;/p&gt;</summary><category term="MakerBot"></category><category term="Mendel"></category><category term="parts"></category><category term="Prusa"></category><category term="RepRap"></category></entry><entry><title>The TV-B-Gone app project is being revived!</title><link href="https://www.cyrozap.com/2011/05/21/the-tv-b-gone-app-project-is-being-revived/" rel="alternate"></link><updated>2011-05-21T17:09:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-05-21:2011/05/21/the-tv-b-gone-app-project-is-being-revived/</id><summary type="html">&lt;p&gt;A major hurdle to the TV-B-Gone for iPhone project was getting a wav
file with the remote data. Well, now I have one. I found it in a link
posted in a comment on a Hackaday post. Cool! So, here's the
&lt;a href="http://www.compendiumarcana.com/iraudio/tvbg2wav.zip"&gt;link&lt;/a&gt;, I'll be
adding the necessary code and the file to the &lt;a href="https://github.com/cyrozap/TVKiller/network"&gt;Git repo&lt;/a&gt; soon.&lt;/p&gt;
&lt;p&gt;As usual, feel free to help me in making this by forking the repo.&lt;/p&gt;</summary><category term="revived"></category><category term="TV-B-Gone"></category><category term="Wav"></category></entry><entry><title>AT&amp;T U-Verse Was Cool Before Usage Caps</title><link href="https://www.cyrozap.com/2011/05/16/att-u-verse-was-cool-before-usage-caps/" rel="alternate"></link><updated>2011-05-16T19:08:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-05-16:2011/05/16/att-u-verse-was-cool-before-usage-caps/</id><summary type="html">&lt;p&gt;CAUTION: If you are easily offended, stop reading NOW. I'm about to go
on a rant.&lt;/p&gt;
&lt;p&gt;Sooooo... Apparently, AT&amp;amp;T is implementing 250 GB usage caps for all
U-Verse subscribers. I'm mad. It's already $60/month for the highest
speed Internet (around 24 Mbps). Why should I have a usage cap?
Ironically, I have unlimited bandwidth on my Verizon iPhone...&lt;/p&gt;
&lt;p&gt;Bandwidth caps are bad. Video streaming eats bandwidth. Downloading
games on Steam eats bandwidth. Hosting a website eats bandwidth.
Uploading photos eats bandwidth. The list goes on.&lt;/p&gt;
&lt;p&gt;Now that there's a cap, what am I going to do? Use those services less.&lt;/p&gt;
&lt;p&gt;Now, many people would say at this point, "get another ISP!" Ok, in my
area, that's... Optimum? No, thanks. Slow Internet + no free DVR + bad
support = Blergh. Those same people would say now, "cancel your internet
plan/switch to the minimum!" Ok, cut myself off from the Internet
entirely, that sounds good&amp;mdash;I can go to the library for that! Yippee!
We're going backwards!&lt;/p&gt;
&lt;p&gt;Let's say you lease a car. You drive around 30,000 miles per month. The
car lender, lacking funds, decides to add a new part to your lease that
charges you $2000 if you drive over a limit of 50,000 miles and $2000
every extra 5,000 miles you drive over that. You may not be affected and
think, "Well, I don't drive much, so I don't have to worry about that
charge." But what if you want to take a road trip, touring the U.S.?
Well, you can, but be prepared to pay $2000 or more purely because you
drove a lot&amp;mdash;and that's IN ADDITION to the money you'll spend on gas!
Want to go on a road trip now? Now that you're not going on that road
trip, the towns you were going to visit aren't going to get your money
(or that of many others, for that matter). Eventually, those towns will
become deserted and will die. Some would say at this point, "Why don't
you take a plane?" Well, plane trips are expensive and there are often
long delays, making them somewhat inconvenient.&lt;/p&gt;
&lt;p&gt;To sum up that extended metaphor, the car lender is AT&amp;amp;T, the amount you
drive in a month is your average bandwidth usage, the mile cap is the
bandwidth cap, the towns you would visit are the Internet services you
would use, and the plane is a box full of 50 DVDs&amp;mdash;its capacity is
almost 250GB (if you mailed it, you have effectively created a
high-bandwidth, high-latency connection).&lt;/p&gt;
&lt;p&gt;tl;dr:&lt;/p&gt;
&lt;p&gt;I know it's fully within your right to do so, but really, AT&amp;amp;T, thanks
for stifling innovation!&lt;/p&gt;</summary><category term="AT&amp;T"></category><category term="stupid"></category><category term="usage caps"></category></entry><entry><title>Flickr Support is AWESOME!</title><link href="https://www.cyrozap.com/2011/05/10/flickr-support-is-awesome/" rel="alternate"></link><updated>2011-05-10T11:59:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-05-10:2011/05/10/flickr-support-is-awesome/</id><summary type="html">&lt;p&gt;It took a few months working on this on and off, but I finally severed
my Flickr ID "cyrozap" from my Yahoo! account!&lt;/p&gt;
&lt;p&gt;I can now log in with my Google account and keep my screen name
(cyrozap) and my custom URL! O frabjous day! Callooh! Callay!&lt;/p&gt;</summary><category term="fixed"></category><category term="Flickr"></category><category term="Support"></category><category term="technical difficulties"></category></entry><entry><title>Speed Increase?</title><link href="https://www.cyrozap.com/2011/04/28/speed-increase/" rel="alternate"></link><updated>2011-04-28T00:29:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-04-28:2011/04/28/speed-increase/</id><summary type="html">&lt;p&gt;Well, I've recently had my Internet connection upgraded to 24 Mbps
downstream and 3 Mbps upstream from 3 Mbps downstream and 1 Mbps
upstream. I love it. Can you see a 3X speed increase in the blog's
loading time? No? It's the stupid slow server's fault. That will soon be
remedied, however, because I almost have sufficient funds to upgrade the
server. We so excited. ;D&lt;/p&gt;
&lt;p&gt;P.S. Follow me on Twitter&amp;mdash;I post there when what I'm posting is too
short to justify a blog post. If you already are following me, you know
about my fancy new old 60 Hz analog oscilloscope.&lt;/p&gt;</summary><category term="bandwidth"></category><category term="internet"></category><category term="server"></category><category term="speed"></category><category term="Twitter"></category><category term="upgrade"></category><category term="upgrades"></category></entry><entry><title>An actual technological endeavor!</title><link href="https://www.cyrozap.com/2011/04/04/an-actual-technological-endeavor/" rel="alternate"></link><updated>2011-04-04T16:26:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-04-04:2011/04/04/an-actual-technological-endeavor/</id><summary type="html">&lt;p&gt;Yesterday, while dropping off my broken dishwasher at my local appliance
outlet to be disposed of (the 10-year-old one broke and I was getting a
new one there), I noticed an old RPTV next to all the old junk. Score!
After getting permission, I brought it home, took out the useful bits
(the fresnel lens, the three RGB lens assemblies, the giant mirror, two
10W speakers) and took the rest back to the appliance place. Here are
some pictures of my little adventure:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2011/04/20110404-042528.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2011/04/20110404-042528-640x478.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2011/04/20110404-042543.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2011/04/20110404-042543-640x478.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2011/04/20110404-042600.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2011/04/20110404-042600-640x478.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2011/04/20110407-102124.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2011/04/20110407-102124-640x478.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2011/04/20110407-102251.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2011/04/20110407-102251-640x478.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2011/04/20110407-1021241.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2011/04/20110407-1021241-640x478.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;</summary><category term="lenses"></category><category term="mirror"></category><category term="rptv"></category><category term="tv"></category></entry><entry><title>Playing Wii Games On a PC Using Dolphin</title><link href="https://www.cyrozap.com/2011/03/07/playing-wii-games-on-a-pc-using-dolphin/" rel="alternate"></link><updated>2011-03-07T17:17:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-03-07:2011/03/07/playing-wii-games-on-a-pc-using-dolphin/</id><summary type="html">&lt;p&gt;I recently discovered that the Dolphin emulator is a lot better than
what it was back in the day. Now, it can play Wii games better than the
Wii itself!&lt;/p&gt;
&lt;p&gt;Over the weekend, I played 8-9 hours of The Legend of Zelda: Twilight
Princess. Only the UI was in HD, though&amp;mdash;the 3D-rendering looked like it
was only at 480p with no AA or AF. Super Smash Bros. Brawl worked fine
at 1080p and actually rendered in HD.&lt;/p&gt;</summary><category term="emulator"></category><category term="Gamecube"></category><category term="TLoZ"></category><category term="TLoZ:TP"></category><category term="Wii"></category></entry><entry><title>WordPress For iOS Version 2.7 Beta</title><link href="https://www.cyrozap.com/2011/03/03/wordpress-for-ios-version-2-7-beta/" rel="alternate"></link><updated>2011-03-03T22:44:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-03-03:2011/03/03/wordpress-for-ios-version-2-7-beta/</id><summary type="html">&lt;p&gt;Well, the 2.7 Beta of WordPress for iOS fixes a major problem I had with
v2.6.6. How? Before, the app kept giving me grief over my self-signed
SSL certificate. Today, I decided to install the beta by checking out
the SVN trunk and compiling the app for my iPhone (and then self-signing
that and installing it on my jailbroken device). FYI, this post was
written in the now-usable WordPress for iOS app on my iPhone 4.&lt;/p&gt;
&lt;p&gt;Expect the number of posts (and the number of posts with pictures) to
increase dramatically. Hey, maybe I'll be able to surpass the number of
posts &lt;a href="http://makerblock.com/"&gt;MakerBlock&lt;/a&gt; averages monthly (if I ever
upgrade my server)!&lt;/p&gt;</summary><category term="beta"></category><category term="fixed"></category><category term="iOS"></category><category term="iPhone"></category><category term="WordPress"></category></entry><entry><title>Verizon iPhone</title><link href="https://www.cyrozap.com/2011/02/16/verizon-iphone/" rel="alternate"></link><updated>2011-02-16T18:08:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-02-16:2011/02/16/verizon-iphone/</id><summary type="html">&lt;p&gt;I love my new Verizon iPhone 4! It's so much faster than the 1st gen
iPod touch! The extra RAM helps in addition to the 2.5X boost in CPU
clock speed.&lt;/p&gt;
&lt;p&gt;I also enjoy unlimited data ;D&lt;/p&gt;
&lt;p&gt;So many features...&lt;/p&gt;
&lt;p&gt;P.S.: I got it on the 7th.&lt;/p&gt;</summary><category term="iPhone"></category><category term="iPhone 4"></category><category term="Verizon"></category></entry><entry><title>My New PC Heatsink</title><link href="https://www.cyrozap.com/2011/02/02/my-new-pc-heatsink/" rel="alternate"></link><updated>2011-02-02T14:27:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-02-02:2011/02/02/my-new-pc-heatsink/</id><summary type="html">&lt;p&gt;A few months ago, I bough a Noctua NH-D14 heatsink for my i7 computer.
It's HUGE, but awesome. Here are some pics of the unboxing.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2011/01/IMG_2857.jpg"&gt;&lt;img alt="&amp;quot;The Box&amp;quot;" src="https://www.cyrozap.com/wp-uploads/2011/01/IMG_2857-480x640.jpg" title="&amp;quot;The Box&amp;quot;" /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2011/01/IMG_2859.jpg"&gt;&lt;img alt="&amp;quot;The Box&amp;quot; 2" src="https://www.cyrozap.com/wp-uploads/2011/01/IMG_2859-640x480.jpg" title="&amp;quot;The Box&amp;quot; 2" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2011/01/IMG_2860.jpg"&gt;&lt;img alt="Inside the Box" src="https://www.cyrozap.com/wp-uploads/2011/01/IMG_2860-640x480.jpg" title="Inside the Box" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2011/01/IMG_2862.jpg"&gt;&lt;img alt="Box-in-a-Box" src="https://www.cyrozap.com/wp-uploads/2011/01/IMG_2862-640x480.jpg" title="Box-in-a-Box" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2011/01/IMG_2864.jpg"&gt;&lt;img alt="Under that Box" src="https://www.cyrozap.com/wp-uploads/2011/01/IMG_2864-640x480.jpg" title="Under that Box" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2011/01/IMG_2865.jpg"&gt;&lt;img alt="Almost there!" src="https://www.cyrozap.com/wp-uploads/2011/01/IMG_2865-640x480.jpg" title="Almost there!" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2011/01/IMG_2866.jpg"&gt;&lt;img alt="Ta-da!" src="https://www.cyrozap.com/wp-uploads/2011/01/IMG_2866-640x480.jpg" title="Ta-da!" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2011/01/IMG_2869.jpg"&gt;&lt;img alt="Wow. It's big!" src="https://www.cyrozap.com/wp-uploads/2011/01/IMG_2869-640x480.jpg" title="Wow. It's big!" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2011/01/IMG_2870.jpg"&gt;&lt;img alt="Cool (Literally)!" src="https://www.cyrozap.com/wp-uploads/2011/01/IMG_2870-640x480.jpg" title="Cool (Literally)!" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2011/01/IMG_2873.jpg"&gt;&lt;img alt="A side view. Wow." src="https://www.cyrozap.com/wp-uploads/2011/01/IMG_2873-640x480.jpg" title="A side view. Wow." /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here are the "before" and "after" pics:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2011/01/IMG_2876.jpg"&gt;&lt;img alt="Before installation, with the crappy Intel cooler." src="https://www.cyrozap.com/wp-uploads/2011/01/IMG_2876-640x480.jpg" title="Before installation, with the crappy Intel cooler." /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2011/01/IMG_2877.jpg"&gt;&lt;img alt="Post-installation. Yeah, it's really big." src="https://www.cyrozap.com/wp-uploads/2011/01/IMG_2877-640x480.jpg" title="Post-installation. Yeah, it's really big." /&gt;&lt;/a&gt;&lt;/p&gt;</summary><category term="heatsink"></category><category term="i7"></category><category term="NH-D14"></category><category term="Noctua"></category></entry><entry><title>i7-950 + Sabertooth X58 + AMD HD 5850 Hackintosh Guide</title><link href="https://www.cyrozap.com/2011/01/27/i7-950-sabertooth-x58-amd-hd-5850-hackintosh-guide/" rel="alternate"></link><updated>2011-01-27T11:00:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-01-27:2011/01/27/i7-950-sabertooth-x58-amd-hd-5850-hackintosh-guide/</id><summary type="html">&lt;p&gt;&lt;strong&gt;UPDATE November 6, 2011: This guide is now obsolete. There is now an
official, working DSDT you can get from tonymacx86.com. All you have to
do is follow &lt;a href="http://tonymacx86.blogspot.com/2011/10/unibeast-install-mac-os-x-lion-using.html"&gt;this guide&lt;/a&gt;
and use the new DSDT (make sure you're on the latest BIOS, 1304). I have
successfully followed that guide for my Sabertooth X58 with i7-950, 12
GB 1600 MHz RAM, AMD Radeon HD 5850, and 1304 BIOS. I will be keeping
the guide posted here because I spent a lot of time making it and I
don't just want to delete it and break a bunch of links. Also, it brings
a bunch of traffic to the site. ;)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Note: Make sure you only have 2GB of RAM installed when you install OS
X. After OS X is installed, you can put your RAM back.&lt;/p&gt;
&lt;p&gt;Note 2: When I set this up, my BIOS was 0602. &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Buy a &lt;a href="http://www.amazon.com/gp/product/B001AMHWP8?ie=UTF8&amp;amp;tag=cyrstecpro-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=B001AMHWP8"&gt;Mac OS X Install Disk&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Get &lt;a href="http://www.tonymacx86.com/Public/iBoot.zip"&gt;iBoot&lt;/a&gt; &amp;amp;
&lt;a href="http://www.tonymacx86.com/Public/MultiBeast.zip"&gt;MultiBeast&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Get the &lt;a href="http://www.tonymacx86.com/viewtopic.php?p=69615#p69615"&gt;DSDT.aml&lt;/a&gt; file.
You need to be logged in to the tonymacx86 forums to do that. It's at
the bottom of the linked post.&lt;/li&gt;
&lt;li&gt;Boot the computer using iBoot.&lt;/li&gt;
&lt;li&gt;Once iBoot is booted, eject the disk and insert the OS X disk, then
press F5.&lt;/li&gt;
&lt;li&gt;Select the Install disk.&lt;/li&gt;
&lt;li&gt;The installer will run. Click Utilities-&gt;Disk Utility and format
your HDD to Mac Journaled FS. Make sure to click options and set it to
GPT.&lt;/li&gt;
&lt;li&gt;Once that's done, quit Disk Utility and resume installation.&lt;/li&gt;
&lt;li&gt;Finish the installation.&lt;/li&gt;
&lt;li&gt;Reboot, again booting with iBoot.&lt;/li&gt;
&lt;li&gt;This time, select your new OS X HDD.&lt;/li&gt;
&lt;li&gt;It will boot.&lt;/li&gt;
&lt;li&gt;Put the DSDT.aml file on the desktop.&lt;/li&gt;
&lt;li&gt;Download and install the &lt;a href="http://support.apple.com/downloads/DL1399/en_US/MacOSXUpdCombo10.6.8.dmg"&gt;Mac OS X 10.6.8 Combo Update&lt;/a&gt;,
but DO NOT REBOOT.&lt;/li&gt;
&lt;li&gt;Use MultiBeast with these settings on your OS X HDD:
&lt;a href="https://www.cyrozap.com/wp-uploads/2011/01/MultiBeast-Config.png"&gt;&lt;img alt="MultiBeast Config" src="https://www.cyrozap.com/wp-uploads/2011/01/MultiBeast-Config-391x640.png" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Remove the iBoot disk and reboot, this time booting from the OS X
HDD.&lt;/li&gt;
&lt;li&gt;Success!&lt;/li&gt;
&lt;/ol&gt;</summary><category term="hackintosh"></category><category term="HD 5850"></category><category term="Sabertooth X58"></category></entry><entry><title>What I Did Today</title><link href="https://www.cyrozap.com/2011/01/26/what-i-did-today/" rel="alternate"></link><updated>2011-01-26T22:34:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-01-26:2011/01/26/what-i-did-today/</id><summary type="html">&lt;p&gt;I...&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Started using Skeinforge 35 (with issues)  &lt;/li&gt;
&lt;li&gt;Fixed a 17" Dell LCD  &lt;/li&gt;
&lt;li&gt;Played TF2&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Correction:&lt;br /&gt;
I also made &lt;a href="http://www.thingiverse.com/thing:5818"&gt;the Whistlehookopener&lt;/a&gt;. (Thanks,
MakerBlock, I almost forgot!)&lt;/p&gt;</summary><category term="fixed"></category><category term="LCD"></category><category term="skeinforge"></category><category term="TF2"></category></entry><entry><title>Updated Sabertooth X58 Files</title><link href="https://www.cyrozap.com/2011/01/19/updated-sabertooth-x58-files/" rel="alternate"></link><updated>2011-01-19T15:49:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-01-19:2011/01/19/updated-sabertooth-x58-files/</id><summary type="html">&lt;p&gt;I updated the files to what I'm using now. You can use the same link to
the modified files as in the previous post. &lt;a href="http://www.tonymacx86.com/viewtopic.php?p=67618#p67618"&gt;For the updated files.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If these files don't work, you can always use the ones made by other
people. There are a few more DSDT's for this board floating around now.&lt;/p&gt;</summary><category term="hackintosh"></category><category term="Sabertooth X58"></category></entry><entry><title>DSDT files for Sabertooth X58 have been uploaded at tonymacx86.com</title><link href="https://www.cyrozap.com/2011/01/06/dsdt-files-for-sabertooth-x58-have-been-uploaded-at-tonymacx86-com/" rel="alternate"></link><updated>2011-01-06T22:41:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-01-06:2011/01/06/dsdt-files-for-sabertooth-x58-have-been-uploaded-at-tonymacx86-com/</id><summary type="html">&lt;p&gt;I extract the DSDT data from the latest Sabertooth X58 BIOS. You're
welcome. &lt;a href="http://www.tonymacx86.com/viewtopic.php?p=67608#p67608"&gt;For the unmodified files.&lt;/a&gt;
&lt;a href="http://www.tonymacx86.com/viewtopic.php?p=67618#p67618"&gt;For the modified files.&lt;/a&gt;&lt;/p&gt;</summary><category term="DSDT"></category><category term="hackintosh"></category><category term="osx86"></category><category term="Sabertooth X58"></category></entry><entry><title>Surveys seem popular in the DIY 3D-printing community...</title><link href="https://www.cyrozap.com/2011/01/05/surveys-seem-popular-in-the-diy-3d-printing-community/" rel="alternate"></link><updated>2011-01-05T19:34:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2011-01-05:2011/01/05/surveys-seem-popular-in-the-diy-3d-printing-community/</id><summary type="html">&lt;iframe src="https://spreadsheets.google.com/embeddedform?formkey=dDJhaFpURldpLWJNSE8xRlphVUF2Ync6MQ" width="640" height="649" frameborder="0" marginheight="0" marginwidth="0"&gt;Loading...&lt;/iframe&gt;</summary><category term="data"></category><category term="survey"></category></entry><entry><title>What I've Been Doing Since Christmas</title><link href="https://www.cyrozap.com/2010/12/29/what-ive-been-doing-since-christmas/" rel="alternate"></link><updated>2010-12-29T14:19:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-12-29:2010/12/29/what-ive-been-doing-since-christmas/</id><summary type="html">&lt;p&gt;If you've noticed that I haven't been posting much recently, it's
because of all the cool stuff I got for Christmas. First, I got an
&lt;a href="http://www.amazon.com/Apple-MC572LL-A-TV/dp/B001FA1NK0%3FSubscriptionId%3DAKIAJFBZNQIKLFHMFEXA%26tag%3Dcyrstecpro-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB001FA1NK0"&gt;Apple TV (2010)&lt;/a&gt;.
This, as you may or may not already know, runs iOS 4 and is most
electrically smilar to the iPad. For a $99 device, it sure packs quite
a punch. It has a 1GHz Apple A4 processor, 8GB of flash storage, and
1080p hardware decoding and output, not to mention that it's running iOS
4 (yes, I already said that, but it's important). I'm still waiting for
an untethered 4.2.1 AppleTV jailbreak, but once that's available, I want
to see what I can do with it. Hey, since it's an iPad on the inside,
maybe it can use USB keyboards... Hmm...&lt;/p&gt;
&lt;p&gt;Among other things, of note were the &lt;a href="http://www.amazon.com/Asus-X58-Reliability-Motherboard-Sabertooth/dp/B00407ZUUY%3FSubscriptionId%3DAKIAJFBZNQIKLFHMFEXA%26tag%3Dcyrstecpro-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB00407ZUUY"&gt;ASUS Sabertooth X58&lt;/a&gt;
motherboard and the &lt;a href="http://www.amazon.com/Corsair-PC3-12800-1600MHz-240-Pin-CMX6GX3M3A1600C9/dp/B002LZ1FPG%3FSubscriptionId%3DAKIAJFBZNQIKLFHMFEXA%26tag%3Dcyrstecpro-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB002LZ1FPG"&gt;Corsair 6 GB 1600MHz DDR3 Triple Channel Memory Kit&lt;/a&gt;.
The RAM is great (and fast!) and the motherboard is really easy to use
to overclock. The &lt;a href="http://www.amazon.com/Intel-3-06GHz-LGA1366-Desktop-Processor/dp/B002A6G3V2%3FSubscriptionId%3DAKIAJFBZNQIKLFHMFEXA%26tag%3Dcyrstecpro-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB002A6G3V2"&gt;Intel Core i7 950&lt;/a&gt;
I bought is great and I got it at a great price, too. Normally, it sells
for over $300. Online, it usually sells under that. At &lt;a href="http://www.microcenter.com/"&gt;Micro Center&lt;/a&gt;, it was &lt;a href="http://www.microcenter.com/single_product_results.phtml?product_id=0346210"&gt;listed at $229.99&lt;/a&gt;,
but on Boxing Day in the store, it was $199.99. Of course, it was a
long drive in the snow to get there, but for the price it was more than
worth it.&lt;/p&gt;
&lt;p&gt;I already posted about &lt;a href="https://www.cyrozap.com/2010/12/27/righty-tighty-lefty-loosey/"&gt;my heatsink problem&lt;/a&gt;
(emphasis on "my" and "problem").&lt;/p&gt;
&lt;p&gt;Team Fortress 2 runs quite nicely on my upgraded computer (which I'm
using with a 380W "80 Plus" PSU, further proof that no one needs more
than a 500W PSU unless they're using two CPUs) even with all the
settings turned on max. I even have "Wait for Vertical Sync" turned on,
which means I get a max of 60 fps, but because of my awesome setup, I
get 60 fps consistently and there's no "tearing" of the image.&lt;/p&gt;
&lt;p&gt;As usual, my server is slow. I still have the parts that I took out of
my computer from when I upgraded it, but they won't fit in the
highy-proprietary Dell case that my current server resides in. I would
love to buy the &lt;a href="http://www.amazon.com/Thermaltake-Advance-Mid-Tower-Chassis-Management/dp/B00468XTAK%3FSubscriptionId%3DAKIAJFBZNQIKLFHMFEXA%26tag%3Dcyrstecpro-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB00468XTAK"&gt;Thermaltake A60 Computer Case&lt;/a&gt;
for my i7 parts and hand down my current case to my server, but I have
other purchasing priorities at the moment. If anyone wants to buy that
case for me, let me know ;D&lt;/p&gt;
&lt;p&gt;Hopefully, once I start using the new server parts, I'll be able to
simultaneously run a Team Fortress 2 server and the webserver.&lt;/p&gt;</summary><category term="AppleTV"></category><category term="ASUS"></category><category term="Christmas"></category><category term="i7"></category><category term="i7-950"></category><category term="Intel"></category><category term="iOS"></category><category term="RAM"></category><category term="Sabertooth X58"></category><category term="server"></category><category term="Team Fortress 2"></category><category term="TF2"></category><category term="Thermaltake A60"></category></entry><entry><title>Righty-tighty, Lefty-loosey.</title><link href="https://www.cyrozap.com/2010/12/27/righty-tighty-lefty-loosey/" rel="alternate"></link><updated>2010-12-27T17:03:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-12-27:2010/12/27/righty-tighty-lefty-loosey/</id><summary type="html">&lt;p&gt;It's a good idea to remember this when installing Intel's stock heatsink
for LGA1366 Core i7 processors. First turn the pegs to the left, then
push down on a peg and then turn it to the right. Repeat for the other
pegs.&lt;/p&gt;
&lt;p&gt;I only figured this out AFTER my i7-950 was idling at 55C and maxing out
at 99C (it's supposed to idle between 40 and 50C and max out between 80
and 90C). It's always good to check if your heatsink is seated all the
way BEFORE you start using your computer.&lt;/p&gt;
&lt;p&gt;I do enjoy my new rig, though.&lt;/p&gt;
&lt;p&gt;Intel Core i7-950 Processor&lt;br /&gt;
ASUS Sabertooth X58 Motherboard&lt;br /&gt;
Corsair 3 x 2GB Triple-channel DDR3 1600MHz RAM&lt;/p&gt;</summary><category term="CPU"></category><category term="fixed"></category><category term="i7"></category><category term="i7-950"></category><category term="Intel"></category><category term="LGA1366"></category><category term="processor"></category></entry><entry><title>What an excellent day!</title><link href="https://www.cyrozap.com/2010/12/14/what-an-excellent-day/" rel="alternate"></link><updated>2010-12-14T21:25:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-12-14:2010/12/14/what-an-excellent-day/</id><summary type="html">&lt;p&gt;Apparently, &lt;a href="http://blog.makerbot.com/2010/12/14/makerbot-unicorn-pen-plotter-challenge-winners/"&gt;I won a Unicorn&lt;/a&gt;.
The pen plotter, that is. Of course, I couldn't stop thinking of...&lt;/p&gt;
&lt;p&gt;&lt;a href="http://guardiansandi.deviantart.com/art/Damn-You-Robot-Unicorn-156225217"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2010/12/Damn_You_Robot_Unicorn_by_guardiansandi-640x465.jpeg" title="&amp;quot;Damn You Robot Unicorn&amp;quot; by guardiansandi" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;THIS.&lt;/p&gt;
&lt;p&gt;In other news, I received my Crosshair II Formula motherboard today (I
RMA'd my M2N32-SLI Deluxe at the beginning of November, right before its
3 year warranty ran out; of course, they weren't able to repair it nor
were they able to replace it, so they gave me a slightly better model).
If you want to know why the Crosshair II Formula is so nice, Google it.
I really like that I'm able to overclock my AMD Athlon 64 X2 4200+ from
2.21 GHz to 2.54 GHz, raising my Windows Experience index (in the CPU
category) from 4.9 to a 5.8.&lt;/p&gt;
&lt;p&gt;Also, I got Eyefinity working on my two 1080p 23" monitors.&lt;/p&gt;
&lt;p&gt;Time to go play Team Fortress 2!&lt;/p&gt;</summary><category term="AMD"></category><category term="Athlon"></category><category term="ATI"></category><category term="Crosshair"></category><category term="dual monitors"></category><category term="eyefinity"></category><category term="MakerBot"></category><category term="overclocking"></category><category term="pen"></category><category term="plotter"></category><category term="Unicorn"></category></entry><entry><title>Early Christmas Gifts Are Awesome</title><link href="https://www.cyrozap.com/2010/12/12/early-christmas-gifts-are-awesome/" rel="alternate"></link><updated>2010-12-12T14:34:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-12-12:2010/12/12/early-christmas-gifts-are-awesome/</id><summary type="html">&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/12/DSC00010.jpg"&gt;&lt;img alt="The MK5 parts kit!" src="https://www.cyrozap.com/wp-uploads/2010/12/DSC00010-640x480.jpg" title="The MK5 parts kit!" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;My dad got me a MK5 kit for Christmas after my MK4 broke for the 3rd
time in a few months (PTFE insulators are annoying&amp;mdash;I think my
thermistor table was wrong). I have since put it together and am
currently printing out the &lt;a href="http://www.thingiverse.com/thing:5002"&gt;Holiday Prusa Mendel on Thingiverse&lt;/a&gt; with it. Talk about
the gift that keeps on giving! :)&lt;/p&gt;
&lt;p&gt;However, there were some problems I noticed:&lt;br /&gt;
- Thermistor read wrong temps&amp;mdash;ABS now likes to melt at 200C&lt;br /&gt;
- Solder joints on power resistors melt partially when running at 200C&lt;br /&gt;
- The online instructions for putting it together didn't account for
certain changes in the kit; for instance, it comes with two crimp
connectors that are never explained.&lt;/p&gt;
&lt;p&gt;I did make some improvements, however:&lt;br /&gt;
- Added thermal paste between power resistors and aluminum block&lt;br /&gt;
- Epoxy used to glue together base-plates to the legs of the extruder
holder&lt;/p&gt;
&lt;p&gt;My current grievances:&lt;br /&gt;
- I don't like that the solder joints are melting and cooling&amp;mdash;I don't
want to have the risk of breathing in those bad fumes.&lt;br /&gt;
- Teflon on nozzle is coming off tip&lt;/p&gt;
&lt;p&gt;Final thoughts:&lt;br /&gt;
- If it doesn't work flawlessly, at least it works a lot more reliably
than the MK4!&lt;/p&gt;
&lt;p&gt;Interesting things I noticed today while writing this:&lt;br /&gt;
- The server is running quite quickly...&lt;br /&gt;
- The 5.1MP Sony Cyber-shot DSC-P93 I used to take the picture in this
post (I got it for free from a friend of my dad) has hardly any image
sensor noise. This is amazing compared to the amount of sensor noise in
my 5.0MP Canon PowerShot S2 IS (consumer-grade DSLR).&lt;/p&gt;</summary><category term="Christmas"></category><category term="extruder"></category><category term="fixed"></category><category term="holiday"></category><category term="MakerBot"></category><category term="Mendel"></category><category term="MK5"></category><category term="Prusa Mendel"></category><category term="RepRap"></category><category term="review"></category><category term="server"></category></entry><entry><title>I'm selling an iPhone/iPod/iPad stand design!</title><link href="https://www.cyrozap.com/2010/12/05/im-selling-an-iphoneipodipad-stand-design/" rel="alternate"></link><updated>2010-12-05T16:35:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-12-05:2010/12/05/im-selling-an-iphoneipodipad-stand-design/</id><summary type="html">&lt;p&gt;I recently received a copy of Alibre Design Expert 2011 (it's an early
Christmas gift from my mom). It's the Educational version, so instead of
$1400 it was $200. That's not bad for a CAD package with a license I
can use on 3 PCs without needing it to renew it every few years.&lt;/p&gt;
&lt;p&gt;So, trying to find a use for this, I decided to make an iPhone/iPod/iPad
stand using the sheet metal designing tool (only available in the Expert
version, I think).&lt;/p&gt;
&lt;p&gt;Since I haven't found a way to export my design as a DXF, I have been
unable to make this out of metal (or wood&amp;mdash;I'll probably prototype it in
wood or on my Makerbot). So, lacking this functionality, I exported it
as an STL, scaled it up, and
&lt;a href="http://www.ponoko.com/design-your-own/products/idevice-stand-4999"&gt;posted it on Ponoko&lt;/a&gt;
for $1.99 (I think it's a fair price for a few hours work and a
nicely-designed stand). You can buy it and then print it on a MakerBot
or other 3D-printer. However, it's around 12cm tall, so this will push
your machine. If you're outrageously wealthy, you can have Ponoko make
it for you, but I dont think it's worth it.&lt;/p&gt;
&lt;p&gt;At some point I'll get Alibre to output to DXF so I can allow people to
make this out of sheet metal, wood, sheet plastic, and other
flat-but-bendable materials. That would be better worth the $1.99.&lt;/p&gt;
&lt;p&gt;Don't give me grief on the license&amp;mdash;it's more than likely I'll change it
to something more open. Right now, I'm just playing it safe.&lt;/p&gt;</summary><category term="Alibre"></category><category term="iDevice"></category><category term="iPad"></category><category term="iPhone"></category><category term="iPod"></category><category term="MakerBot"></category><category term="Ponoko"></category><category term="stand"></category></entry><entry><title>An interesting idea I had...</title><link href="https://www.cyrozap.com/2010/12/01/an-interesting-idea-i-had/" rel="alternate"></link><updated>2010-12-01T20:27:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-12-01:2010/12/01/an-interesting-idea-i-had/</id><summary type="html">&lt;p&gt;So I recently saw the
&lt;a href="http://rossum.posterous.com/a-smarter-display"&gt;smartlcd&lt;/a&gt; project and
immediately thought of the
&lt;a href="http://spritesmods.com/?art=macsearm&amp;amp;page=5"&gt;Mac SE/ARM DIY USB GPU&lt;/a&gt;.
If you could modify and run the GPU firmware on the smartlcd, you could
have a bunch of tiny, inexpensive, USB screens. I would do this, but I
have neither the time nor the programming skill.&lt;/p&gt;</summary><category term="ARM"></category><category term="frame buffer"></category><category term="idea"></category><category term="smartlcd"></category><category term="USB"></category></entry><entry><title>Hack a Day Classifieds really work!</title><link href="https://www.cyrozap.com/2010/11/28/hack-a-day-classifieds-really-work/" rel="alternate"></link><updated>2010-11-28T15:40:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-11-28:2010/11/28/hack-a-day-classifieds-really-work/</id><summary type="html">&lt;p&gt;Well, the DIY-intosh sold! I bet you're all rejoicing that I won't be
trying to pawn off my stuff on you for a while. It's really amazing how
it sold within a few days of listing it.&lt;/p&gt;
&lt;p&gt;In other news, I fixed up a 19" 4:3 aspect ratio VGA monitor with
composite, coax TV, and SCART inputs (it's some Samsung 910-something).
It only needed 6 capacitors replaced, totaling $3.40 + $2 shipping (or
something like that). Seeing as I bought the thing for $17, this makes
it a steal. It also only has one grey pixel! &lt;em&gt;This&lt;/em&gt; is why I work with
hardware!&lt;/p&gt;
&lt;p&gt;Sorry about the server downtime! That was rather embarrassing...&lt;/p&gt;</summary><category term="classifieds"></category><category term="DIY-intosh"></category><category term="fixed"></category><category term="hackaday"></category><category term="sold"></category><category term="technical difficulties"></category></entry><entry><title>Updates on the MakerBot and an Interesting New Service from Hack a Day</title><link href="https://www.cyrozap.com/2010/11/18/updates-on-the-makerbot-and-an-interesting-new-service-from-hack-a-day/" rel="alternate"></link><updated>2010-11-18T22:16:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-11-18:2010/11/18/updates-on-the-makerbot-and-an-interesting-new-service-from-hack-a-day/</id><summary type="html">&lt;p&gt;Well, if you haven't already noticed, Hack a Day just started its
classified ads service over at
&lt;a href="http://classifieds.hackaday.com/"&gt;classifieds.hackaday.com&lt;/a&gt;.
Essentially, it's Craigslist, but for the hackers, modders, and makers
of things. I, understanding the full magnitude of the number of daily
visitors to Hack a Day, &lt;a href="http://classifieds.hackaday.com/item/26"&gt;seized the opportunity to advertise my DIY-intosh&lt;/a&gt; (my ebay auction
recently ended). Why?&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;It needs to be sold and ebay isn't working.&lt;/li&gt;
&lt;li&gt;I don't want tech support calls from the people I'm selling it to.&lt;/li&gt;
&lt;li&gt;People like me are comfortable with electronics that aren't fully
enclosed.&lt;/li&gt;
&lt;li&gt;Hack a Day's huge traffic and the fact that this service was just
created means that there would be a large number of visitors to the new
part of the site in a small amount of time.&lt;/li&gt;
&lt;li&gt;Because of the current lack of items for sale there, my DIY-intosh
would stand out and be noticed.&lt;/li&gt;
&lt;li&gt;People that would be more willing to buy my DIY-intosh would be
going there (your average ebayer isn't going to want to buy a computer
built from laptop parts without tech support).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;tl;dr:&lt;/p&gt;
&lt;p&gt;This is perfect for my DIY-intosh.&lt;/p&gt;
&lt;p&gt;In other news, my MakerBot's plastruder has broken yet again and I'm
seriously considering buying the MK5 extruder (possibly with the funds
from the sale of the DIY-intosh).&lt;/p&gt;</summary><category term="classifieds"></category><category term="DIY-intosh"></category><category term="hackaday"></category><category term="Mac"></category><category term="MakerBot"></category><category term="selling"></category></entry><entry><title>DIY-intosh for Sale on Ebay... Again...</title><link href="https://www.cyrozap.com/2010/11/04/diy-intosh-for-sale-on-ebay-again/" rel="alternate"></link><updated>2010-11-04T17:42:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-11-04:2010/11/04/diy-intosh-for-sale-on-ebay-again/</id><summary type="html">&lt;p&gt;&lt;a href="http://item.ebay.com/120643162568"&gt;http://item.ebay.com/120643162568&lt;/a&gt;&lt;/p&gt;</summary><category term="DIY-intosh"></category><category term="selling"></category></entry><entry><title>WorkBench Update + New 3D-Prints!</title><link href="https://www.cyrozap.com/2010/11/03/workbench-update-new-3d-prints/" rel="alternate"></link><updated>2010-11-03T17:36:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-11-03:2010/11/03/workbench-update-new-3d-prints/</id><summary type="html">&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/11/1102001628.jpg"&gt;&lt;img alt="3D-printed 2001 monolith" src="https://www.cyrozap.com/wp-uploads/2010/11/1102001628-640x480.jpg" title="The Monolith!" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/11/1102001352.jpg"&gt;&lt;img alt="3D-printed wind pennant" src="https://www.cyrozap.com/wp-uploads/2010/11/1102001352-640x480.jpg" title="The working prototype!" /&gt;&lt;/a&gt;&lt;/p&gt;</summary><category term="laptop"></category><category term="MacBook"></category><category term="MacBook Pro"></category><category term="MakerBot"></category><category term="workbench"></category></entry><entry><title>Workbench Update</title><link href="https://www.cyrozap.com/2010/10/29/workbench-update/" rel="alternate"></link><updated>2010-10-29T09:08:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-10-29:2010/10/29/workbench-update/</id><summary type="html">&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/10/1028002123.jpg"&gt;&lt;img alt="My workbench" src="https://www.cyrozap.com/wp-uploads/2010/10/1028002123-640x480.jpg" title="Slightly less spacious..." /&gt;&lt;/a&gt;&lt;/p&gt;</summary><category term="MakerBot"></category><category term="update"></category><category term="workbench"></category></entry><entry><title>Interesting data...</title><link href="https://www.cyrozap.com/2010/10/22/interesting-data/" rel="alternate"></link><updated>2010-10-22T00:30:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-10-22:2010/10/22/interesting-data/</id><summary type="html">&lt;p&gt;According to the Feedburner data, people really like it when I talk
about and/or share pictures of my workbench. Well, get ready.&lt;/p&gt;</summary><category term="workbench"></category></entry><entry><title>The DIY-intosh is now on ebay!</title><link href="https://www.cyrozap.com/2010/10/20/the-diy-intosh-is-now-on-ebay/" rel="alternate"></link><updated>2010-10-20T22:59:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-10-20:2010/10/20/the-diy-intosh-is-now-on-ebay/</id><summary type="html">&lt;p&gt;&lt;a href="http://item.ebay.com/120636704512"&gt;http://item.ebay.com/120636704512&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Well, it's there now.&lt;/p&gt;</summary><category term="DIY-intosh"></category><category term="Mac"></category><category term="MacBook"></category></entry><entry><title>New Workbench/MakerBot Setup</title><link href="https://www.cyrozap.com/2010/10/20/new-workbenchmakerbot-setup/" rel="alternate"></link><updated>2010-10-20T15:13:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-10-20:2010/10/20/new-workbenchmakerbot-setup/</id><summary type="html">&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/10/1020001505.jpg"&gt;&lt;img alt="So cool..." src="https://www.cyrozap.com/wp-uploads/2010/10/1020001505-640x480.jpg" title="New Workbench" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Well, I got a new workbench. Now that my thermal barrier has arrived, I
can get to work repairing my extruder&amp;mdash;at my new workbench! Then I can
start printing cool stuff again!&lt;/p&gt;</summary><category term="fixed"></category><category term="MakerBot"></category><category term="workbench"></category></entry><entry><title>Hooray!</title><link href="https://www.cyrozap.com/2010/10/19/hooray/" rel="alternate"></link><updated>2010-10-19T20:38:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-10-19:2010/10/19/hooray/</id><summary type="html">&lt;p&gt;My new thermal barrier will arrive tomorrow. Then, I'll be able to start
experimenting with support structures. Yay!&lt;/p&gt;</summary><category term="fixed"></category><category term="MakerBot"></category><category term="parts"></category><category term="technical difficulties"></category></entry><entry><title>Video from World Maker Faire NYC 2010</title><link href="https://www.cyrozap.com/2010/10/10/video-from-world-maker-faire-nyc-2010/" rel="alternate"></link><updated>2010-10-10T15:40:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-10-10:2010/10/10/video-from-world-maker-faire-nyc-2010/</id><summary type="html">&lt;p&gt;Well, I took a bunch of video and, using my newly purchased 15.4"
Late-2006 MacBook Pro and iMovie, I took all the clips from my DV
camcorder and made this:&lt;/p&gt;
&lt;p&gt;&lt;div class="videobox"&gt;
                &lt;iframe width="640" height="390"
                    src='https://www.youtube.com/embed/FxmqR4Bf9F4'
                    frameborder='0' webkitAllowFullScreen mozallowfullscreen
                    allowFullScreen&gt;
                &lt;/iframe&gt;
            &lt;/div&gt;&lt;/p&gt;</summary></entry><entry><title>Want some laptop RAM?</title><link href="https://www.cyrozap.com/2010/10/04/want-some-laptop-ram/" rel="alternate"></link><updated>2010-10-04T22:28:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-10-04:2010/10/04/want-some-laptop-ram/</id><summary type="html">&lt;p&gt;I'm selling a stick of 1 GB DDR2 PC2-5300 (667MHz) RAM
&lt;a href="http://item.ebay.com/120630082501"&gt;here&lt;/a&gt;.&lt;/p&gt;</summary><category term="RAM"></category><category term="selling"></category></entry><entry><title>A Bunch of Updates</title><link href="https://www.cyrozap.com/2010/10/01/a-bunch-of-updates/" rel="alternate"></link><updated>2010-10-01T16:30:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-10-01:2010/10/01/a-bunch-of-updates/</id><summary type="html">&lt;p&gt;World Maker Faire NYC was awesome! I took a ton of video, but I still
need to edit out all the boring stuff.&lt;/p&gt;
&lt;p&gt;I've also now listed my &lt;a href="http://item.ebay.com/120628330206"&gt;refurbished &amp;amp; unlocked Blackberry&lt;/a&gt;
on ebay ($150 + shipping), though the ebay fees are really high, so I'd
prefer it if you'd buy it on &lt;a href="http://sellsimp.ly/9f"&gt;SellSimply&lt;/a&gt;. In
fact, I've dropped the price on the &lt;a href="http://sellsimp.ly/9f"&gt;SellSimply one&lt;/a&gt;
to $130 with Free USPS Priority Mail Flat-rate shipping (I only ship free
to the US, though).&lt;/p&gt;
&lt;p&gt;I'll be selling some CRT monitors soon (one of them is a 21" one with
VGA, BNC, and RS232 connectors) and I'll let you all know when I'm
selling them.&lt;/p&gt;
&lt;p&gt;If you're interested in a cool-looking 23" ASUS LCD screen, let me know.&lt;/p&gt;
&lt;p&gt;If you're wondering why I'm selling all this stuff, it's because I
recently bought a late-2006 15" MacBook Pro to replace my DIY-intosh and
I need the money. I really like how well Macs control my Makerbot (a lot
better than my current Linux computers) and I also like how they run so
much better/smoothly in general.&lt;/p&gt;</summary><category term="Blackberry"></category><category term="CRT"></category><category term="MacBook Pro"></category><category term="MakerBot"></category><category term="selling"></category><category term="RepRap"></category><category term="SellSimply"></category><category term="WMFNYC2010"></category></entry><entry><title>The DIY-intosh is now up for sale!</title><link href="https://www.cyrozap.com/2010/09/27/the-diy-intosh-is-now-up-for-sale/" rel="alternate"></link><updated>2010-09-27T10:46:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-09-27:2010/09/27/the-diy-intosh-is-now-up-for-sale/</id><summary type="html">&lt;p&gt;Well, it's now on sale on SellSimply at &lt;a href="http://sellsimp.ly/ae"&gt;http://sellsimp.ly/ae&lt;/a&gt;.&lt;/p&gt;</summary><category term="DIY-intosh"></category><category term="selling"></category></entry><entry><title>World Maker Faire NYC</title><link href="https://www.cyrozap.com/2010/09/24/world-maker-faire-nyc/" rel="alternate"></link><updated>2010-09-24T22:24:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-09-24:2010/09/24/world-maker-faire-nyc/</id><summary type="html">&lt;p&gt;Yes, I'm going, but I won't be presenting. I'll probably be hanging out
around the MakerBot/3D-Printer Village areas.&lt;/p&gt;</summary><category term="Maker Faire"></category><category term="MakerBot"></category></entry><entry><title>Well it's about time... "Future of MakerBot" Meeting Recap</title><link href="https://www.cyrozap.com/2010/09/20/well-its-about-time-future-of-makerbot-meeting-recap/" rel="alternate"></link><updated>2010-09-20T22:12:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-09-20:2010/09/20/well-its-about-time-future-of-makerbot-meeting-recap/</id><summary type="html">&lt;p&gt;Two weeks ago, on Wednesday, there was the "Future of MakerBot" meeting.
It was fun, I got to meet some other operators, and we all got to
provide our input into the future of the MakerBot. Essentially, we
toured around MBI, went through some introductions, and talked about
what we wanted and didn't want in the future for MakerBots.&lt;/p&gt;
&lt;p&gt;To all those that were there, I'm sorry I talked so much! I can go on
and on about things sometimes...&lt;/p&gt;
&lt;p&gt;Here are some pictures:&lt;/p&gt;
&lt;p&gt;&lt;embed type="application/x-shockwave-flash" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" width="600" height="400" flashvars="host=picasaweb.google.com&amp;amp;hl=en_US&amp;amp;feat=flashalbum&amp;amp;RGB=0x000000&amp;amp;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Fcyrozap%2Falbumid%2F5516099831369087649%3Falt%3Drss%26kind%3Dphoto%26hl%3Den_US" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;
&lt;/embed&gt;&lt;/p&gt;</summary><category term="Bot Cave"></category><category term="future"></category><category term="MakerBot"></category><category term="MBI"></category><category term="next-gen"></category><category term="tour"></category></entry><entry><title>Anyone interested in buying the DIY-intosh?</title><link href="https://www.cyrozap.com/2010/09/18/anyone-interested-in-buying-the-diy-intosh/" rel="alternate"></link><updated>2010-09-18T11:02:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-09-18:2010/09/18/anyone-interested-in-buying-the-diy-intosh/</id><summary type="html">&lt;p&gt;Well, I kinda want to buy a more portable Mac (an older 17" MacBook
Pro), so I'm going to be selling this for $400. Why $400? Well, I
actually built it for just over $300 and similar Macs are over that
price. It's really great at running a MakerBot, and it's good for iPhone
development, too.&lt;/p&gt;
&lt;h4&gt;Specs:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;2.0 GHz Intel Core Duo Processor  &lt;/li&gt;
&lt;li&gt;2 GB of DDR2 667 MHz RAM  &lt;/li&gt;
&lt;li&gt;Bluetooth  &lt;/li&gt;
&lt;li&gt;Wireless N networking  &lt;/li&gt;
&lt;li&gt;100 GB 7200 RPM SATA HDD  &lt;/li&gt;
&lt;li&gt;2 USB ports  &lt;/li&gt;
&lt;li&gt;1 Firewire 400 port  &lt;/li&gt;
&lt;li&gt;1 Mini-DVI port  &lt;/li&gt;
&lt;li&gt;Mic In and Audio Out ports  &lt;/li&gt;
&lt;li&gt;10/100 Ethernet port  &lt;/li&gt;
&lt;li&gt;Magsafe power connector  &lt;/li&gt;
&lt;li&gt;OS X Snow Leopard pre-installed&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;What it will come with in the box:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;DIY-intosh  &lt;/li&gt;
&lt;li&gt;A 60W MagSafe PSU  &lt;/li&gt;
&lt;li&gt;OS X Snow Leopard Disk  &lt;/li&gt;
&lt;li&gt;A Mini-DVI to DVI Adapter  &lt;/li&gt;
&lt;li&gt;A Mini-DVI to HDMI Adapter (video only)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note #1: The DIY-intosh does not have a DVD drive. You can, however
purchase a USB DVD drive if you need that capability. You can also
enable Remote Disk on the DIY-intosh (search Google for the terminal
commands). I suggest that once you have recieved the DIY-intosh that you
enable Remote Disk and make a DMG of the install DVD. Then, you can
restore that DMG to an 8 GB USB drive. In the event you need to install
OS X again, you can just boot off of that USB drive.&lt;/p&gt;
&lt;p&gt;Note #2: I don't ship overseas. It's just too expensive.&lt;/p&gt;
&lt;p&gt;Email me ASAP if you're interested (click on the "Contact Me" page to
see my email address). If many people email me with serious interest,
I'll put it on ebay, otherwise I'll just use SellSimply. I must recieve
at least one email with serious interest before I put it on either site.&lt;/p&gt;</summary><category term="DIY-intosh"></category><category term="Mac"></category><category term="MakerBot"></category><category term="selling"></category></entry><entry><title>Selling the Refurbushed Black GSM Unlocked BlackBerry 8320 on SellSimply</title><link href="https://www.cyrozap.com/2010/09/14/selling-the-refurbushed-black-gsm-blackberry-8320-on-sellsimply/" rel="alternate"></link><updated>2010-09-14T22:33:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-09-14:2010/09/14/selling-the-refurbushed-black-gsm-blackberry-8320-on-sellsimply/</id><summary type="html">&lt;p&gt;Well, you can see/buy it at &lt;a href="http://sellsimp.ly/9f"&gt;SellSimp.ly/9f&lt;/a&gt;.
More pictures of it and the blackberry innards to follow.&lt;/p&gt;</summary><category term="Blackberry"></category><category term="SellSimply"></category></entry><entry><title>I want a cool logo, too!</title><link href="https://www.cyrozap.com/2010/09/04/i-want-a-cool-logo-too/" rel="alternate"></link><updated>2010-09-04T19:43:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-09-04:2010/09/04/i-want-a-cool-logo-too/</id><summary type="html">&lt;p&gt;I just saw
&lt;a href="http://makerblock.com/2010/09/help-ive-been-posterized/"&gt;this&lt;/a&gt; and I'm
really jealous. I wish &lt;em&gt;I&lt;/em&gt; worked for MakerBot so &lt;em&gt;I&lt;/em&gt; could be
"posterized" by Bre! I'm no artist and I really need a good logo (the
current one is just "meh").&lt;/p&gt;
&lt;p&gt;At least &lt;em&gt;I&lt;/em&gt; live a 5 minute walk and a train ride away from Brooklyn
(as opposed to living in California)!&lt;/p&gt;
&lt;p&gt;This reminds me that I should visit the BotCave some time. Eventually.
If Bre says it's ok.&lt;/p&gt;</summary><category term="Bre Pettis"></category><category term="logo"></category><category term="MakerBlock"></category><category term="MakerBot"></category></entry><entry><title>Selling a Self-Refurbished and Unlocked Blackberry (Soon)</title><link href="https://www.cyrozap.com/2010/09/04/selling-a-self-refurbished-and-unlocked-blackberry-soon/" rel="alternate"></link><updated>2010-09-04T16:28:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-09-04:2010/09/04/selling-a-self-refurbished-and-unlocked-blackberry-soon/</id><summary type="html">&lt;p&gt;Well, I recently unlocked a Blackberry that's a bit beat up and once I
get the replacement housing for it I'll fix it up and sell it. It's a
black Blackberry Curve 8320, permanently unlocked. I have no use for it
as I'm on Verizon and it needs a valid SIM card inserted for it to allow
apps to use data features (even on WiFi). So, if you're looking to
upgrade your GSM phone, I'll probably be selling this for around
$125-$150. No, I won't ship international because it's prohibitively
expensive. I'll start out by selling this on SellSimply, but if I don't
get any buyers, I'll sell it on Ebay.&lt;/p&gt;
&lt;p&gt;Just to gage interest, email me if you might buy it. Feel free to email
me with any questions.&lt;/p&gt;</summary><category term="Blackberry"></category><category term="refurbished"></category><category term="unlocked"></category></entry><entry><title>RepRap Motherboard Idea</title><link href="https://www.cyrozap.com/2010/08/31/reprap-motherboard-idea/" rel="alternate"></link><updated>2010-08-31T17:43:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-08-31:2010/08/31/reprap-motherboard-idea/</id><summary type="html">&lt;p&gt;I just thought of an amazing alternative to the RepRap motherboard that
doesn't need a computer to drive it: the
&lt;a href="http://beagleboard.org/"&gt;BeagleBoard&lt;/a&gt;! This way, you could have it
interpret the G-code directly and quickly (as opposed to MakerBot's way
of doing that work on the computer and then sending different, simpler
commands over the serial lines, keeping the heavy-lifting off of the
µController). In my hypothetical setup, the stepper drivers would be run
directly from the computer, like how most CNC machines are run (over the
parallel port). This also, in the case of the MakerBot, could allow the
BeagleBoard to be integrated into the MakerBot with the
&lt;a href="http://www.liquidware.com/shop/show/BB-BT/BeagleTouch"&gt;BeagleTouch&lt;/a&gt;
screen from &lt;a href="http://liquidware.com/"&gt;Liquidware&lt;/a&gt;. This way, you could
download, Skein, and print an object all from the MakerBot. Mmmmmm...
Standalone MakerBot. Of course, with the &lt;a href="http://store.makerbot.com/electronics/assembled-electronics/reprap-motherboard-v1-2.html"&gt;RepRap motherboard&lt;/a&gt;
at $59.00, the
&lt;a href="http://www.liquidware.com/shop/show/BB-C4/BeagleBoard+C4"&gt;BeagleBoard&lt;/a&gt;
at $149.00, and the
&lt;a href="http://www.liquidware.com/shop/show/BB-BT/BeagleTouch"&gt;BeagleTouch&lt;/a&gt; at
$258.33, this becomes a bit unfeasible.&lt;/p&gt;</summary><category term="BeagleBoard"></category><category term="BeagleTouch"></category><category term="Liquidware"></category><category term="MakerBot"></category><category term="motherboard"></category><category term="replacement"></category><category term="RepRap"></category><category term="standalone"></category><category term="upgrade"></category></entry><entry><title>Maker Faire RI Pictures!</title><link href="https://www.cyrozap.com/2010/08/28/maker-faire-ri-pictures/" rel="alternate"></link><updated>2010-08-28T19:52:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-08-28:2010/08/28/maker-faire-ri-pictures/</id><summary type="html">&lt;p&gt;Here they are:&lt;/p&gt;
&lt;p&gt;&lt;embed type="application/x-shockwave-flash" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" width="600" height="400" flashvars="host=picasaweb.google.com&amp;amp;hl=en_US&amp;amp;feat=flashalbum&amp;amp;RGB=0x000000&amp;amp;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Fcyrozap%2Falbumid%2F5510600699489858145%3Falt%3Drss%26kind%3Dphoto%26hl%3Den_US" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;
&lt;/embed&gt;&lt;/p&gt;
&lt;p&gt;Also, to all those curious, I will be at Maker Faire NYC, but I will not
be exhibiting there. There is a chance that I'll bring my MakerBot, but
it's slim.&lt;/p&gt;</summary><category term="Maker Faire"></category><category term="MakerBot"></category><category term="NYC"></category></entry><entry><title>Maker Faire RI</title><link href="https://www.cyrozap.com/2010/08/26/maker-faire-ri/" rel="alternate"></link><updated>2010-08-26T10:27:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-08-26:2010/08/26/maker-faire-ri/</id><summary type="html">&lt;p&gt;Just so you know, I'll be exhibiting at Maker Faire RI in Providence on
Saturday, so if you're in the area, I'll be at the tabe with the
DIY-intosh, the Eee PC 1000HE, and the MakerBot.&lt;/p&gt;
&lt;p&gt;Why am I bringing my DIY-intosh? Well, because it's just so much more
impressive in person. That and the fact that its 2GHz Core Duo leaves my
netbook's 1.66GHz Atom in the dust when it comes to Skeinforging
something.&lt;/p&gt;</summary><category term="FYI"></category><category term="Maker Faire"></category><category term="MakerBot"></category><category term="RI"></category></entry><entry><title>Helping the world, one document at a time.</title><link href="https://www.cyrozap.com/2010/08/20/helping-the-world-one-document-at-a-time/" rel="alternate"></link><updated>2010-08-20T23:36:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-08-20:2010/08/20/helping-the-world-one-document-at-a-time/</id><summary type="html">&lt;p&gt;&lt;a href="http://pinoutsguide.com/Inputs/apple_macbook_keyboard_pinout.shtml"&gt;My pinout data was approved!&lt;/a&gt;&lt;/p&gt;</summary><category term="DIY-intosh"></category><category term="MacBook"></category><category term="pinout"></category><category term="pinouts.ru"></category></entry><entry><title>Birthday Gear</title><link href="https://www.cyrozap.com/2010/08/20/birthday-gear/" rel="alternate"></link><updated>2010-08-20T12:11:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-08-20:2010/08/20/birthday-gear/</id><summary type="html">&lt;p&gt;As you may or may not know, my birthday was on the 16th (I feel like
everyone is blogging about their August birthdays and what they got
now&amp;mdash;MakerBlock, Spacexula). Because few in my family actually
understand what I do, they all just give me money. So, with those
birthday funds, I bought myself a
&lt;a href="http://www.amazon.com/gp/product/B0037W68QS?ie=UTF8&amp;amp;tag=cyrstecpro-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=B0037W68QS"&gt;Sapphire 100282-TXSR&lt;/a&gt;, a Vapor-X ATI Radeon HD 5850 Toxic Edition graphics
card that performs as good as, if not better than, an HD 5870. This is
the first $340 step I've taken in my $1200 quest to
&lt;a href="http://amzn.com/w/1I9OB4SHXFIGP"&gt;upgrade my computer&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I also bought an RS232 serial 20x2 character VFD that can be used with a
computer just by wiring it up with a serial port and can be used with
TTL level logic by using a few extra components.
&lt;a href="http://item.ebay.com/110448153207"&gt;$30 on ebay&lt;/a&gt;.
I plan on either using this with my webserver to show load or with my
MakerBot to... Do... Something?&lt;/p&gt;
&lt;p&gt;Last, but not least, I bought a
&lt;a href="http://item.ebay.com/300449056164"&gt;wireless-N usb stick for $17 on ebay&lt;/a&gt;.
Why did I do this? Well, when I installed the broadcom Crystal HD card
in my netbook, I had to remove the WiFi card. I like having wifi in my
netbook, so while it was open, I found USB D+ and D- on the second mini
pci-e port (that lacks a connector) and +5V from the VGA port and GND
from other USB ports and I soldered wires to them. Now, all I have to do
is solder those wires to the USB WiFi adapter (after I remove its case)
and I'll once again have internal wireless-N. Of course, I'll have to
put the adapter in a place where the antenna will have good reception...&lt;/p&gt;
&lt;p&gt;As a side note, MakerBot must really love MakerBlock
&lt;a href="http://makerblock.com/2010/08/thank-you-makerbot/"&gt;to have given him those extras as a birthday present&lt;/a&gt;!
I wish MakerBot loved me, too... I have a
&lt;a href="http://wiki.makerbot.com/lineage#toc6"&gt;Batch 5 MakerBot&lt;/a&gt;,
MakerBlock's is &lt;a href="http://wiki.makerbot.com/lineage#toc10"&gt;Batch 9&lt;/a&gt;&amp;mdash;shouldn't I get something special for being an early adopter? ;D&lt;/p&gt;
&lt;p&gt;Nah, I don't really care; I just want my MakerBot to work as good as
some other peoples' MakerBots!&lt;/p&gt;</summary><category term="birthday"></category><category term="gear"></category><category term="netbook"></category><category term="MakerBot"></category><category term="presents"></category><category term="Serial"></category><category term="USB"></category><category term="VFD"></category><category term="WiFi"></category></entry><entry><title>MacBook Core Duo Logic Board Keyboard Connector Pinout</title><link href="https://www.cyrozap.com/2010/08/18/macbook-core-duo-logic-board-keyboard-connector-pinout/" rel="alternate"></link><updated>2010-08-18T22:17:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-08-18:2010/08/18/macbook-core-duo-logic-board-keyboard-connector-pinout/</id><summary type="html">&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/08/connector.bmp"&gt;&lt;img alt="connector" src="https://www.cyrozap.com/wp-uploads/2010/08/connector.bmp" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Well, I did some testing, and I found out that the connector for the
Core Duo MacBook keyboard connector is really just a USB port. Also,
after pouring over a datasheet, I found that the two PSoC's on the
keyboard's board are connected over an I2C bus and then the one labeled
"B" is the one with the USB connection to the logic board. The one
labeled "A" is the keyboard controller.&lt;/p&gt;
&lt;p&gt;With this newfound information, in theory, I could make that internal
USB port external, giving my DIY-intosh an extra USB port to work with.
In practice, those leads are just too small to solder.&lt;/p&gt;
&lt;p&gt;Also using this information, I attempted to turn a MacBook keyboard and
trackpad into a USB keyboard and trackpad, but as I soldered the D+ and
D- connections to the test points, the stress on one of the points broke
it off. I also lost one of the SMT resistors after I tried to solder to
it (after I broke off the test point). I can plug it in to a computer,
but it is not recognized. I haven't tried plugging it into a Mac yet, so
it may just be a driver issue.&lt;/p&gt;
&lt;p&gt;Please use and expand on this information! I've already reduced by $10
the value of a $25 keyboard assembly (I &amp;lt;3 ebay), I want to know if I
can make an external MacBook keyboard + trackpad before I drop $50 on
another one!&lt;/p&gt;
&lt;p&gt;&lt;del&gt;I sent this info to http://pinouts.ru/ so that others can benefit from
this.&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Edit (4/17/2013):&lt;/strong&gt; Pinouts.ru seems to be defunct/compromised, but I
found a link to another pinouts website that seems to have mirrored the
pinouts.ru page.
&lt;a href="http://pinoutsguide.com/Inputs/apple_macbook_keyboard_pinout.shtml"&gt;http://pinoutsguide.com/Inputs/apple_macbook_keyboard_pinout.shtml&lt;/a&gt;&lt;/p&gt;</summary><category term="DIY-intosh"></category><category term="MacBook"></category><category term="research"></category></entry><entry><title>PHP Script to Convert Normal Links Into Amazon Affiliate Links</title><link href="https://www.cyrozap.com/2010/08/14/php-script-to-convert-normal-links-into-amazon-affiliate-links/" rel="alternate"></link><updated>2010-08-14T16:21:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-08-14:2010/08/14/php-script-to-convert-normal-links-into-amazon-affiliate-links/</id><summary type="html">&lt;p&gt;I like to give my friends and family recommendations on products. I like
to give them Amazon Affiliate links. The problem? Whenever I want to do
that, there's an annoying process I have to go to to do that, and only I
can use that process. If anyone wants to buy something and they want to
credit me, they can't make affiliate links and have to ask me to make a
link for them. So, to remedy this, I took 2 hours out of my day to make
a PHP script that anyone can use to make Affiliate links from normal
Amazon product links. How does it work? Well, it's quite simple, really.
The user enters their Amazon product link, then my script takes that
link, strips the product ID from it, and adds that product ID to my
pre-formatted link, which is then displayed to the user to click on.
It's under &lt;del&gt;a CC-BY-SA 3.0 License&lt;/del&gt; the &lt;a href="http://www.apache.org/licenses/LICENSE-2.0"&gt;Apache License 2.0&lt;/a&gt;,
so feel free to distribute (and modify) it as long as you credit me for
the original.&lt;/p&gt;
&lt;p&gt;Here it is: &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Cyrozap&lt;span class="ni"&gt;&amp;amp;#039;&lt;/span&gt;s Amazon Affiliate Link Generator&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Enter the Amazon link you want to convert, then click the &amp;quot;Make Affiliate Link&amp;quot; button.&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;form&lt;/span&gt; &lt;span class="na"&gt;action=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;&amp;lt;?= $_SERVER[&amp;#39;PHP_SELF&amp;#39;] ?&amp;gt;&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;method=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;get&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;text&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;link&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;submit&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Make Affiliate Link!&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;
&lt;span class="cp"&gt;$affiliate = &amp;quot;?ie=UTF8&amp;amp;tag=cyrstecpro-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=&amp;quot;; // This is what is in all of my Amazon Affiliate links. To get yours, make an affiliate link, then look for where it has a &amp;quot;?&amp;quot; then copy all the characters from the &amp;quot;?&amp;quot; to the &amp;quot;=&amp;quot; including those two signs.&lt;/span&gt;
&lt;span class="cp"&gt;$link = htmlspecialchars($_GET[&amp;#39;link&amp;#39;]); // This is the original Amazon link that is entered by the user.&lt;/span&gt;
&lt;span class="cp"&gt;if (isset($_GET[&amp;#39;link&amp;#39;])) {&lt;/span&gt;
&lt;span class="cp"&gt;    $pid = substr(strstr($link,&amp;quot;p/&amp;quot;),2,10);&lt;/span&gt;
&lt;span class="cp"&gt;    echo &amp;quot;&amp;lt;h4&amp;gt;Here&amp;#39;s your new Amazon Affiliate link: &amp;lt;/h4&amp;gt;&amp;quot;;&lt;/span&gt;
&lt;span class="cp"&gt;    //echo &amp;quot;http://www.amazon.com/gp/product/&amp;quot;, $pid, $affiliate, $pid; // Uncomment this line to just make a text link.&lt;/span&gt;
&lt;span class="cp"&gt;    echo &amp;quot;&amp;lt;h4&amp;gt;&amp;lt;a href=http://www.amazon.com/gp/product/&amp;quot;, $pid, $affiliate, $pid, &amp;quot;&amp;gt;http://www.amazon.com/gp/product/&amp;quot;, $pid, $affiliate, $pid, &amp;quot;&amp;lt;/a&amp;gt;&amp;lt;/h4&amp;gt;&amp;quot;; // This line makes a &amp;quot;clickable&amp;quot; link.&lt;/span&gt;
&lt;span class="cp"&gt;}&lt;/span&gt;
&lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;br&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;
    License: &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;license&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;http://www.apache.org/licenses/LICENSE-2.0&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Apache License, Version 2.0&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;br&amp;gt;&lt;/span&gt;Original script by &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;http://cyrozap.com/&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;cyrozap&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;</summary><category term="PHP"></category></entry><entry><title>MakerBot Fixes and Upgrades</title><link href="https://www.cyrozap.com/2010/07/07/makerbot-fixes-and-upgrades/" rel="alternate"></link><updated>2010-07-07T12:25:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-07-07:2010/07/07/makerbot-fixes-and-upgrades/</id><summary type="html">&lt;p&gt;Well, I just bought some new parts for my Makerbot. First, because my
build platform broke, I bought the &lt;a href="http://store.makerbot.com/makerbot-cupcake-heated-build-platform-v2-0.html"&gt;MakerBot Heated Build Platform Kit&lt;/a&gt;.
I decided that, since I was switching back to ABS, I should be using a
heated platform. I also didn't want to pay for a normal build platform
now and pay for a heated build platform later when I'll really want it.
Second, I bought the &lt;a href="http://store.makerbot.com/magnetic-rotary-encoder-v1-0.html"&gt;Magnetic Rotary Encoder PCB&lt;/a&gt;. I got
3 samples of the chip a while ago, so I just bought this because it may
come in handy in the future. Also, I wanted to practice soldering SMT
parts by hand. Finally, I bought the &lt;a href="http://store.makerbot.com/mk5-drive-gear.html"&gt;MK5 Drive Gear Upgrade Kit&lt;/a&gt; because it's just so
much better than the current one.&lt;/p&gt;</summary><category term="ABS"></category><category term="build"></category><category term="extruder"></category><category term="fixed"></category><category term="HBP"></category><category term="MakerBot"></category><category term="mod"></category><category term="platform"></category><category term="technical difficulties"></category><category term="upgrades"></category></entry><entry><title>Selling Half-Set Reprap Mendel Parts on Sell Simply</title><link href="https://www.cyrozap.com/2010/06/29/selling-half-set-reprap-mendel-parts/" rel="alternate"></link><updated>2010-06-29T21:42:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-06-29:2010/06/29/selling-half-set-reprap-mendel-parts/</id><summary type="html">&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/06/IMG_2753.jpg"&gt;&lt;img alt="Set of RepRap parts" src="https://www.cyrozap.com/wp-uploads/2010/06/IMG_2753-1024x768.jpg" title="A higher angle" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This set of parts is a little over half of all the parts needed to build
a RepRap Mendel. If I don't get any offers for the complete half-set, I
will start offering parts individually. If you want individual parts,
please contact me at cyrozap AT gmail DOT com.&lt;/p&gt;
&lt;p&gt;Make offers on it at &lt;a href="http://sellsimp.ly/6s"&gt;http://sellsimp.ly/6s&lt;/a&gt;.&lt;/p&gt;</summary><category term="Mendel"></category><category term="parts"></category><category term="RepRap"></category><category term="Sell Simply"></category><category term="selling"></category></entry><entry><title>Selling Creative Sound Blaster MP3+ External Sound Card!</title><link href="https://www.cyrozap.com/2010/06/27/selling-creative-sound-blaster-mp3-external-sound-card/" rel="alternate"></link><updated>2010-06-27T20:20:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-06-27:2010/06/27/selling-creative-sound-blaster-mp3-external-sound-card/</id><summary type="html">&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/06/IMAG0013.jpg"&gt;&lt;img alt="External sound card" src="https://www.cyrozap.com/wp-uploads/2010/06/IMAG0013-640x480.jpg" title="It's really nice!" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;See it at &lt;a href="http://item.ebay.com/120596951037"&gt;http://item.ebay.com/120596951037&lt;/a&gt;&lt;/p&gt;</summary><category term="card"></category><category term="external"></category><category term="selling"></category><category term="sound"></category><category term="Sound Blaster"></category></entry><entry><title>Selling Genuine Apple Firewire iPod Charger on ebay!</title><link href="https://www.cyrozap.com/2010/06/27/selling-genuine-apple-firewire-ipod-charger-on-ebay/" rel="alternate"></link><updated>2010-06-27T18:33:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-06-27:2010/06/27/selling-genuine-apple-firewire-ipod-charger-on-ebay/</id><summary type="html">&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/06/IMAG0009.jpg"&gt;&lt;img alt="iPod firewire charger" src="https://www.cyrozap.com/wp-uploads/2010/06/IMAG0009-640x480.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;See it at &lt;a href="http://item.ebay.com/120596950987"&gt;http://item.ebay.com/120596950987&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It outputs 12V at 1.0A over the Firewire port.&lt;/p&gt;</summary><category term="Apple"></category><category term="charger"></category><category term="iPod"></category><category term="selling"></category></entry><entry><title>SellSimply shop is up!</title><link href="https://www.cyrozap.com/2010/06/27/sellsimply-shop-is-up/" rel="alternate"></link><updated>2010-06-27T14:33:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-06-27:2010/06/27/sellsimply-shop-is-up/</id><summary type="html">&lt;p&gt;Go to &lt;a href="http://sellsimp.ly/5z"&gt;http://sellsimp.ly/5z&lt;/a&gt; to see the Mendel Mini parts that I
posted! It's a half-set, so if you're having trouble printing some of
the parts for the Mendel Mini, or want to get a head start on printing
your own set, this is the set for you! If I don't get any offers for the
complete half-set, I'll start offering parts individually. Email me if
you're interested in individual parts.&lt;/p&gt;</summary><category term="half-set"></category><category term="Mendel"></category><category term="Mini"></category><category term="parts"></category><category term="RepRap"></category><category term="selling"></category><category term="SellSimply"></category></entry><entry><title>I fixed the blog!</title><link href="https://www.cyrozap.com/2010/06/26/i-fixed-the-blog/" rel="alternate"></link><updated>2010-06-26T19:13:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-06-26:2010/06/26/i-fixed-the-blog/</id><summary type="html">&lt;p&gt;Yay me! I downloaded the entire database as a .sql file, opened it up in
gedit, did a Find/Replace for cyrozap.blogdns.com to cyrozap.com,
restored the database with that file, and I was done! I'm sure I could
have done a similar thing from the command line, but I don't know MySQL
very well.&lt;/p&gt;
&lt;p&gt;Mission accomplished! ;D&lt;/p&gt;</summary><category term="fixed"></category><category term="server"></category><category term="technical difficulties"></category><category term="upgrades"></category><category term="Wordpress.org"></category></entry><entry><title>Strange happenings with the blog...</title><link href="https://www.cyrozap.com/2010/06/24/strange-happenings-with-the-blog/" rel="alternate"></link><updated>2010-06-24T20:23:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-06-24:2010/06/24/strange-happenings-with-the-blog/</id><summary type="html">&lt;p&gt;For some reason, it only works in Google Chrome&amp;mdash;all other browsers that
I've tried (Firefox, IE, Safari) don't show the theme. I've changed the
theme, repaired the database, but nothing works. Maybe if I didn't
change the domain and upgrade Wordpress at the same time, this would
have been easier to debug...&lt;/p&gt;</summary><category term="error"></category><category term="technical difficulties"></category><category term="upgrades"></category><category term="Wordpress.org"></category></entry><entry><title>Why You Shouldn't Leave Your MakerBot Running Overnight When Using a Weak PC</title><link href="https://www.cyrozap.com/2010/06/24/why-you-shouldnt-leave-your-makerbot-running-overnight-when-using-a-wea-pc/" rel="alternate"></link><updated>2010-06-24T18:27:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-06-24:2010/06/24/why-you-shouldnt-leave-your-makerbot-running-overnight-when-using-a-wea-pc/</id><summary type="html">&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/06/0624001736.jpg"&gt;&lt;img alt="A big blob of PLA on the build platform" src="https://www.cyrozap.com/wp-uploads/2010/06/0624001736-300x225.jpg" title="It ran until it snapped off the end of the plastic." /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Yup. It ran until it had run out of plastic. When I looked at the
computer, the screen was flashing random patterns. Yeah, it was that
bad.&lt;/p&gt;
&lt;p&gt;Then, this happened:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/06/0624001737.jpg"&gt;&lt;img alt="Whoops" src="https://www.cyrozap.com/wp-uploads/2010/06/0624001737-300x225.jpg" title="Whoops" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;AND THIS IS WHY YOU MUST NEVER EVER FOREVER NEVER EVER EVER NEVER RUN
YOUR MAKERBOT/REPRAP OVERNIGHT!&lt;/p&gt;
&lt;p&gt;But I know you'll do it anyways. ;D&lt;/p&gt;</summary><category term="cheap"></category><category term="crash"></category><category term="error"></category><category term="MakerBot"></category><category term="overnight"></category><category term="RepRap"></category><category term="technical difficulties"></category></entry><entry><title>Domain name change!</title><link href="https://www.cyrozap.com/2010/06/22/domain-name-change/" rel="alternate"></link><updated>2010-06-22T14:38:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-06-22:2010/06/22/domain-name-change/</id><summary type="html">&lt;p&gt;Woohoo! I successfully switched the domain name from cyrozap.blogdns.com
(DynDNS) to cyrozap.com! I got a really good deal with 1and1.com
($8.99/year or something like that with the first year free&amp;mdash;that's
$.25 per month), and if you click on an individual post, you'll see
that below the "Submit" button for comments, I switched the ad from
Amazon to 1and1.com's affiliate program ad.&lt;/p&gt;
&lt;p&gt;Well, now I can have subdomains, like
&lt;a href="http://store.cyrozap.com/"&gt;store.cyrozap.com&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;I also got the DynDNS name to redirect to the new domain name, so all
the old links work.&lt;/p&gt;</summary><category term="fixed"></category><category term="server"></category><category term="technical difficulties"></category><category term="upgrades"></category><category term="Wordpress.org"></category></entry><entry><title>Selling Mendel and Mendel Mini Parts Individually or as Half-Sets</title><link href="https://www.cyrozap.com/2010/06/20/selling-mendel-and-mendel-mini-parts-individually-or-as-half-sets/" rel="alternate"></link><updated>2010-06-20T20:28:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-06-20:2010/06/20/selling-mendel-and-mendel-mini-parts-individually-or-as-half-sets/</id><summary type="html">&lt;p&gt;I posted this on the RepRap Forum
&lt;a href="http://forums.reprap.org/read.php?175,49409,49409"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you don't want to follow the link, you can read what I wrote here:&lt;/p&gt;
&lt;p&gt;I printed half a set of Mendel Parts, and because it's been difficult
for me to finish them, I'll be selling them either individually or as a
set.&lt;/p&gt;
&lt;p&gt;The half set includes 14 build plates (I'm pretty sure) of &lt;a href="http://www.thingiverse.com/thing:1883"&gt;this set of parts&lt;/a&gt;. Here are some pictures of
the parts (click the images to see them full size):&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/06/IMG_2752.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2010/06/IMG_2752-300x225.jpg" /&gt;&lt;/a&gt;  &lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/06/IMG_2753.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2010/06/IMG_2753-300x225.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I also have a less than half-completed set of Mendel Mini parts that is
also for sale.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/06/0620001144.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2010/06/0620001144-300x225.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Please contact me at &lt;strong&gt;cyrozap AT gmail DOT com&lt;/strong&gt; if you're interested,
and please specify whether you're interested in a few parts or the
entire half set. This is not a commitment to buy, I'm just using this to
gage interest.&lt;br /&gt;
Happy Making!&lt;/p&gt;</summary><category term="individually"></category><category term="parts"></category><category term="RepRap"></category><category term="selling"></category><category term="sets"></category></entry><entry><title>Parallax serial RFID reader for sale (again)(again)!</title><link href="https://www.cyrozap.com/2010/06/19/parallax-serial-rfid-reader-for-sale-againagain/" rel="alternate"></link><updated>2010-06-19T23:43:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-06-19:2010/06/19/parallax-serial-rfid-reader-for-sale-againagain/</id><summary type="html">&lt;p&gt;It didn't sell the first or second time I listed it, so I'm now selling
it starting at $9.99 + $4.90 shipping to the continental U.S. only.
It's a good deal as it originally was over $40.&lt;/p&gt;
&lt;p&gt;I bought two of them cheap and I'm selling one
&lt;a href="http://item.ebay.com/120585902907"&gt;here&lt;/a&gt;. It's a 125 kHz reader that
comes with 2 tags. It outputs the tag ID on a 5V TTL serial line at 2400
baud. It's perfect for projects that require contact-less
identification, like an RFID-unlocked door.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/05/IMAG0003.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2010/05/IMAG0003-300x225.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;</summary><category term="Parallax"></category><category term="RFID"></category><category term="selling"></category><category term="Serial"></category></entry><entry><title>Dell 2000FP 20.1" 1600 x 1200 pixel monitor for sale!</title><link href="https://www.cyrozap.com/2010/06/18/dell-2000fp-20-1-1600-x-1200-pixel-monitor-for-sale/" rel="alternate"></link><updated>2010-06-18T22:58:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-06-18:2010/06/18/dell-2000fp-20-1-1600-x-1200-pixel-monitor-for-sale/</id><summary type="html">&lt;p&gt;I'm selling my DIY-intosh's monitor on ebay to help pay for my new
monitor! The bidding is starting at $49.99 and can be bought
immediately for $80. &lt;a href="http://item.ebay.com/120585475945"&gt;Here's the auction&lt;/a&gt;.&lt;/p&gt;</summary><category term="Dell"></category><category term="ebay"></category><category term="LCD"></category><category term="monitor"></category><category term="selling"></category></entry><entry><title>$300 Mac Mod How-to Now in Instructable Form!</title><link href="https://www.cyrozap.com/2010/06/11/300-mac-mod-how-to-now-in-instructable-form/" rel="alternate"></link><updated>2010-06-11T23:43:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-06-11:2010/06/11/300-mac-mod-how-to-now-in-instructable-form/</id><summary type="html">&lt;p&gt;Well, I finally made it: &lt;a href="http://www.instructables.com/id/Make-Your-Own-300-Mac-A-Mac-Built-From-Macbook-P/"&gt;my $300 Mac Instructable&lt;/a&gt;!
It's now easier to follow, thanks to it's new format in Instructables.&lt;/p&gt;</summary><category term="DIY"></category><category term="DIY-intosh"></category><category term="electronics"></category><category term="Instructables"></category><category term="Mac"></category><category term="MacBook"></category><category term="mod"></category></entry><entry><title>Fixed HP LCD Monitor</title><link href="https://www.cyrozap.com/2010/06/06/fixed-hp-lcd-monitor/" rel="alternate"></link><updated>2010-06-06T00:25:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-06-06:2010/06/06/fixed-hp-lcd-monitor/</id><summary type="html">&lt;p&gt;On Sunday, I repaired an HP LCD screen. For some reason, it wasn't
powering on, so I looked online for solutions to power supply troubles
in LCDs. Eventually, I came across an &lt;a href="http://www.instructables.com/id/Repairing-a-vs19e/"&gt;Instructable to fix this very problem&lt;/a&gt;! It was for
a slightly different model (the vs19e, I have the vs19d), but it helped
me get the case off and, after seeing the three popped capacitors and
replacing them with capacitors from an old-ish conference desk phone and
a capacitor from Parallax's "What's a Microcontroller" kit (all were 10V
1000uF), I had a working monitor again. Well, that was a really free
fix, and I'm glad I didn't have to buy anything from Radioshack as I
usually do. I've nothing against Radioshack, I just think they're a tad
over-priced for a lot of what they're selling, even though they add
convenience.&lt;/p&gt;</summary><category term="fixed"></category><category term="LCD"></category><category term="monitor"></category></entry><entry><title>Parallax serial RFID reader for sale (again)!</title><link href="https://www.cyrozap.com/2010/06/04/parallax-serial-rfid-reader-for-sale-again/" rel="alternate"></link><updated>2010-06-04T19:16:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-06-04:2010/06/04/parallax-serial-rfid-reader-for-sale-again/</id><summary type="html">&lt;p&gt;It didn't sell the first time I listed it, so I'm now selling it
starting at $20 + $4.90 shipping to the continental U.S. only. It's a
good deal as it originally was over $40.&lt;/p&gt;
&lt;p&gt;I bought two of them cheap and I'm selling
one &lt;a href="http://item.ebay.com/120579200767"&gt;here&lt;/a&gt;. It's a 125 kHz reader
that comes with 2 tags. It outputs the tag ID on a 5V TTL serial line at
2400 baud. It's perfect for projects that require contact-less
identification, like an RFID-unlocked door.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/05/IMAG0003.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2010/05/IMAG0003-300x225.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;</summary><category term="Parallax"></category><category term="RFID"></category><category term="selling"></category><category term="Serial"></category></entry><entry><title>Parallax serial RFID reader for sale!</title><link href="https://www.cyrozap.com/2010/05/30/parallax-serial-rfid-reader-for-sale/" rel="alternate"></link><updated>2010-05-30T18:31:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-05-30:2010/05/30/parallax-serial-rfid-reader-for-sale/</id><summary type="html">&lt;p&gt;I bought two of them cheap and I'm selling
one &lt;a href="http://item.ebay.com/120576997194"&gt;here&lt;/a&gt;. It's a 125 kHz reader
that comes with 2 tags. It outputs the tag ID on a 5V TTL serial line at
2400 baud. It's perfect for projects that require contact-less
identification, like an RFID-unlocked door.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/05/IMAG0003.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2010/05/IMAG0003-300x225.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;</summary><category term="Parallax"></category><category term="RFID"></category><category term="selling"></category><category term="Serial"></category></entry><entry><title>Mendel Mini Parts to be Made and Sold!</title><link href="https://www.cyrozap.com/2010/05/29/mendel-mini-parts-to-be-made-and-sold/" rel="alternate"></link><updated>2010-05-29T16:32:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-05-29:2010/05/29/mendel-mini-parts-to-be-made-and-sold/</id><summary type="html">&lt;p&gt;Currently, my MakerBot is producing the parts needed to build a Mendel
Mini. I will not be making them for myself&amp;mdash;these will be sold on ebay.
I'll be posting a link here and on the RepRap forums when they're
available. These parts will cost about half as much as a set of Mendel
full-size parts at around $250.&lt;/p&gt;</summary><category term="ebay"></category><category term="MakerBot"></category><category term="Mendel"></category><category term="Mini"></category><category term="RepRap"></category><category term="selling"></category></entry><entry><title>Is there a noticeable speed difference?</title><link href="https://www.cyrozap.com/2010/05/16/is-there-a-noticeable-speed-difference/" rel="alternate"></link><updated>2010-05-16T15:40:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-05-16:2010/05/16/is-there-a-noticeable-speed-difference/</id><summary type="html">&lt;p&gt;I just installed the WP Super Cache plugin to prepare my site in the
event that something I do actually becomes popular on Hack a Day, Digg,
etc.&lt;/p&gt;
&lt;p&gt;I was just wondering: do you see a speed difference? My server is a bit
underpowered, so I was wondering if there was a noticeable speed
difference when the page is loaded.&lt;/p&gt;
&lt;p&gt;Let me know in the comments (I also want to see if commenting
automatically updates the cache).&lt;/p&gt;</summary><category term="plugins"></category><category term="testing"></category><category term="upgrades"></category><category term="Wordpress.org"></category></entry><entry><title>5% off MakerBot Industries Cupcake CNC 3D Printer</title><link href="https://www.cyrozap.com/2010/05/13/5-off-makerbot-industries-cupcake-cnc-3d-printer/" rel="alternate"></link><updated>2010-05-13T19:25:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-05-13:2010/05/13/5-off-makerbot-industries-cupcake-cnc-3d-printer/</id><summary type="html">&lt;p&gt;I just got an email from MakerBot because I entered in the Thingiverse
contest (which wasn't a very smart idea&amp;mdash;see &lt;a href="http://makerblock.com/2010/05/dollar-stores/"&gt;this post&lt;/a&gt;):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;As a small thank you, if you'd like to get a MakerBot Industries
Cupcake CNC 3D Printer, you can use the code M4K3R to get 5% off until
the end of the month.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This offer is valid on any item in the MakerBot store.&lt;/p&gt;</summary><category term="3D"></category><category term="ABS"></category><category term="CNC"></category><category term="MakerBot"></category><category term="sale"></category></entry><entry><title>TVKiller: An iPhone App to Act as a TV-B-Gone</title><link href="https://www.cyrozap.com/2010/05/08/tvkiller-an-iphone-app-to-act-as-a-tv-b-gone/" rel="alternate"></link><updated>2010-05-08T23:38:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-05-08:2010/05/08/tvkiller-an-iphone-app-to-act-as-a-tv-b-gone/</id><summary type="html">&lt;p&gt;I am currently making this app as a TV-B-Gone-like device: all you do is
push the button and all the TVs you're facing turn off. The concept is
simple: push the button, it maxes out the volume and plays a recorded
file of all the TV off-codes, the IR LEDs transmit the signal from the
audio port, and all the TVs go off.&lt;/p&gt;
&lt;p&gt;Feel free to fork the &lt;a href="http://github.com/cyrozap/TVKiller"&gt;Git repository&lt;/a&gt; to debug it (at the time
of this post it has 10 errors and 6 warnings). As I'm new to
Objective-C, I need all the help I can get. The project is under the GNU
GPL, currently. I'll figure out the licensing stuff later when the
project actually contains the recorded codes from a TV-B-Gone; the
current "codes.mp3" is just a 440 Hz square wave for testing. That will
be replaced by the real "codes.mp3" when it becomes available.&lt;/p&gt;
&lt;p&gt;If you have a TV-B-Gone, the means to record its codes as a WAV or MP3
file, and want to help with the project, I'd appreciate it if you'd
record its codes and then send them my way so they can be integrated
into the project (whoever does so will be credited properly).&lt;/p&gt;</summary><category term="app"></category><category term="iPhone"></category><category term="iPod"></category><category term="IR"></category><category term="remote"></category><category term="touch"></category><category term="TV-B-Gone"></category></entry><entry><title>Blog Feedback</title><link href="https://www.cyrozap.com/2010/05/05/blog-feedback/" rel="alternate"></link><updated>2010-05-05T23:22:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-05-05:2010/05/05/blog-feedback/</id><summary type="html">&lt;p&gt;Do any of you have any feedback for the blog? What am I doing wrong?
What am I doing right? All suggestions are welcome, just post them in
the comments.&lt;/p&gt;
&lt;p&gt;Also, if you want me to post something, i.e., take HD pics of some
electronic pieces, just let me know in the comments.&lt;/p&gt;</summary><category term="advice"></category><category term="comments"></category><category term="feedback"></category></entry><entry><title>Magellan Maestro 4040 Bootloader?</title><link href="https://www.cyrozap.com/2010/04/30/magellan-maestro-4040-bootloader/" rel="alternate"></link><updated>2010-04-30T21:48:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-04-30:2010/04/30/magellan-maestro-4040-bootloader/</id><summary type="html">&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/04/0430002002.jpg"&gt;&lt;img alt="A bootloader?" src="https://www.cyrozap.com/wp-uploads/2010/04/0430002002-640x480.jpg" title="A bootloader?" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Can anyone tell me what this is? It seems to be some sort of bootloader.
I looked it up, and it seems as though you can update the WinCE image by
using WinCE update. If I can get a backup Magellan Maestro 4040
WinCEimg.bin, I'll see if I can upgrade the OS to a normal WinCE
environment, complete with desktop. Maybe in the future I'll be able to
get Linux on it. Let me know what you think in the comments.&lt;/p&gt;
&lt;p&gt;Power button is select, reset button is a down arrow. Here's the Menu
breakdown:&lt;br /&gt;
&lt;br /&gt;
Venus3 UT R08&lt;/p&gt;
&lt;p&gt;0=WINCE Upgrade&lt;br /&gt;
- 0=WINCE by SD/MMC (Format)&lt;br /&gt;
- 1=WINCE by SD/MMC&lt;br /&gt;
- 2=WINCE by USB (Format)&lt;br /&gt;
- 3=WINCE by USB&lt;br /&gt;
- 4=EXIT&lt;/p&gt;
&lt;p&gt;1=GPS Tools&lt;br /&gt;
- 0=Gps Updating&lt;br /&gt;
- 1=Gps Test&lt;br /&gt;
- 2=Exit&lt;/p&gt;
&lt;p&gt;2=BT Tools&lt;br /&gt;
- 0=BT Test Mode&lt;br /&gt;
- 1=Write BT MAC&lt;br /&gt;
- 2=Exit&lt;/p&gt;
&lt;p&gt;3=UBOOT Upgrade&lt;br /&gt;
- 0=UBOOT by USB&lt;br /&gt;
- 1=UBOOT by SD/MAC&lt;br /&gt;
- 2=Exit&lt;/p&gt;
&lt;p&gt;4=Memory Tools&lt;br /&gt;
- 0=ROM CheckSum&lt;br /&gt;
- 1=Memory Test&lt;br /&gt;
- 2=Exit&lt;/p&gt;
&lt;p&gt;5=Other Tools&lt;br /&gt;
- 0=CPLD Upgrade by SD/MMC&lt;br /&gt;
- 1=CPLD Upgrade by USB&lt;br /&gt;
- 2=Read CPLD user code&lt;br /&gt;
- 3=Download &amp;amp; Run&lt;br /&gt;
- 4=Nand Tools&lt;br /&gt;
- 5=Nand Bad Block Check&lt;br /&gt;
- 6=Nand Ecc Check&lt;br /&gt;
- 7=Format&lt;br /&gt;
- 8=Exit&lt;/p&gt;</summary><category term="bootloader"></category><category term="GPS"></category><category term="Magellan"></category></entry><entry><title>Mini-Mendel Production Files</title><link href="https://www.cyrozap.com/2010/04/26/mini-mendel-production-files/" rel="alternate"></link><updated>2010-04-26T22:08:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-04-26:2010/04/26/mini-mendel-production-files/</id><summary type="html">&lt;p&gt;If you've wanted to make a mini-Mendel with your MakerBot, I made a set
of &lt;a href="http://www.thingiverse.com/thing:2577"&gt;production files&lt;/a&gt; to do just
that.&lt;/p&gt;</summary><category term="3D"></category><category term="CNC"></category><category term="MakerBot"></category><category term="production"></category><category term="rapid prototyping"></category><category term="RepRap"></category></entry><entry><title>How-to: Build Your Own DIY-intosh</title><link href="https://www.cyrozap.com/2010/04/22/how-to-build-your-own-diy-intosh/" rel="alternate"></link><updated>2010-04-22T18:40:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-04-22:2010/04/22/how-to-build-your-own-diy-intosh/</id><summary type="html">&lt;p&gt;Well, I think it's about time that I made more of a how-to to build a
DIY-intosh.&lt;/p&gt;
&lt;p&gt;There are plenty of how-to's to make
&lt;a href="http://www.osx86project.org/"&gt;Hackintoshes&lt;/a&gt;, but those are teetering on
the edge of legality, are difficult to get as stable as a store-bought
Mac, and OS updates can't always be installed without any mods. Macs are
supposed to be reliably stable&amp;mdash;that's one of their main selling points;
when you remove that stability, you remove a major component of the Mac.
The only reasons you would want to build a Hackintosh is to have a
really powerful Mac Pro at a really good cost, to have an OS X netbook,
or to have a really inexpensive Mac Mini.&lt;/p&gt;
&lt;p&gt;The DIY-intosh can be built as a really inexpensive (mine was around
$300) yet still Apple-reliable Mac. Here's how to make one of your
own:&lt;/p&gt;
&lt;h2&gt;Step 1: Gather Materials&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;MacBook logic board  &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/Seagate-Momentus-7200RPM-Internal-ST9250410AS-Bare/dp/B002BWPWY4%3FSubscriptionId%3DAKIAJFBZNQIKLFHMFEXA%26tag%3Dcyrstecpro-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB002BWPWY4"&gt;SATA 2.5" HDD&lt;/a&gt;  &lt;/li&gt;
&lt;li&gt;MacBook HDD cable  &lt;/li&gt;
&lt;li&gt;MacBook logic board fan and heat sink with temp sensors  &lt;/li&gt;
&lt;li&gt;MacBook sleep switch/battery connector  &lt;/li&gt;
&lt;li&gt;MacBook DC-DC port (the power connector)  &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/Apple-MagSafe-Adapter-MacBook-MA538LL/dp/B000FQ245I%3FSubscriptionId%3DAKIAJFBZNQIKLFHMFEXA%26tag%3Dcyrstecpro-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB000FQ245I"&gt;MacBook power block&lt;/a&gt;  &lt;/li&gt;
&lt;li&gt;MacBook keyboard cable  &lt;/li&gt;
&lt;li&gt;MacBook Bluetooth card  &lt;/li&gt;
&lt;li&gt;MacBook Bluetooth card cable  &lt;/li&gt;
&lt;li&gt;MacBook WiFi card  &lt;/li&gt;
&lt;li&gt;WiFi antennas  &lt;/li&gt;
&lt;li&gt;2GB DDR2 667 MHz laptop RAM (&lt;a href="http://www.amazon.com/Crucial-2x1GB-200-Pin-667Mhz-SODIMM/dp/B000FQ2JLW%3FSubscriptionId%3DAKIAJFBZNQIKLFHMFEXA%26tag%3Dcyrstecpro-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB000FQ2JLW"&gt;2 x 1GB&lt;/a&gt;
or &lt;a href="http://www.amazon.com/Crucial-256Mx64PC2-5300-CT25664AC667-200-Pin-SODIMM/dp/B000F7QRTG%3FSubscriptionId%3DAKIAJFBZNQIKLFHMFEXA%26tag%3Dcyrstecpro-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB000F7QRTG"&gt;1 x 2GB&lt;/a&gt;)  &lt;/li&gt;
&lt;li&gt;Generic magnet to keep the sleep switch activated  &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/Arctic-Silver-Thermal-Compound-Grams/dp/B000BSLU2S%3FSubscriptionId%3DAKIAJFBZNQIKLFHMFEXA%26tag%3Dcyrstecpro-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB000BSLU2S"&gt;Thermal paste for heat sink&lt;/a&gt;  &lt;/li&gt;
&lt;li&gt;LED  &lt;/li&gt;
&lt;li&gt;Resistor for LED to bring the 5V to 2.5-3V (220 Ohm)  &lt;/li&gt;
&lt;li&gt;Case to put everything in&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Step 2: Make Sure the Parts Fit In the Case&lt;/h2&gt;
&lt;p&gt;Make sure they all fit when put together, otherwise you'll have serious
problems later on. If they don't fit, find a case that will let them
fit. I used an old cable modem enclosure.&lt;br /&gt;
&lt;a href="https://www.cyrozap.com/wp-uploads/2010/02/IMAG0003.jpg"&gt;&lt;img alt="Inside the DIY-intosh" src="https://www.cyrozap.com/wp-uploads/2010/02/IMAG0003-1024x768.jpg" title="Inside the DIY-intosh" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Step 3: Modify the Case as Needed&lt;/h2&gt;
&lt;p&gt;This means you just need to drill holes for cooling, a power button,
ports, etc.&lt;/p&gt;
&lt;h2&gt;Step 4: Secure the Logic Board to the Case&lt;/h2&gt;
&lt;p&gt;You can use either screws or glue. I used hot glue because it's easy,
moderately strong, it has insulating properties, and I can remove it if
necessary.&lt;/p&gt;
&lt;h2&gt;Step 5: Attach and Secure Other Parts&lt;/h2&gt;
&lt;p&gt;Attach and secure electrical components to the logic board and to the
case, if needed. This includes the power switch, the DC-DC adapter, the
Wi-Fi antennas, and the HDD. After you insert the sleep switch into the
logic board, you can glue the magnet to the top of the switch. Make sure
the magnet doesn't cause any shorts. For wiring the power switch to the
keyboard cable, &lt;a href="http://wolphbite.com/blog/?p=62"&gt;see what this guy posted&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Step 6: Close It Up&lt;/h2&gt;
&lt;p&gt;Close, but don't yet seal, the case.&lt;/p&gt;
&lt;h2&gt;Step 7: Install OS X&lt;/h2&gt;
&lt;p&gt;See &lt;a href="https://www.cyrozap.com/2010/04/03/diy-intosh-is-working/"&gt;this post&lt;/a&gt;
for this step.&lt;/p&gt;
&lt;h2&gt;Step 8: &lt;del&gt;Brag to Your Friends&lt;/del&gt; Celebrate the Completion of Your New Mac!&lt;/h2&gt;
&lt;p&gt;Many thanks to Tyler of &lt;a href="http://www.phantomdev.com/"&gt;Phantom Dev&lt;/a&gt;, who
inspired me to do this project and who gave me the &lt;a href="http://wolphbite.com/blog/?p=62"&gt;link to another mod&lt;/a&gt; that has a little more detail on
wiring the power button. I also thank ebay for being there to host the
auctions and I thank the people I bought parts from for having such
awesome prices. I thank &lt;a href="http://hammerheadtech.com/"&gt;Hammerhead Technology&lt;/a&gt; for selling me the logic board
and Apple's designers and engineers for making such a great piece of
hardware and software.&lt;/p&gt;</summary><category term="DIY"></category><category term="DIY-intosh"></category><category term="electronics"></category><category term="Mac"></category><category term="MacBook"></category><category term="mod"></category></entry><entry><title>DIY-intosh is Working!</title><link href="https://www.cyrozap.com/2010/04/03/diy-intosh-is-working/" rel="alternate"></link><updated>2010-04-03T11:00:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-04-03:2010/04/03/diy-intosh-is-working/</id><summary type="html">&lt;p&gt;&lt;strong&gt;&lt;em&gt;UPDATE (8/19/2010): You could probably do this a lot easier/quicker
by just making an OS X USB drive by making a DMG of the OS X install
disk and then restoring that image onto an 8 GB or larger USB drive, but
this post is just about how I did it.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/04/0403001109a.jpg"&gt;&lt;img alt="The final result!" src="https://www.cyrozap.com/wp-uploads/2010/04/0403001109a-1024x768.jpg" title="The final result!" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Well, that sleep switch certainly did the trick! It turns out that Macs
w/o an OS can't do anything until OS X is installed. This means that
boot keys like "T" for Target Disk Mode and "C" for Boot from CD won't
work until the OS is installed. The good news is, using this info that I
learned myself, I was able to install OS X on my DIY-intosh.
This is what you need (or, rather, what I used):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1 DIY-intosh w/ newly attached sleep switch and magnet and w/ pre-formatted HDD  &lt;/li&gt;
&lt;li&gt;1 Mac with a firewire port  &lt;/li&gt;
&lt;li&gt;2 &lt;a href="http://www.amazon.com/gp/product/B000FQ245I?ie=UTF8&amp;amp;tag=cyrstecpro-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=B000FQ245I"&gt;power cables&lt;/a&gt;  &lt;/li&gt;
&lt;li&gt;1 firewire cable (If the non-DIY Mac has a firewire 800 port you need
&lt;a href="http://www.amazon.com/gp/product/B001NXDQAY?ie=UTF8&amp;amp;tag=cyrstecpro-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=B001NXDQAY"&gt;this cable&lt;/a&gt;,
if it has a firewire 400 port, then you just need &lt;a href="http://www.amazon.com/gp/product/B000XQILO8?ie=UTF8&amp;amp;tag=cyrstecpro-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=B000XQILO8"&gt;this cable&lt;/a&gt;.  &lt;/li&gt;
&lt;li&gt;1 mini-DVI to whatever cable (I used a &lt;a href="http://www.amazon.com/gp/product/B000EHSN9Y?ie=UTF8&amp;amp;tag=cyrstecpro-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=B000EHSN9Y"&gt;mini-DVI to DVI cable&lt;/a&gt;)  &lt;/li&gt;
&lt;li&gt;1 &lt;a href="http://www.amazon.com/gp/product/B000V07N9U?ie=UTF8&amp;amp;tag=cyrstecpro-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=B000V07N9U"&gt;USB keyboard&lt;/a&gt;  &lt;/li&gt;
&lt;li&gt;1 &lt;a href="http://www.amazon.com/gp/product/B002TLTH7K?ie=UTF8&amp;amp;tag=cyrstecpro-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=B002TLTH7K"&gt;USB mouse&lt;/a&gt;  &lt;/li&gt;
&lt;li&gt;1 display  &lt;/li&gt;
&lt;li&gt;1 &lt;a href="http://www.amazon.com/Mac-version-10-6-Snow-Leopard/dp/B001AMHWP8%3FSubscriptionId%3DAKIAJFBZNQIKLFHMFEXA%26tag%3Dcyrstecpro-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB001AMHWP8"&gt;Mac OS X 10.6 DVD&lt;/a&gt;  &lt;/li&gt;
&lt;li&gt;lots of patience&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;How to install OS X on the DIY-intosh:&lt;/h2&gt;
&lt;p&gt;1.) Connect everything logically. Connect the Macs via firewire cable,
plug Macs into wall power, connect DIY-intosh to monitor, connect USB
keyboard and mouse to DIY-intosh, etc.  &lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/04/0402001929.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2010/04/0402001929-300x225.jpg" /&gt;&lt;/a&gt;  &lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/04/0402001932.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2010/04/0402001932-300x225.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2.) Boot and log-in to MacBook.&lt;/p&gt;
&lt;p&gt;3.) Insert OS X Install DVD.&lt;/p&gt;
&lt;p&gt;4.) Go to Sysprefs-&gt;Boot Devices (or something like that).&lt;/p&gt;
&lt;p&gt;5.) Select the DVD and select restart now.&lt;/p&gt;
&lt;p&gt;6.) While the MacBook is rebooting, hold "T" to enter Firewire Target
Disk Mode.&lt;/p&gt;
&lt;p&gt;7.) Boot DIY-intosh.&lt;/p&gt;
&lt;p&gt;8.) Wait a long time.&lt;/p&gt;
&lt;p&gt;9.) If you see the install screen, success! If not, figure out what's
wrong and fix it.  &lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/04/0402001929b.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2010/04/0402001929b-300x225.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;10.) If you haven't already done so, format the HDD to a Mac Journaled
file system by selecting it from the Utilities menu at the top of the
screen.&lt;/p&gt;
&lt;p&gt;11.) Proceed through the installation. Make sure that when you select a
drive to install to, pick your DIY-intosh one and NOT your MacBook one.
Just a word of warning.  &lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/04/0402001935.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2010/04/0402001935-300x225.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;12.) Wait a long time (1.5-2 hours) for it to install. Disregard the "30
minutes remaining" and read a book or watch a movie because from this
point until the install finishes there's no user intervention
required.  &lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/04/0402001936.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2010/04/0402001936-300x225.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;13.) When your DIY-intosh reboots, turn off the MacBook, for it is no
longer necessary. Unplug the firewire cable for the same reason.&lt;/p&gt;
&lt;p&gt;14.) Enjoy the welcome animation and your new DIY-intosh.&lt;/p&gt;
&lt;p&gt;I swapped the Marvel MC85 card that I was using for the AzureWave card
from my Eee PC 1000HE and now WiFi works fine on both my netbook and my
DIY-intosh. I needed to use ndiswrapper to get the WiFi working on my
netbook, but I figured a hack on my Linux community-supported netbook
would be better supported than a hack on my OS X DIY-intosh.&lt;/p&gt;</summary><category term="DIY"></category><category term="DIY-intosh"></category><category term="electronics"></category><category term="Mac"></category><category term="MacBook"></category><category term="mod"></category></entry><entry><title>Fun With Git, iPod touches, and Cellular Modules</title><link href="https://www.cyrozap.com/2010/03/31/fun-with-git-ipod-touches-and-cellular-modules/" rel="alternate"></link><updated>2010-03-31T16:38:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-03-31:2010/03/31/fun-with-git-ipod-touches-and-cellular-modules/</id><summary type="html">&lt;p&gt;See my &lt;a href="http://github.com/cyrozap/iPod-touch-Cellular-Upgrade"&gt;iPod touch Cellular Upgrade&lt;/a&gt; to see
what I mean. This pretty much turns any iPod touch into an unlocked GSM
phone. There's also potential for making it have a cellular dial-up
modem, but that is a bit beyond my coding capabilities. At least the
hardware would be capable of it so someone who &lt;em&gt;can&lt;/em&gt; get it to be used
as a cellular modem can just fork my project. I &amp;lt;3 Git.&lt;/p&gt;</summary><category term="cellular"></category><category term="DIY"></category><category term="git"></category><category term="GPS"></category><category term="iPod"></category><category term="module"></category><category term="touch"></category></entry><entry><title>Aluminum Idler Wheel</title><link href="https://www.cyrozap.com/2010/03/28/aluminum-idler-wheel/" rel="alternate"></link><updated>2010-03-28T19:13:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-03-28:2010/03/28/aluminum-idler-wheel/</id><summary type="html">&lt;p&gt;Well, I'd just about had it with my MakerBot's Idler Wheel; It keept
ruining prints by separating from the bearing and letting the filament
slip to the side, away from the extruder's drive wheel, so I decided to
upgrade. I bought an aluminum idler wheel on ebay for $15 + $1.50
shipping (search for "reprap"). It has a groove cut in the side to keep
the filament from slipping oast the wheel, and it has the bearing
press-fit into the idler wheel, so the idler wheel will never slip off
the bearing and slip past the filament! It's been running well during
the prints I've been using it, and has made changing my skeinforge
settings easier by making the MakerBot's extruder much less dynamic and
much more reliable. I have also recently switched to skeinforge 7 from
skeinforge 5 so I could use the new raftless plugin with PLA.&lt;/p&gt;</summary><category term="3D"></category><category term="aluminum"></category><category term="CNC"></category><category term="fixed"></category><category term="idler"></category><category term="MakerBot"></category><category term="printing"></category><category term="wheel"></category></entry><entry><title>Fixing Mendel Production Files</title><link href="https://www.cyrozap.com/2010/03/21/fixing-mendel-production-files/" rel="alternate"></link><updated>2010-03-21T21:07:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-03-21:2010/03/21/fixing-mendel-production-files/</id><summary type="html">&lt;p&gt;Go to &lt;a href="http://www.thingiverse.com/thing:2035"&gt;http://www.thingiverse.com/thing:2035&lt;/a&gt; to get my fixes for steps
3 and 6 (and any future problem steps I encounter) of Spacexula's Mendel
Production Files. Step 3 had a few mesh holes, and in step 6, the
triangular piece was slightly above the ground, causing it to be printed
in midair.&lt;/p&gt;</summary><category term="3D"></category><category term="fixed"></category><category term="MakerBot"></category><category term="printing"></category><category term="RepRap"></category></entry><entry><title>High-Resolution Pictures of the Macbook Sleep Switch/Battery Connector</title><link href="https://www.cyrozap.com/2010/03/18/high-resolution-pictures-of-the-macbook-sleep-switch-battery-connector/" rel="alternate"></link><updated>2010-03-18T19:43:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-03-18:2010/03/18/high-resolution-pictures-of-the-macbook-sleep-switch-battery-connector/</id><summary type="html">&lt;p&gt;I tried figuring it out, but I couldn't get the sleep switch pinout
(Apple goes to a lot of trouble to obscure the traces with the
silkscreen and both my multimeters are wonky&amp;mdash;they don't like displaying
correct values). Now it's in the DIY-intosh and it still doesn't default
to outputting to the external screen. I can only hope that it doesn't
work for the same reason that Firewire Target Disk Mode doesn't work; OS
X hasn't been installed yet.&lt;/p&gt;
&lt;p&gt;As always, click on the pictures to see the hi-res versions.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/03/Apple-Battery-Connector-and-Sleep-Switch-1.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2010/03/Apple-Battery-Connector-and-Sleep-Switch-1-150x112.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/03/Apple-Battery-Connector-and-Sleep-Switch-2.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2010/03/Apple-Battery-Connector-and-Sleep-Switch-2-150x112.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/03/Apple-Battery-Connector-and-Sleep-Switch-3.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2010/03/Apple-Battery-Connector-and-Sleep-Switch-3-150x112.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/03/Apple-Battery-Connector-and-Sleep-Switch-4.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2010/03/Apple-Battery-Connector-and-Sleep-Switch-4-150x112.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/03/Apple-Battery-Connector-and-Sleep-Switch-5.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2010/03/Apple-Battery-Connector-and-Sleep-Switch-5-150x112.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/03/Apple-Battery-Connector-and-Sleep-Switch-6.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2010/03/Apple-Battery-Connector-and-Sleep-Switch-6-150x112.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/03/Apple-Battery-Connector-and-Sleep-Switch-7.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2010/03/Apple-Battery-Connector-and-Sleep-Switch-7-150x112.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/03/Apple-Battery-Connector-and-Sleep-Switch-8.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2010/03/Apple-Battery-Connector-and-Sleep-Switch-8-150x112.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;</summary><category term="battery"></category><category term="connector"></category><category term="DIY"></category><category term="DIY-intosh"></category><category term="Mac"></category><category term="MacBook"></category><category term="mod"></category><category term="sleep"></category><category term="switch"></category></entry><entry><title>Swapping FTDI USB to Serial Cable for Hardware Serial Works Nicely</title><link href="https://www.cyrozap.com/2010/03/18/swapping-ftdi-usb-to-serial-cable-for-hardware-serial-works-nicely/" rel="alternate"></link><updated>2010-03-18T13:37:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-03-18:2010/03/18/swapping-ftdi-usb-to-serial-cable-for-hardware-serial-works-nicely/</id><summary type="html">&lt;p&gt;Well, I was getting tired of having to load my prints onto an SD card by
formatting, loading the file, and inserting into the MakerBot because
when a print fails, I have to repeat the process. So, I finally decided
to swap the FTDI USB to Serial cable for hardware serial cable. Now, I
can print from the computer directly without worrying about slowdowns.
It's faster because instead of relying on a driver to convert the data
and push it over the USB where it is then converted into serial, it just
uses the hardware serial controller, which uses a whole lot less
processing power than USB does.&lt;/p&gt;
&lt;p&gt;Here's a video showing my MakerBot workstation:&lt;/p&gt;
&lt;p&gt;&lt;div class="videobox"&gt;
                &lt;iframe
                    src="//player.vimeo.com/video/10251245?title=0&amp;amp;byline=0&amp;amp;portrait=0"
                    width="640" height="390" frameborder="0"
                    webkitAllowFullScreen mozallowfullscreen allowFullScreen&gt;
                &lt;/iframe&gt;
            &lt;/div&gt;&lt;/p&gt;
&lt;p&gt;I also have it on YouTube, but YouTube makes my videos all jittery when
it transcodes them. I only really use YouTube when I need to use the
annotations.&lt;/p&gt;</summary><category term="3D"></category><category term="DIY"></category><category term="FTDI"></category><category term="MakerBot"></category><category term="printer"></category><category term="printing"></category><category term="RS232"></category><category term="Serial"></category><category term="TTL"></category><category term="USB"></category></entry><entry><title>My Apologies and Cellular Internet</title><link href="https://www.cyrozap.com/2010/03/16/my-apologies-and-cellular-internet/" rel="alternate"></link><updated>2010-03-16T11:57:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-03-16:2010/03/16/my-apologies-and-cellular-internet/</id><summary type="html">&lt;p&gt;Sorry about the downtime! That storm we just had (in the northeast US)
knocked out our power for a few days, but it's back now and the server
is fine.&lt;/p&gt;
&lt;p&gt;During that time without internet at home, I went to the library to
figure out how to tether my phone (use my phone's cellular modem to
connect to the internet) to my computer. There, I found out
how to enable the dial-up modem on my phone (Google it), which is an LG
enV2. Then, I found a free dial-up provider based out of southern
California called
&lt;a href="http://myfreewirelessisp.com/"&gt;myfreewirelessisp.com&lt;/a&gt;. I signed up with
them and, on my computer, set the number to dial as 619-364-3734
(instead of Verizon's number, #777) and entered my username and
password for my account that I had just signed up for. I connected
(using my computer) and I then had a wireless dial-up connection to the
internet. What's great about this is that instead of using Verizon's
connection and having to pay a ton of money ON TOP of my minutes usage,
I just use this number and I only use up minutes. The even better part
is that on nights and weekends, calls are free, and as this is just
another call, my mobile internet is free on nights and weekends. The
only downside? It's dial-up, which means it's extra-slow. But, it's
better than nothing.&lt;/p&gt;
&lt;p&gt;So, now I can have internet wherever in the US I bring my phone and
netbook and there is cellular coverage that won't cost me an arm and a
leg.&lt;/p&gt;
&lt;p&gt;Eventually, I'll see if I can get an ASUS WL-520gU, install OpenWRT,
connect my phone to it over usb, and make it a mobile WiFi Internet
hotspot that I can connect to batteries and put in my backpack.&lt;/p&gt;
&lt;p&gt;Oh! I forgot to mention that I increased the baud rate on my phone from
38400 to 115200 so that sped up the internet a bit. Google it if you
want to find out how.&lt;/p&gt;</summary><category term="CDMA"></category><category term="cellular"></category><category term="electrical"></category><category term="electricity"></category><category term="enV2"></category><category term="fixed"></category><category term="free"></category><category term="internet"></category><category term="LG"></category><category term="myfreewireless.com"></category><category term="outage"></category><category term="power"></category><category term="problems"></category><category term="server"></category><category term="technical difficulties"></category></entry><entry><title>More IM-ME info</title><link href="https://www.cyrozap.com/2010/03/12/more-im-me-info/" rel="alternate"></link><updated>2010-03-12T20:27:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-03-12:2010/03/12/more-im-me-info/</id><summary type="html">&lt;p&gt;Ok, I don't think I'm going to do anything with this, but to all those
who've seen my previous posts and want to hack a GirlTech IM-ME, I give
you
&lt;a href="http://travisgoodspeed.blogspot.com/2010/03/im-me-goodfet-wiring-tutorial.html"&gt;this&lt;/a&gt;.&lt;/p&gt;</summary><category term="chatpad"></category><category term="electronics"></category><category term="GirlTech"></category><category term="IM"></category><category term="IM-ME"></category><category term="mod"></category><category term="pink"></category><category term="remote"></category></entry><entry><title>Confessions</title><link href="https://www.cyrozap.com/2010/03/10/confessions/" rel="alternate"></link><updated>2010-03-10T21:54:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-03-10:2010/03/10/confessions/</id><summary type="html">&lt;p&gt;Ok, in the last post about the DIY-intosh, I said that it was complete.
Well, it wasn't. I really did think it was, but I was unable to install
OS X. The reason? It doesn't actually think that its non-existent lid is
closed. I thought the sleep switch was built into the board, but it is
in fact built into the battery connector. So, after trying to emulate
the switch by shorting out pins and not succeeding, I decided to take
the easy way out and just buy the battery connector. $8.50 in a Best
Offer on eBay; search for "Macbook battery connector." When I get the
item, I'll run tests on it to find the real pinouts and I'll take a
bunch of high-resolution photos of it because there are no high-res
photos of the battery connector online that I could find. I think it's a
hall-effect sensor and not a reed switch, and that might make things a
bit more difficult, but I'll try. I'll look for a chip number. Even if I
don't succeed, I'll still have some great photos so others can figure
out something without needing the actual sensor/assembly.&lt;/p&gt;
&lt;p&gt;And I'm still under my $300 goal ($293.29) :D&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Edit: Oh, and it looks like PuSH wasn't working before, but there was
an update for it and it's working now. Instant updates FTW.&lt;/em&gt;&lt;/p&gt;</summary><category term="DIY"></category><category term="DIY-intosh"></category><category term="electronics"></category><category term="fixed"></category><category term="LED"></category><category term="LEDs"></category><category term="Mac"></category><category term="MacBook"></category><category term="mod"></category><category term="pictures"></category></entry><entry><title>PuSH</title><link href="https://www.cyrozap.com/2010/03/03/push/" rel="alternate"></link><updated>2010-03-03T20:05:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-03-03:2010/03/03/push/</id><summary type="html">&lt;p&gt;I just installed the &lt;a href="http://wordpress.org/extend/plugins/pushpress/"&gt;PuSHPress plugin for Wordpress.org&lt;/a&gt;. It
should increase the speed at which feed readers are notified of new
posts from the blog. This post is pretty much testing the plugin.&lt;/p&gt;</summary><category term="PuSH"></category><category term="server"></category><category term="upgrades"></category><category term="Wordpress.org"></category></entry><entry><title>YES! Mendel Production Acceleration!</title><link href="https://www.cyrozap.com/2010/02/23/yes-mendel-production-acceleration/" rel="alternate"></link><updated>2010-02-23T20:17:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-02-23:2010/02/23/yes-mendel-production-acceleration/</id><summary type="html">&lt;p&gt;Great news! There are now &lt;a href="http://www.thingiverse.com/thing:1883"&gt;Mendel parts split into 24 MakerBot-printable plates&lt;/a&gt;! This is great for me,
considering I'm going to try to mass-produce Mendel parts. This is great
because it drastically reduces the number of times you need to
Skeinforge and print a new object from 80+ to 24. I'm &lt;em&gt;really&lt;/em&gt; excited
about this!&lt;/p&gt;</summary><category term="MakerBot"></category><category term="RepRap"></category></entry><entry><title>The DIY-intosh is finally complete!</title><link href="https://www.cyrozap.com/2010/02/18/the-diy-intosh-is-finally-complete/" rel="alternate"></link><updated>2010-02-18T15:13:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-02-18:2010/02/18/the-diy-intosh-is-finally-complete/</id><summary type="html">&lt;p&gt;I finshed it! Many thanks to Tyler of &lt;a href="http://www.phantomdev.com/"&gt;Phantom Dev&lt;/a&gt;, who inspired me to do this project and
who gave me the &lt;a href="http://wolphbite.com/blog/?p=62"&gt;link to another mod&lt;/a&gt;
that has a little more detail on wiring the power button. I also thank
ebay for being there to host the auctions and I thank the people I
bought parts from for having such awesome prices. I thank &lt;a href="http://hammerheadtech.com/"&gt;Hammerhead Technology&lt;/a&gt; for selling me the logic board
and Apple's designers and engineers for making such a great piece of
hardware and software.&lt;/p&gt;
&lt;p&gt;Total cost of the project: $284.79&lt;/p&gt;
&lt;p&gt;I made my goal! I got a few things as gifts and had some of the stuff on
hand already, so if I included those, it would be a little more money
and would have gone over my budget of $300.&lt;/p&gt;
&lt;p&gt;Tech Specs/Features:&lt;br /&gt;
- 2.0GHz Intel Core Duo&lt;br /&gt;
- 2GB RAM (667 MHz)&lt;br /&gt;
- 100 GB hard drive (7200 RPM)&lt;br /&gt;
- 802.11 b/g/n wifi&lt;br /&gt;
- Bluetooth&lt;br /&gt;
- Looks totally rad&lt;/p&gt;
&lt;p&gt;And here are some pictures of it:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/02/0218001317.jpg"&gt;&lt;img alt="The DIY-intosh" src="https://www.cyrozap.com/wp-uploads/2010/02/0218001317-300x225.jpg" title="The DIY-intosh in all its glory" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/02/IMAG0003.jpg"&gt;&lt;img alt="Inside the DIY-intosh" src="https://www.cyrozap.com/wp-uploads/2010/02/IMAG0003-300x225.jpg" title="Inside the DIY-intosh" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Note: There's a magnet inside, but it's not doing
anything. Why? There's no lid sensor/battery connector. Whoops! It has
been fixed.&lt;/p&gt;
&lt;p&gt;As always, you can click on the pictures to see them full-size.&lt;/p&gt;
&lt;p&gt;I'll post more info later.&lt;/p&gt;</summary><category term="DIY"></category><category term="DIY-intosh"></category><category term="electronics"></category><category term="LED"></category><category term="LEDs"></category><category term="Mac"></category><category term="MacBook"></category><category term="mod"></category><category term="Motorola"></category><category term="pictures"></category></entry><entry><title>DIY-intosh Works!</title><link href="https://www.cyrozap.com/2010/02/15/diy-intosh-works/" rel="alternate"></link><updated>2010-02-15T15:37:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-02-15:2010/02/15/diy-intosh-works/</id><summary type="html">&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/02/0213001207.jpg"&gt;&lt;img alt="DIY-intosh Boot" src="https://www.cyrozap.com/wp-uploads/2010/02/0213001207-640x480.jpg" title="DIY-intosh Boot" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The blinking folder icon just means that the EFI bootloader can't find a
hard drive with an OS installed on it. This is fine, considering that
there is no hard drive attached! All I need now is a good SATA laptop
HDD and I'll be all set.&lt;/p&gt;</summary><category term="DIY"></category><category term="DIY-intosh"></category><category term="electronics"></category><category term="Mac"></category><category term="MacBook"></category><category term="mod"></category></entry><entry><title>Reverse-engineering a VCR Knob/Jog-wheel</title><link href="https://www.cyrozap.com/2010/02/13/reverse-engineering-a-vcr-knobjog-wheel/" rel="alternate"></link><updated>2010-02-13T23:52:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-02-13:2010/02/13/reverse-engineering-a-vcr-knobjog-wheel/</id><summary type="html">&lt;p&gt;Here's a video I made showing that it outputs in a pseudo-digital way:&lt;/p&gt;
&lt;p&gt;&lt;div class="videobox"&gt;
                &lt;iframe
                    src="//player.vimeo.com/video/9435504?title=0&amp;amp;byline=0&amp;amp;portrait=0"
                    width="640" height="390" frameborder="0"
                    webkitAllowFullScreen mozallowfullscreen allowFullScreen&gt;
                &lt;/iframe&gt;
            &lt;/div&gt;&lt;/p&gt;
&lt;p&gt;From the video description:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This is a simple test I did to see how to decode the output from a VCR
knob. First, I used a multimeter while I moved the knob to find out
which pins went where inside the device. Then, upon finding that it's
a sort of pseudo-digital output, I wired it up to some LEDs and
started turning it. I didn't get any output when I turned it right,
but I'll figure that out eventually.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;By the way, my digital camcorder has a REALLY nice macro mode built in
(if you haven't already noticed from the video). One time, I held the
camera up to my netbook's screen while it was set to macro mode and I
could see the individual pixels INSANELY crisply; so crisply, in fact,
that I could see the individual RGB bars.&lt;/p&gt;
&lt;p&gt;Expect a post about the DIY-intosh tomorrow. Right now, I have to get
some sleep.&lt;/p&gt;</summary><category term="electronics"></category><category term="jog-wheel"></category><category term="knob"></category><category term="reverse-engineering"></category><category term="VCR"></category></entry><entry><title>Problems with Netbook Multitasking and MakerBots</title><link href="https://www.cyrozap.com/2010/02/07/problems-with-netbook-multitasking-and-makerbots/" rel="alternate"></link><updated>2010-02-07T15:30:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-02-07:2010/02/07/problems-with-netbook-multitasking-and-makerbots/</id><summary type="html">&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/02/0207001432.jpg"&gt;&lt;img alt="Another FAIL" src="https://www.cyrozap.com/wp-uploads/2010/02/0207001432-640x480.jpg" title="Another FAIL" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;XYZ stopped, but the extruder kept going. Lovely.&lt;/p&gt;
&lt;p&gt;This is what happens when you VNC into your MakerBot-controlling netbook
while it's printing something. It destroyed my extruder barrel by
coating it in PLA and pushing up the ceramic tape. There goes $20 for a
replacement. I don't think I'll be remotely managing my MakerBot ever
again. Well, I'm now going to be using a Pentium 4 3.00 GHz 512 MB RAM
machine that I got for free to control my MakerBot. Hopefully that will
solve some of the problems I've had in the past. At least it'll
Skeinforge faster.&lt;/p&gt;</summary><category term="MakerBot"></category></entry><entry><title>Storage upgrade!</title><link href="https://www.cyrozap.com/2010/02/04/storage-upgrade/" rel="alternate"></link><updated>2010-02-04T21:25:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-02-04:2010/02/04/storage-upgrade/</id><summary type="html">&lt;p&gt;I just installed an 80 GB HDD into this server. It's mounted to
wp-uploads on boot, so whenever I upload a file to the server, it goes
directly onto the 80 GB HDD. I think it's 7200 RPM but I don't know for
sure. It's also not from the 90s (like the 10 GB HDD that contains the
rest of the filesystem). Accessing files on it seems faster than from
the 10 GB HDD. This also means that I have 80 GB more storage space than
before, so I don't have to upload everything to Picasa and then embed
it. I'm really excited, considering that I got the HDD for free.&lt;/p&gt;</summary><category term="HDD"></category><category term="server"></category><category term="storage"></category><category term="upgrades"></category></entry><entry><title>MakerBot #000117 Picasa Web Photo Album</title><link href="https://www.cyrozap.com/2010/01/22/makerbot-000117-picasa-web-photo-album/" rel="alternate"></link><updated>2010-01-22T21:48:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-01-22:2010/01/22/makerbot-000117-picasa-web-photo-album/</id><summary type="html">&lt;p&gt;If you didn't know already, many of the pictures of my MakerBot can be
found at &lt;a href="http://picasaweb.google.com/cyrozap/MakerBot000117Spartan"&gt;http://picasaweb.google.com/cyrozap/MakerBot000117Spartan&lt;/a&gt;.&lt;/p&gt;</summary><category term="MakerBot"></category><category term="photos"></category></entry><entry><title>It's PLA time!</title><link href="https://www.cyrozap.com/2010/01/21/its-pla-time/" rel="alternate"></link><updated>2010-01-21T20:55:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-01-21:2010/01/21/its-pla-time/</id><summary type="html">&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/01/0121002037.jpg"&gt;&lt;img alt="HaD CES Badge" src="https://www.cyrozap.com/wp-uploads/2010/01/0121002037-640x480.jpg" title="HaD CES Badge" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is the Hack-a-Day badge I printed from the file they put on
Thingiverse. It was printed in PLA sans-raft. There was no warping. At
all. :D&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.thingiverse.com/thing:1562"&gt;Here's where to get the file.&lt;/a&gt;&lt;/p&gt;</summary><category term="3D"></category><category term="CNC"></category><category term="MakerBot"></category><category term="PLA"></category><category term="printing"></category><category term="rapid prototyping"></category><category term="RepRap"></category></entry><entry><title>PLA!</title><link href="https://www.cyrozap.com/2010/01/10/pla/" rel="alternate"></link><updated>2010-01-10T15:54:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2010-01-10:2010/01/10/pla/</id><summary type="html">&lt;p&gt;A few days ago, I ordered some PLA (from
&lt;a href="http://ultimachine.com"&gt;UltiMachine&lt;/a&gt;, at $47.50) so I could print out
larger objects without warping. It's arrived, and now I have to figure
out how to modify my MakerBot to use it. I found &lt;a href="http://groups.google.com/group/makerbot/browse_thread/thread/a4ccce5146d0c924/d4a1453c5999ab27"&gt;this thread&lt;/a&gt;
helpful.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2010/01/0107002046.jpg"&gt;&lt;img alt="PLA" src="https://www.cyrozap.com/wp-uploads/2010/01/0107002046-640x480.jpg" title="This is the PLA I ordered. It is Natureworks PLA4042D ordered from http://ultimachine.com." /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Just so you know, &lt;a href="http://makerbot.com"&gt;MakerBot Industries&lt;/a&gt; is also
selling
&lt;a href="http://store.makerbot.com/plastic/pla-4032d-5lb-coil.html"&gt;PLA&lt;/a&gt;, but it
is 4032D, and is currently on sale at $60 (and will rise to $80 on
Monday). Supposedly, 4032D is better because it has a more ABS-like
melting point so it can be used in a MakerBot more easily, but I've
heard 4042D works fine.&lt;/p&gt;</summary><category term="3D"></category><category term="extruder"></category><category term="MakerBot"></category><category term="PLA"></category><category term="printing"></category><category term="rapid prototyping"></category><category term="RepRap"></category></entry><entry><title>MAKE: Money and DIY-intosh</title><link href="https://www.cyrozap.com/2009/12/29/make-money-and-diy-intosh/" rel="alternate"></link><updated>2009-12-29T14:58:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2009-12-29:2009/12/29/make-money-and-diy-intosh/</id><summary type="html">&lt;p&gt;I signed up for &lt;a href="http://makezine.com/"&gt;MAKE Magazine's&lt;/a&gt; &lt;a href="http://makezine.com/makemoneyprogram/"&gt;Make: Money&lt;/a&gt; program. With it, I can
sell MAKE Magazine subscriptions to people and have %50 of the money go
to this blog! It's a really cool system, and now, people that can view
this blog can order online using &lt;a href="https://readerservices.makezine.com/MK/subnew.aspx?PC=MK&amp;amp;PK=2900043&amp;amp;FC=UNITED+STATES"&gt;this link&lt;/a&gt;.
When you click on the link, you are taken to MAKE Magazine's web order
form. All you have to do is fill out the required information and pay
for the subscription. Half of the money is automatically sent to the
blog and you get subscribed to an awesome magazine. I'm speaking from
experience; I subscribe to MAKE, too, and it's great. There are a TON of
great projects, articles, product reviews, and more. So why wait? &lt;a href="https://readerservices.makezine.com/MK/subnew.aspx?PC=MK&amp;amp;PK=2900043&amp;amp;FC=UNITED+STATES"&gt;Order now!&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ok, the sales pitch is over. If you haven't already noticed, I've
renamed the DIY Mac project to DIY-intosh. The current status is good; I
have most of the parts already and the rest are on their way. The reason
why this has taken so long is because I accidentally bought the wrong
CPU fan and had to send it back. Also, I had to wait until monday to
deposit the money I got for Christmas. The good news is that I have or
have ordered all of the parts to make a functioning Mac. The next post
about the DIY-intosh will have a bunch of pictures. This is going to be
awesome.&lt;/p&gt;
&lt;p&gt;Oh, and I probably won't be posting any more fund-raising posts.&lt;/p&gt;</summary><category term="DIY"></category><category term="DIY-intosh"></category><category term="Mac"></category><category term="MacBook"></category><category term="MAKE Magazine"></category><category term="mod"></category><category term="Support"></category></entry><entry><title>DIY Mac Part II</title><link href="https://www.cyrozap.com/2009/12/10/diy-mac-part-ii/" rel="alternate"></link><updated>2009-12-10T06:13:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2009-12-10:2009/12/10/diy-mac-part-ii/</id><summary type="html">&lt;p&gt;The parts have been bought; all except the MacBook keyboard and the
thermal compound. So it begins.&lt;/p&gt;
&lt;p&gt;Please donate; I really need money for this project!&lt;/p&gt;
&lt;p&gt;^ That must have sounded reeeeally desperate.&lt;/p&gt;</summary><category term="DIY"></category><category term="DIY-intosh"></category><category term="electronics"></category><category term="Mac"></category><category term="MacBook"></category><category term="mod"></category><category term="Support"></category></entry><entry><title>Failures and Succeses</title><link href="https://www.cyrozap.com/2009/12/06/failures-and-succeses/" rel="alternate"></link><updated>2009-12-06T16:46:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2009-12-06:2009/12/06/failures-and-succeses/</id><summary type="html">&lt;p&gt;This post summarizes the events of the past few days:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MakerBot randomly stops during large print (Mendel extruder), causing
blob; blob makes print fail epicly.&lt;/li&gt;
&lt;li&gt;Happens again; no idea what's going wrong.&lt;/li&gt;
&lt;li&gt;I tighten the X/Y belts.&lt;/li&gt;
&lt;li&gt;Happens AGAIN!&lt;/li&gt;
&lt;li&gt;I sleep on the thought.&lt;/li&gt;
&lt;li&gt;I tighten down the extruder.&lt;/li&gt;
&lt;li&gt;I take a trip online to the MakerBot Google group; find out what I
have to do.&lt;/li&gt;
&lt;li&gt;I fix it.&lt;/li&gt;
&lt;li&gt;I happily print out Mendel parts.&lt;/li&gt;
&lt;li&gt;:D&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2009/12/1206091249.jpg"&gt;&lt;img alt="Mendel Extruder" src="https://www.cyrozap.com/wp-uploads/2009/12/1206091249-640x480.jpg" title="This is the first Mendel extruder I printed. It was warped, so I printed a second one that wasn't." /&gt;&lt;/a&gt;&lt;/p&gt;</summary><category term="3D"></category><category term="ABS"></category><category term="CNC"></category><category term="error"></category><category term="extruder"></category><category term="fixed"></category><category term="MakerBot"></category><category term="printing"></category><category term="problems"></category><category term="rapid prototyping"></category><category term="RepRap"></category><category term="technical difficulties"></category></entry><entry><title>Extruder working better than EVER!</title><link href="https://www.cyrozap.com/2009/12/04/extruder-working-better-than-ever/" rel="alternate"></link><updated>2009-12-04T20:03:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2009-12-04:2009/12/04/extruder-working-better-than-ever/</id><summary type="html">&lt;p&gt;I printed a dodecahedron today. It printed fine, but plastic was
building up on the nozzle.&lt;/p&gt;
&lt;p&gt;Why was this? Because the extruder was extruding faster than the build
base was moving.&lt;/p&gt;
&lt;p&gt;Why is this good? Before, the settings I used worked with my extruder
just fine. Now, because plastic is building up, it means that the
extruder's motor speed is faster than it was before, meaning that it has
become more efficient. This is probably because of the modifications I
made to it (especially the filing job I did on the pinch wheel). I
modified the Skeinforge settings and am going to print out another
dodecahedron momentarily.&lt;/p&gt;
&lt;p&gt;I'm so excited!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://picasaweb.google.com/lh/photo/V3LsloYcruJ-KTXIkxnTZQ?feat=embedwebsite"&gt;&lt;img alt="" src="https://lh3.ggpht.com/_zjsW_gTVXiM/SxmUrWbkEzI/AAAAAAAAB_0/XrCZB8ei8IA/s800/1204091654.3g2.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;From &lt;a href="http://picasaweb.google.com/cyrozap/MakerBot000117Spartan?feat=embedwebsite"&gt;MakerBot #000117 'Spartan'&lt;/a&gt;&lt;/p&gt;</summary><category term="3D"></category><category term="ABS"></category><category term="CNC"></category><category term="fixed"></category><category term="MakerBot"></category><category term="printing"></category><category term="rapid prototyping"></category></entry><entry><title>Build your own fully-functional, non-hackintosh Mac!</title><link href="https://www.cyrozap.com/2009/12/03/build-your-own-fully-functional-non-hackintosh-mac/" rel="alternate"></link><updated>2009-12-03T22:46:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2009-12-03:2009/12/03/build-your-own-fully-functional-non-hackintosh-mac/</id><summary type="html">&lt;p&gt;As a side project, I have decided to build a Mac for under $300 that
uses genuine Mac parts so that I may develop apps for the iPhone and
iPod touch legally. Links: &lt;a href="http://www.phantomdev.com/macbook_mod_2/"&gt;For Pics&lt;/a&gt;,
&lt;a href="http://www.phantomdev.com/macbook_mod_3/"&gt;For Details&lt;/a&gt;&lt;/p&gt;</summary><category term="build"></category><category term="DIY"></category><category term="DIY-intosh"></category><category term="electronics"></category><category term="Mac"></category><category term="MacBook"></category><category term="mod"></category></entry><entry><title>The Girly, Pink Chatpad of Awesomeness</title><link href="https://www.cyrozap.com/2009/11/30/the-girly-pink-chatpad-of-awesomeness/" rel="alternate"></link><updated>2009-11-30T23:39:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2009-11-30:2009/11/30/the-girly-pink-chatpad-of-awesomeness/</id><summary type="html">&lt;p&gt;As this is a technology modding blog, when I happened upon &lt;a href="http://hunterdavis.com/archives/333"&gt;this little
nugget of info&lt;/a&gt; I immediately
decided to put the &lt;a href="http://www.girltech.com/electronics-imMe.aspx"&gt;Girl Tech IM ME&lt;/a&gt; toy on my Amazon wish
list. I'm totally going to try to write a Linux driver for it. I do not
understand how the DMCA prevents Hunter from releasing his driver to the
public, but as I am not a lawyer nor do I want to consult one, I will
not release my driver (if I do end up making one).&lt;/p&gt;</summary><category term="chatpad"></category><category term="electronics"></category><category term="GirlTech"></category><category term="IM"></category><category term="IM-ME"></category><category term="mod"></category><category term="pink"></category><category term="remote"></category></entry><entry><title>In Other News: Fixing the "Fixed" Extruder</title><link href="https://www.cyrozap.com/2009/11/30/in-other-news-fixing-the-fixed-extruder/" rel="alternate"></link><updated>2009-11-30T21:30:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2009-11-30:2009/11/30/in-other-news-fixing-the-fixed-extruder/</id><summary type="html">&lt;p&gt;I believe that the repairs I just performed on the extruder are going to
work this time! I tried building a test dodecahedron recently and my
extruder just stalled on me. This has happened before, but I think I
have found the problem. The pinch wheel was allowing the filament to
slip next to it during extrusion, causing it to lose contact with the
idler wheel and stop extruding to fix this, I simply filed down the
pinch wheel. If this works, great! If not, I'll file down the pinch
wheel more until it is impossible for the filament to slip. Actually, I
think I'll just file it down anyways to prevent making ANOTHER cracked
idler wheel.&lt;/p&gt;</summary><category term="3D"></category><category term="CNC"></category><category term="extruder"></category><category term="fixed"></category><category term="MakerBot"></category><category term="mod"></category><category term="printing"></category><category term="problems"></category><category term="rapid prototyping"></category><category term="technical difficulties"></category></entry><entry><title>Rebuilt Extruder Creates More Problems</title><link href="https://www.cyrozap.com/2009/11/27/rebuilt-extruder-creates-more-problems/" rel="alternate"></link><updated>2009-11-27T20:42:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2009-11-27:2009/11/27/rebuilt-extruder-creates-more-problems/</id><summary type="html">&lt;p&gt;As I said in the last update for this, I rebuilt the extruder. Yay!&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2009/11/1125091639.jpg"&gt;&lt;img alt="The rebuilt extruder" src="https://www.cyrozap.com/wp-uploads/2009/11/1125091639-640x480.jpg" title="The rebuilt extruder" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;But there is a slight problem: the extruder, for some reason, extruded
for a while, but then just stopped. I think I just need to tighten it
down better (I did it by hand first). Ugh. This
run-it-for-a-bit-and-then-it-breaks-and-I-have-to-fix-it routine is
really getting on my nerves.&lt;/p&gt;</summary><category term="3D"></category><category term="ABS"></category><category term="CNC"></category><category term="extruder"></category><category term="fixed"></category><category term="MakerBot"></category><category term="printing"></category><category term="problems"></category><category term="rapid prototyping"></category><category term="technical difficulties"></category></entry><entry><title>Missing Picture</title><link href="https://www.cyrozap.com/2009/11/27/missing-picture/" rel="alternate"></link><updated>2009-11-27T20:39:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2009-11-27:2009/11/27/missing-picture/</id><summary type="html">&lt;p&gt;Ok, here's the picture of the Wii Nunchuck with the LED inside:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2009/11/1029091748.jpg"&gt;&lt;img alt="Wii LED Nunchuck" src="https://www.cyrozap.com/wp-uploads/2009/11/1029091748-640x480.jpg" title="Wii LED Nunchuck" /&gt;&lt;/a&gt;&lt;/p&gt;</summary><category term="electronics"></category><category term="game"></category><category term="LED"></category><category term="LEDs"></category><category term="Wii"></category><category term="wiimote"></category></entry><entry><title>Extruder rebuilt!</title><link href="https://www.cyrozap.com/2009/11/25/extruder-rebuilt/" rel="alternate"></link><updated>2009-11-25T20:56:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2009-11-25:2009/11/25/extruder-rebuilt/</id><summary type="html">&lt;p&gt;Self-explanatory title is self-explanatory.&lt;/p&gt;
&lt;p&gt;Long story short, I rebuilt the extruder for my MakerBot and will be
testing it tomorrow. Then I will be able to see how well having less
ceramic tape on the heater barrel works.&lt;/p&gt;</summary><category term="extruder"></category><category term="fixed"></category><category term="MakerBot"></category><category term="problems"></category><category term="rapid prototyping"></category><category term="technical difficulties"></category></entry><entry><title>Priorities</title><link href="https://www.cyrozap.com/2009/11/22/priorities/" rel="alternate"></link><updated>2009-11-22T22:04:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2009-11-22:2009/11/22/priorities/</id><summary type="html">&lt;p&gt;Ok, here goes:&lt;br /&gt;
I recieved the parts for the extruder on Monday, but didn't even touch
them until Wednesday and I haven't yet attached the nichrome wire,
thermistor, and ceramic tape to the heater barrel nor replaced the Idler
Wheel yet due to time constraints. It's not that I don't have enough
time&amp;mdash;in fact I have plenty of time&amp;mdash;but I don't have enough
&lt;em&gt;contiguous&lt;/em&gt; time. I need a good, constant 3-5 hours of total zen/focus
while working toward the goal, otherwise, things could go horribly
wrong. I need total concentration when I work.&lt;/p&gt;
&lt;p&gt;Why do I need 3-5 hours to work?&lt;br /&gt;
Well, I first need to fix the hardware issues, &lt;em&gt;then&lt;/em&gt; I need to figure
out optimal skeinforge settings so this same problem doesn't happen
again. Namely what I need to do is adjust the temperature settings to
accomodate the lesser amount of ceramic tape I will be putting on the
extruder. I'll probably keep the speed and infill density stuff the same
as before I got the new skeinforge. I may want to print out a few
dodecahedrons with the default settings first, then with my own, then I
will compare the two and pick the better settings set.&lt;/p&gt;
&lt;p&gt;I hope to be working on it over Thanksgiving weekend.&lt;/p&gt;</summary><category term="difficulties"></category><category term="extruder"></category><category term="MakerBot"></category><category term="problems"></category></entry><entry><title>This site is now using Google FeedBurner!</title><link href="https://www.cyrozap.com/2009/11/20/this-site-is-now-using-google-feedburner/" rel="alternate"></link><updated>2009-11-20T22:56:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2009-11-20:2009/11/20/this-site-is-now-using-google-feedburner/</id><summary type="html">&lt;p&gt;I figured out how to use FeedBurner! You can subscribe by clicking the
FeedBurner badge on the right-hand side of the page or by clicking the
RSS icon in the address bar of your browser.&lt;/p&gt;</summary><category term="Atom"></category><category term="feed"></category><category term="FeedBurner"></category><category term="Google"></category><category term="RSS"></category></entry><entry><title>WordPress 2.0 for iPhone is here!</title><link href="https://www.cyrozap.com/2009/11/17/wordpress-2-0-for-iphone-is-here/" rel="alternate"></link><updated>2009-11-17T15:25:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2009-11-17:2009/11/17/wordpress-2-0-for-iphone-is-here/</id><summary type="html">&lt;p&gt;Ok, so I just got the WordPress 2.0 app for my iPod touch. It's awesome.
I'm actually posting from it right now! I was surprised that it could
work with self-hosted WP, but it's true. I'm glad. :)&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2009/11/p_480_320_F6094051-6591-4D02-B386-57C7AB1755C0.jpeg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2009/11/p_480_320_F6094051-6591-4D02-B386-57C7AB1755C0.jpeg" /&gt;&lt;/a&gt;&lt;/p&gt;</summary><category term="iPhone"></category><category term="iPod"></category><category term="WordPress"></category><category term="Wordpress.org"></category><category term="WP"></category></entry><entry><title>MakerBot Extruder Woes</title><link href="https://www.cyrozap.com/2009/11/11/makerbot-extruder-woes/" rel="alternate"></link><updated>2009-11-11T16:54:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2009-11-11:2009/11/11/makerbot-extruder-woes/</id><summary type="html">&lt;p&gt;So I decide to finally fix the extruder. In doing so, I found more
problems than I thought existed.  &lt;/p&gt;
&lt;h4&gt;Problems:&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Idler Wheel has cracked&lt;/li&gt;
&lt;li&gt;Insulator Retainer has cracked&lt;/li&gt;
&lt;li&gt;Nichrome wire insulation has turned to powder&lt;/li&gt;
&lt;li&gt;Overheating caused kapton tape and ceramic tape to burn&lt;/li&gt;
&lt;li&gt;The barrel and nozzle are full of &lt;del&gt;eels&lt;/del&gt; ABS.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I have ordered replacement parts.&lt;/p&gt;</summary><category term="3D"></category><category term="ABS"></category><category term="CNC"></category><category term="extruder"></category><category term="MakerBot"></category><category term="printing"></category><category term="problems"></category><category term="rapid prototyping"></category><category term="technical difficulties"></category></entry><entry><title>Wii Nunchuck LED Mod</title><link href="https://www.cyrozap.com/2009/10/29/wii-nunchuck-led-mod/" rel="alternate"></link><updated>2009-10-29T18:19:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2009-10-29:2009/10/29/wii-nunchuck-led-mod/</id><summary type="html">&lt;p&gt;I basically just followed this
&lt;a href="http://www.instructables.com/id/Muiltple-Wiimote-mods-all-in-One"&gt;Instructable&lt;/a&gt;.
Pictures coming soon!&lt;/p&gt;</summary><category term="LED"></category><category term="LEDs"></category><category term="mod"></category><category term="nunchuck"></category><category term="pretty"></category><category term="remote"></category><category term="soldering"></category><category term="Wii"></category><category term="wiimote"></category></entry><entry><title>More Fixed!</title><link href="https://www.cyrozap.com/2009/10/24/more-fixed/" rel="alternate"></link><updated>2009-10-24T22:42:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2009-10-24:2009/10/24/more-fixed/</id><summary type="html">&lt;p&gt;Pretty permalinks now work! I'm so excited!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://wordpress.org/support/topic/322396"&gt;This&lt;/a&gt; is the thread I
started to solve my problem.&lt;/p&gt;</summary><category term="404"></category><category term="error"></category><category term="fixed"></category><category term="I'm a Real Blog now!"></category><category term="permalinks"></category><category term="pretty permalinks"></category><category term="server"></category><category term="Support"></category><category term="technical difficulties"></category></entry><entry><title>Fixed!</title><link href="https://www.cyrozap.com/2009/10/10/fixed/" rel="alternate"></link><updated>2009-10-10T22:53:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2009-10-10:2009/10/10/fixed/</id><summary type="html">&lt;p&gt;Ok, so I finally fixed my
&lt;a href="http://wordpress.org"&gt;Wordpress.org&lt;/a&gt; server. At first, uploaded content
wasn't displaying and only the home page was accessible. The uploaded
content wasn't displayed because it couldn't be found, and it couldn't
be found because it was storing the content in a different folder that
the one it was looking in for the content. Only the home page was
visible because the permalinks didn't change even after I changed the
setting, so I changed it back to the default. They aren't in a very
user-friendly format, but they do work. Oh, and the server still can't
update itself, which is annoying, but I can do that manually, so it's
ok.&lt;/p&gt;</summary><category term="fixed"></category><category term="problems"></category><category term="server"></category><category term="technical difficulties"></category><category term="Wordpress.org"></category></entry><entry><title>Technical Difficulties</title><link href="https://www.cyrozap.com/2009/10/10/technical-difficulties/" rel="alternate"></link><updated>2009-10-10T13:09:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2009-10-10:2009/10/10/technical-difficulties/</id><summary type="html">&lt;p&gt;Ok, so when I tried importing the posts and other content from my old
blog, it didn't work out too well. None of the posts below this one can
be linked to, and none of the pictures show up. All the original
content, however is still on the old blog at
&lt;a href="http://mytechprojects.wordpress.com"&gt;http://mytechprojects.wordpress.com&lt;/a&gt;.&lt;/p&gt;</summary><category term="error"></category><category term="problems"></category><category term="technical difficulties"></category><category term="Wordpress.org"></category></entry><entry><title>My new Etsy Shop!</title><link href="https://www.cyrozap.com/2009/10/05/my-new-etsy-shop/" rel="alternate"></link><updated>2009-10-05T17:20:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2009-10-05:2009/10/05/my-new-etsy-shop/</id><summary type="html">&lt;p&gt;I now have an &lt;a href="http://cyrozap.etsy.com"&gt;Etsy Shop&lt;/a&gt; where I will be
selling 3D-printed objects! I'll even do custom jobs! Right now the shop
is down because I really need a weekend to set it up. Check back on
Monday of next week!&lt;/p&gt;</summary><category term="3D"></category><category term="e-commerce"></category><category term="etsy"></category><category term="MakerBot"></category><category term="printing"></category><category term="rapid prototyping"></category><category term="shop"></category><category term="store"></category><category term="Support"></category></entry><entry><title>MakerBot pictures!</title><link href="https://www.cyrozap.com/2009/09/21/makerbot-pictures/" rel="alternate"></link><updated>2009-09-21T20:01:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2009-09-21:2009/09/21/makerbot-pictures/</id><summary type="html">&lt;p&gt;Ok, I finally got around to getting some pictures organized, so here
they are:&lt;/p&gt;
&lt;p&gt;&lt;embed type="application/x-shockwave-flash" src="https://picasaweb.google.com/s/c/bin/slideshow.swf" width="600" height="400" flashvars="host=picasaweb.google.com&amp;amp;noautoplay=1&amp;amp;hl=en_US&amp;amp;feat=flashalbum&amp;amp;RGB=0x000000&amp;amp;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Fcyrozap%2Falbumid%2F5382552621105973345%3Falt%3Drss%26kind%3Dphoto%26hl%3Den_US" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&lt;/p&gt;</summary><category term="3D"></category><category term="ABS"></category><category term="CNC"></category><category term="electronics"></category><category term="laser"></category><category term="laser-cutting"></category><category term="lazor"></category><category term="MakerBot"></category><category term="owl-wrap"></category><category term="pictures"></category><category term="printing"></category><category term="rapid prototyping"></category><category term="RepRap"></category></entry><entry><title>MakerBot is complete and fully operational!</title><link href="https://www.cyrozap.com/2009/09/06/makerbot-is-complete-and-fully-operational/" rel="alternate"></link><updated>2009-09-06T11:23:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2009-09-06:2009/09/06/makerbot-is-complete-and-fully-operational/</id><summary type="html">&lt;p&gt;Ok, so I haven't posted here in a while (not that anyone reads this
O_o), and I'm sorry to whoever does read this. I've completed my
MakerBot and have gotten it working really well. I'll post pictures
later.&lt;/p&gt;</summary><category term="3D"></category><category term="CNC"></category><category term="MakerBot"></category><category term="printing"></category><category term="rapid prototyping"></category><category term="RepRap"></category></entry><entry><title>Change in plans! Imma gunna builda MakerBot!</title><link href="https://www.cyrozap.com/2009/07/04/change-in-plans-imma-gunna-builda-makerbot/" rel="alternate"></link><updated>2009-07-04T22:15:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2009-07-04:2009/07/04/change-in-plans-imma-gunna-builda-makerbot/</id><summary type="html">&lt;p&gt;Yup, I've changed my mind again: I'm going to purchase the Cupcake CNC
Basic Kit tommorrow ($750 makerbot.com), and they are going to ship it
August 10th. This is a pretty good deal, considering the electronics are
coming preassembled (no SMT soldering! Yay!)&lt;/p&gt;</summary><category term="3D"></category><category term="CNC"></category><category term="MakerBot"></category><category term="printing"></category><category term="rapid prototyping"></category><category term="RepRap"></category></entry><entry><title>RepRap v2 Mendel</title><link href="https://www.cyrozap.com/2009/06/02/reprap-v2-mendel/" rel="alternate"></link><updated>2009-06-02T07:57:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2009-06-02:2009/06/02/reprap-v2-mendel/</id><summary type="html">&lt;p&gt;After recieving a response from Adrian Bowyer on my request for the
printed parts for a RepRap, I've decided to build the version 2 of
RepRap called "Mendel." I will need to do cost estimates once the
designs are completed.&lt;/p&gt;</summary><category term="3D"></category><category term="CNC"></category><category term="printing"></category><category term="rapid prototyping"></category><category term="RepRap"></category></entry><entry><title>RepRap Darwin</title><link href="https://www.cyrozap.com/2009/05/25/reprap-darwin/" rel="alternate"></link><updated>2009-05-25T09:55:00-04:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2009-05-25:2009/05/25/reprap-darwin/</id><summary type="html">&lt;p&gt;I'm going to be making a RepRap Darwin. Here are some cost estimates
that I made:  &lt;/p&gt;
&lt;iframe width="500" height="300" frameborder="0" src="http://spreadsheets.google.com/pub?key=rMMi_fbK5UYF2r1uAfTD_2Q&amp;amp;single=true&amp;amp;gid=0&amp;amp;output=html&amp;amp;widget=true"&gt;&lt;/iframe&gt;</summary><category term="3D"></category><category term="CNC"></category><category term="printing"></category><category term="rapid prototyping"></category><category term="RepRap"></category></entry><entry><title>My Game Boy Color disassembly pictures.</title><link href="https://www.cyrozap.com/2009/02/08/my-game-boy-color-disassembly-pictures/" rel="alternate"></link><updated>2009-02-08T21:04:00-05:00</updated><author><name>cyrozap</name></author><id>tag:www.cyrozap.com,2009-02-08:2009/02/08/my-game-boy-color-disassembly-pictures/</id><summary type="html">&lt;p&gt;These are some pictures I took a while back of my Game Boy Color during
disassembly. I really haven't done anything with it yet, though. My
slideshow on instructables is
&lt;a href="http://www.instructables.com/id/Game_Boy_Color_Teardown/" title="Game Boy Color Teardown"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2009/10/IMG_0981.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2009/10/IMG_0981-640x480.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2009/10/IMG_0982.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2009/10/IMG_0982-640x480.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2009/10/IMG_0983.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2009/10/IMG_0983-640x480.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2009/10/IMG_0984.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2009/10/IMG_0984-640x480.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2009/10/IMG_0985.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2009/10/IMG_0985-640x480.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2009/10/IMG_0986.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2009/10/IMG_0986-640x480.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2009/10/IMG_0987.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2009/10/IMG_0987-640x480.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2009/10/IMG_0989.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2009/10/IMG_0989-640x480.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cyrozap.com/wp-uploads/2009/10/IMG_0990.jpg"&gt;&lt;img alt="" src="https://www.cyrozap.com/wp-uploads/2009/10/IMG_0990-640x480.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;</summary><category term="color game boy"></category><category term="dissassembly"></category><category term="game"></category><category term="Game Boy"></category><category term="game boy color"></category><category term="GBC"></category><category term="nintendo"></category><category term="Teardown"></category></entry></feed>