This weekend I have survived on Veela and Mountain Dew. Releasing Rope to GitHub, starting PiBooth, and some more thought about JB. I still refuse to touch JB until I feel I am completely ready. When I start development on it, I’m going to put every bit of my heart into it. But let’s talk about a few things I’ve learned from both Rope and what little I’ve done with PiBooth.

Let’s get the short one out of the way. I don’t like Python. To reiterate what I said on Twitter, Python is not in any way horrible. It’s not Java. I still think that Ruby is a bit more non-developer friendly, but it really comes down to how the developer packages their application. 

Even before I discovered Ruby, I never really liked Python. But especially after Ruby completely spoiled me, my dislike for Python grew substantially. Ruby just really showed me what a general purpose programming language should be, and Python doesn’t quite cut it. 

Now am I dissuading new developers from learning Python? Absolutely-fucking-not. If you like Python, I envy you. I want to like it, but I can’t.

Which brings me to my next topic on things I want to like but can’t. Rails, my old enemy. Let me just ruin any chances of a career of a Rails developer by saying “Fuck you, DHH, your framework sucks.” 

Even though I was a little ignorant shit in my earlier post about Rails, now I actually understand what a good MVC framework can be. I actually understand the magic now. But that still doesn’t make Rails any better. In fact, it only makes it worse. 

So let’s get into my little project called Rope. Rope is a parody/clone/slightly-different-but-better version of Vine. It was started by taking a GIFs with sound idea and applying a Vine guise to it. And also making it desktop-friendly. So I decided to give Rails a try, surely it can’t screw up something so simple? Nope. File uploads are broken in Rails 4. Completely broken. “Paperclip/Carrierwave.” I couldn’t get either of them to work. “Just use Rails 3.” Why won’t Rails 4 work? They actually fixed some problems I had with 3 in 4. So I actually started to like Rails 4 a bit. But to no avail. 

After two weeks of battling with Rails, I gave up, moved everything to ~/Projects/Broken_Rope and started learning Padrino. I can honestly say I’m blown away at how amazing it is. It’s simple. No bullshit. I rewrote the entire thing in one day. Started around 3 AM on Sunday, Finished around 1 AM on Monday, and had a nap in the middle. I had a few hiccups with getting Sequel to work exactly like I wanted (Guys, use an options hash instead of a URI query. It takes up more room, but it’s much clearer to see what’s happening.) but otherwise painless. Getting CSRF protection to work perfectly was a little weird, but it was mostly my fault for not including a few lines of code that I should have. I’m going to start on the user account functionality of Rope sometime this week, so we shall see how Padrino handles authentication and sessions. From looking at the padrino-admin stuff, it seems to do it pretty well, although it’s implementation is a bit odd. Could just be because they are using ActiveRecord and DataMapper in the samples while I’m using Sequel, could be an oversight on their part, who knows. 

So yeah. I’m only 99% loser now that I’m actually trying to do something productive. 

Just unicorns and magic, if we were super ga… Oh hello there! So it’s been like, four goddamn months since I started the Coyote Chronicles. I should probably get on with that… Maybe later. Anyways. Updates on what I have been doing. Well I would update you but school this year is rocking my world and making it impossible to get anything done. But hey, that hasn’t stopped me completely. I am thinking about making some sort of game in JavaScript to run in the browser. But I need to do some more testing. In the meantime I made this awesome Cube Benchmark that you should totally check out. I’m also in the process of working on a MyBB theme toolkit for easy MyBB theme editing. But that’s about it. I usually post my latest stuff on PolyForums, so check there if you want to keep up with me. 

Until I properly launch my website and properly make an interesting paper about what we did, gonna use this as rambling ground for whatever I feel like. So if you don’t know, iDomo flew to good ole NC to visit me. We spent most of the time working on servers though, so not much visiting was done. Anyways, we did stuff. So more or less going to summarize what I learned:

1: I’m a fucking idiot.
'Nuff said.

2. iDomo is a genius. Also patient as hell.
Don’t need to elaborate there. 

3. IBM and Dell are assholes. 
Don’t get their servers unless you have shitloads of money and time to blow. 

That’s all for now, come back later.

"Oh but Rails is the best thing since my luscious nipples, sap! What could possibly go wrong?" Everything. So let’s go on about Rails. I don’t mean to sound like a broken record when I say this, but I love Ruby. I’m not hating on it. I’m hating on Rails, the evil application framework for Ruby. So what’s so bad about it, you might ask. I can nitpick all day, but it’s pointless. It all boils down to one simple fact. Hermione Granger, take it away: “…there’s too much magic in the air.” There. That’s the problem with rails. Wait, sec, gotta repeat this song (Lights by Ellie Goulding)… Okay. Magic. What’s magic? Friendship? I…I…didn’t mean to make that reference. I’m sorry. I’m stalling; I don’t know where to begin. Um…Um… New paragraph/section!

 There is too much magic

Ahh much better. So Rails tries to do too many things itself. And there’s just too much damn magic! I mean, I finish a coding session, look back over my code, and I think to myself, “What is this?” I don’t understand the code all. From a syntax perspective, it makes no sense. But I load up WEBrick and test, and it’s works flawlessly, sometimes. When it does I just accept it and move on. But it’s not always like that. And when that happens, I pretty much just scrap the project and start over. And I have  to redo everything until it starts magically working. I absolutely hate it. I very rarely have to do that with anything else. Sec, need moar Ellie Goulding (Madeon ft. Ellie Goulding - Stay Awake). One thing that blows my mind on so many levels is Routes. Liek…… I know what things like GET is, but Rails just garbles it so much for me. One problem with Rails is the severe lack of good documentation. Let’s look at some languages that have good documentation. .NET’s documentation is relatively well done. Qt for C++ has sublime documentation. Ruby itself has good documentation. Why doesn’t Rails have good documentation? Books don’t count. I’m taking something where I Google a problem and there is a comprehensive online structured doc about something related to my problem. Rails just doesn’t have that. It usually redirects to something like Stack Overflow. Works, sometimes. It’s just sort of magic. 

Nothing wrong with Ruby

Let me just reiterate this point. Ruby is great, and to be honest, I’m desperately looking for a way to use it in a web application I’m working on (TBA). I did some testing in PHP, and I decided it wasn’t quite enough, so I’m trying to move to Ruby. But it’s so hard to use Ruby for web apps without getting caught up in framework bullshit. I pretty much want Ruby to function like PHP. PHP is great, but it’s just not enough for this particular project. Unless I write an extension that has all of the low-level functionality I need, PHP is not enough by itself. Ruby can do it. Not Rails; just Ruby. 

So I’m sitting here, it’s 3:00 AM on a Tuesday morning. I’m thinking about scaling web applications. Here we go! First let’s get Ruby out of the way. Let me just start by saying, I love Ruby. If Ruby was a human, 10/10 would bang. It has flaws, and I’m still getting used to it(No semicolon on the end of statements is making me gag), but it really is a beautiful language, and I plan on using it for as much as I can. But then we have Rails. I’m currently learning Rails, and I must say, it’s a definite RAD platform. I mean, that’s really what it’s major strength is. RAD. But that’s it. You can’t look me in the eye and say that Rails scales well because you are smoking so much crack you can’t even see the wall you are about to run into. It doesn’t. Simple as that. You need a quick application deployed? Rails. I got a whole blogging platform going on my computer just this afternoon. It preforms horribly, and it has many bugs, but it’s a full platform I did in one damn afternoon. So now that we have that out of the way, what really is the best language? Well maybe you should read the title of the post. Whatever, let’s just step it up a notch from RAD web applications. Let’s say you are building a full social network. That’s clearly not any type of RAD application, so what should you use? Simple. Our great and power ruler Mark Zuckerberg figured this out a decade ago: PHP. I love Ruby, but when it comes to web applications, nobody touches PHP. If you thought Ruby was 10/10 in my book, just imagine what PHP is (IT’S OVER 9000.. Shit, I need to stop using overused memes). BUUTTTTTTT!!!! If you try to make a good userland application in PHP, that’s not crack, that’s some sort of dope you smoking. I guess the alright balance between the two is Python. I do believe is preforms amazingly well on both sides. But the syntax kills it for me. I don’t care how good your blowjobs are, if you look like Sarah Jessica Parker’s great grandmother, you are not getting anywhere near dis. But aren’t we forgetting somebody? Of course! You can’t forget the compiled languages… Wait… Compiled languages for web platforms? oh…um… no, please? Okay, you cannot deny that compiled languages dominate the userland. Nothing will ever be up-to-snuff like good ‘ole C++. Or C if you are a masochist. Or if you’re too hipster to .NET but flatulate too much to have any sense, Java. Not talking about Scala, by the way, I haven’t looked at it yet. But what if we take C++, and put the web platform dress on it? We get a kind-of Facebook. Because Facebook is a transvestite. Nobody really knows what it is, it just… is. It’s not PHP, but it’s not C++ either. It’s just… yeah compiled languages and web applications don’t go together the best. Now I mean, we have to have compiled languages for our web servers. I mean, look at Node.js and what a pile of shit that is. Oh I’m sorry I got excited for a moment there. But really. Okay, maybe for RAD stuff (hint. hint. Rails and Node.js are inseparable) but for big stuff. No! NO! All my No! JavaScript? Really? When did someone think “oh I’m gonna make an I/O model based off of a browser JavaScript engine?" When did JavaScript even become relevant, you might ask? HTML5 and jQuery. Okay, it’s pretty good now, but Microsoft ruined it’s reputation so much I’m really afraid to trust it. Whatever, I’ll go for it. But ya. JavaScript for the backend of a large platform. That’s most certainly dope you are shooting into your veins at this point.

Ya, I don’t even know what to call this post. But I think it’s my destiny to…NO. NO. I WILL NOT MAKE REFERENCE…Screw it. It is my destiny to break this down. Just to try to scratch the surface of the brony subculture I once knew and loved. Not to say I still don’t love it, but it has grown so much since I renounced my title as a brony. But this. This needs to be said. Although I don’t consider myself a brony per se, I still try to keep tabs on the fandom. Then Season 3 hit. More like Season 3: Controversy. Holy shit. Two biggest ones are the C&D of Fighting is Magic and, of course, Twilicorn. Can I get a holy shit? “Holy Shit.” Thanks. But seriously. I just spent the last two days watching season 3, and I just finished episode 13, where the magic happens. Holy Shi.. defecation. Watching the controversy surrounding all of this, is like watching a civil war. And that’s what it could come to be: the Brony Civil War. Holy defecati… That sounds weird, let’s just stick to “shit.” But in all seriousness, this is getting out of hoof. Or hand. Whatever. The point is, the fandom is ripping itself apart, and no one entity is responsible. The writers themselves even have differing opinions on this. And Hasbro’s legal department isn’t helping. The various communities that host slices of the fandom have differing opinions. And all of this boils down to fuel for the brony-haters. Honestly, I don’t even know how this will turn out. I have also noticed a lot more of a musical note in this last season. I feel the plot and character development becoming unstable. This could turn out really good, or really bad. The fandom is shredding itself to pieces, and there is nothing we can do about it. No longer is there the happy almost family-like brony community. It’s too big. Something might give. We can only hope that it won’t.

PXE or Preboot eXecution Environment is a pain to work with. Since I wanted easy scalability, I decided that using server images and booting an install environment over PXE would be extremely profitable. That removes the hassles of having to keep up with CD-ROMs. I could technically use a USB-HDD system, but I need my flash drives for other uses, and they are easily lost.

So here was the game plan: my main node running Debian Wheezy would hold the boot files for PXE in a TFTP server, and my DD-WRT router would provide DHCP through DNSMasq. I really couldn’t afford to run DHCP through my node, as I have my personal computers on the network at the same time as the server nodes. For the TFTP server, I was recommended tftpd-hpa by the Debian community. I configured tftpd-hpa to run as a daemon, instead of using inetd, as I have had issues with it in the past. With everything set up I booted into my netbook to test. TFTP connected, launched the command to get the test file… Timeout. I rechecked making sure the daemon was correctly configured and running, unblocked ports, etc. I later found out that tftpd-hpa has a sort of built-in security. Since this was not a public TFTP, I really wasn’t concerned about security. The community responded by recommending atftpd. Set up, tested, still nothing.

atftpd adds logging ability, so I turned that on. I found that my test client was connecting, and it could initiate the transfer, but couldn’t finish transferring the file. It would throw a NO ROUTE TO HOST error. Very odd. There is a port block on some end, although I disabled all security on both ends. Raw PXE doesn’t work either, although it does find the server and try to connect.

The only possible way is that the firewall on my router is blocking not only external but also internal ports. I have not disabled router level security as of now.

Seriously. Don’t get these flash drives. They suck balls. They come with bloatware on them. Think about it. Bloatware, on a flash drive. WTF were they thinking? And it also loads this stupid driver onto your system that gives you this blank CD drive. And you can’t remove it without removing the whole USB driver. But what if you plug it into a work or school computer? At my school, the IT are anally paranoid about everything, and they don’t allow EXEs of any kind on flash drives. Now, what if you just get your SanDisk out of the box, plug it in, IT immediately sees EXEs, and you get banned from the network. That’s just flat out stupid. On both parts I mean. Plus, they can’t be booted from. I tried for hours to get my SanDisk to boot Fedora, and it just doesn’t do it. I finally took it back and got a PNY drive for half the price, with no bloatware, and guess what: you can boot from it. First time, no problems.

As the bullshit man would say, Harari and Mehrotra invented it. It’s called SanDisk. And that’s bullshit.