I cannot be the jack of all trades

Around thirty minutes ago I finished making the last additions to this theme, which I’ll be releasing soon under insert open source license. I’ve fixed various things that have been annoying me for a while.

I’m also planning to add a new color for the theme thanks to the abstraction made with Less CSS.


The jack of all trades is a very frustrating trade. Over the years I’ve touched various languages like Java, Python, C++, PHP, and there’s nothing more frustrating than forgetting the function members of each class, the global members.

Just a while ago I was staring at the screen wondering, “well, I need to google jQuery’s API documentation because I don’t remember a thing.”. I haven’t forgotten how to use jQuery; I’ve forgotten how to use certain things about it.

At the same time, if I start writing Python now I’ll probably be hours in the documentation as I wait for my memory to return.

This doesn’t have much to do with the syntax. Keeping all those languages and its quirks in pure muscle memory? Life has a way to make you forget. After 2-3 months without using the language it feels awful trying to get into a uninterrupted workflow.

Thus, this is why I have to reaffirm my direction towards C++ and C#. I’ll leave the details on that for another post.

Miscalculation.

Miscalculation.

There’s nothing more frustrating when you find out you have miscalculated something. In my case, I’ve miscalculated the time left in college. I’m not doing bad in college myself, plus my GPA is pretty high right now to even worry about failing (and I’m always on the lookout if I get a bad grade). College isn’t as challenging as I wanted it to be, regardless there’s no time for petty grievances.

So it turns out that I miscalculated my time in college. I still have to tackle eight courses, the good news is that out of eight I only have to do 2 courses that are related to my major. The others are pretty much generic courses.

This really put me against the wall in a way. I wanted to finish already, send my CVs to the U.S and be done with it.

Not everything is gloom though, it also means I have plenty of room for improvements. It’ll also give me time finish some business here with the family.

As for live outside where I live. All I hope, or well, all I want is to meet great people out there.

As for theme development, it’s time to say good bye?

I feel like front-end development in general doesn’t suit me. I think I should refine the scope of what I just said: Web Designing in general is a job I don’t want to keep pursuing.

After I released the theme In Touch for Ghost Blogging Platform there was this awful feeling of dissatisfaction. I can keep creating themes just fine and keep going till I capture a tiny portion of the market. Creating themes on a high-level is easy, creating to push innovation is hard and most of the time unrewarding itself as you can’t match the prices the market out there normally has.

I’ll be available for hire, there’s no doubt in my mind about that. Although I’ll be focusing on desktop and mobile development for now. The more proficient I become in C++ more doors will open for me. Generally, I want to keep a good knowledge of C++ and C#/XAML.

I’ll be pushing the last fixes for intouch. I noticed there are like 2-3 problems with it that are visible.

Keep the iterations goin’

Alright, I’ve been meaning to sit down and post something not so enlightening; I feel like many of you should know this already, yet there’s always the person who hasn’t sat down to think about it.

The need for more software, the need for more forks, the need for improvements. I’ll be integrating web applications in “software” very, very loosely because at the end this post wants to tackle that too.

Whether you are building a commercial software or open source software there’s always a time where we have to ask ourselves, “has this been done before?”. Creativity is one of the most exhausting tasks in software. Yet, the thing that developers and end-users asks is:

“Why color the wheel blue when it’s already black?”, or “this has been done before. There’s blogging software a dime a dozen doing the same functionality”.

True, so true. I’ve stumbled upon so many blogging software solving different scopes and Content Management Systems that seems to focus so much on the internals while leaving the user interface in poor state.

If a software works for you, hurrah, that doesn’t really mean we should stop developers from wanting to improve, innovate products regardless if it’s commercial or open source.

You know that awful feeling when you are proud of your work yet you get shut down because “it has been done a million times”. I know, it strips you from any emotion you had about it, thus abandoning the project or half-assedly work on it.

Thing is, it serves as a purpose of growth from all the trials and errors. The developer grows, he or she might have not launched a successful product but the experience had was there, and that says a lot more than the people mindlessly attacking it.

More than that. Maybe a feature has been added that was never seen before in a workflow. Or the developer altered the workflow in such a way that it’s a delightful experience to use, yet the end-users doesn’t have all the features they have from X software that has been in the game for a whole decade.

So to sum it up, we need more iterations, more forks, more innovation out there. It might be a camouflaged wheel under the hood, who knows though, maybe that wheel can get you to your goals faster than the old trusted brand.

Personal growth, site fixes, and my new project

There are a few things that I’ve been meaning to talk about over this month. I’ve two or three drafts that I’ve to revise before posting as it contains certain subjects regarding the linux community. It’s more of a matter to neutralize the language and choice of words. Personally, I’m not a fan of sugar coating, sadly I know that sometimes people just read one line and they are already writing an essay on how wrong I am.

That’s not the case today, thanks god!

Personal growth is something I’ve been meaning to take care of. It’s been one of my goals to socialize and know more about people I meet. If you know me at a personal you’ll see that I’m more of a straight arrow, especially at work. You bark the orders and I’ll follow them without looking right or left.

Toning down the participation in internet communities have allowed me to relax and focus on myself rather than wasting time on useless debates on how to handle corner cases, or which is the best editor. I no longer have the patience to sit down and write long paragraphs sharing my views with other people online; I’d rather have a talk in person which is more enjoyable than seeing a person trying to prove he or she is smart while slamming programming languages such as PHP, or whatever library as a method to find friends or colleagues.

I’ve stopped caring about stuff. I don’t want to meet you if all you do is:

  • being negative all the time
  • slamming frameworks, and other methodologies because it’s the popular thing to do
  • always looking to be right rather than being human. I’m not sure about you, let’s say you are right for a second, what exactly did you win? Pretty sure it’s not the lottery.

Every day I’m feeling better, and more capable of taking on issues. My goal this summer is to be less critical, and be more understanding when it comes to people’s issues. I know not everyone has thick skin and I’ve made a few mistakes in life that might have made some people feel awful.

Don’t get me wrong. I also do it because I want them to see the other side of the coin.

Site fixes!

I wrote a small code to fix Ghost blogging platform database. I had this problem where all posts were scrambled in Ghost content section. The issue happened because updated_at field in the database had NULL value in them, thus EmberJS didn’t handle them gracefully.

I’ll submit the fix I did after this post.

My new project


So basically, I know I’ve said in the past that I’ve been looking for open source projects to contribute code. Sadly I didn’t find any project that was interesting for me. Even LibreOffice became a chore rather than something to look forward to.

This project is a productivity tool that helps the user reduce the tasks of file handling greatly and gets you organized in no time. I did the first commit today after 3 weeks of brainstorming day and night.

This has taken a great deal of my time mostly because not being a C++ developer means that I’ve to learn the language and the libraries available to do things. And the idea being “unique” meant that I had to put extra time and effort to come up with a decent workflow.

A workflow is, in my opinion, one of the most important things in this application. Which is why I’ve been analyzing each use-case and making sure that the user receives the best experience ever.

We’ll see how things go from here.

Even if it fails, so what? I got from it a lot of knowledge that I can now put to use in the real world.

Ubuntu 14.10 privacy issues

There’s something that has been bothering me over the last three weeks. The default permissions offered by Ubuntu are incredibly permissive and anyone sharing a computer or laptop wanting to have some privacy is screwed by it.

How is it that a relative of mine can just enter my /home folder, snatch whatever file and do whatever he/she wants with it?

The notion itself is crazy, and I don’t know why Canonical haven’t addressed it. In a multiuser environment no one should read/write anything.

This is something OpenSUSE got right, something that Fedora also got right (as far as I remember). But Ubuntu? far from it.

I hope that someday they attend the issue; and yes, I realize I can tweak a few settings and chmod my home folder but that doesn’t make the fact that there is a privacy issue going on.

The key here is that average users have a right for privacy, regardless of their technical knowledge.

Thoughts on migrating from Pelican to Ghost blogging platform

Thoughts on migrating from Pelican to Ghost blogging platform

Finally, it took me a whole day to do the full migration but I’m finally back. I’m very much glad that this is over; I shudder at the thought of having more than 400 posts and needing to migrate to other blog/CMS system as it’s a very ardeous task in general, and it shouldn’t be taken lightly either.

Thoughts on Pelican

To those who don’t know Pelican is a static site generator. Recently I posted a few days ago that static site generators sucks in general and it has much to do with the fact that it doesn’t solve anything. It devolves to the idea that just writing markup formats such as Markdown and Textile is okay rather than making a better blogging software. When it comes to managing your posts, updating them or adding assets it dawns on you that maybe it wasn’t a great idea.

Ghost isn’t so bad in the resource consumption department. I have set up nginx and both combined just works quite well. Personally? I didn’t want to deal with WordPress either.

Pelican documentation for users and developers isn’t that good. It made the whole migration harder as I had to poke through every little class to know what I’m dealing with. There is even a broken signal that should have sufficed for this export called all_generators_finalized; sadly I never got to use it because Pelican doesn’t recognize it.

Thus, all in all a simple task became a time sucker–although let be honest, programming in general is time consuming.

Insights

Thoughts on migrating from Pelican to Ghost blogging platform

My little script only exports articles right now. I guess I should say that I only created it out of need, not because there’s demand. The exporter will create a file in the folder you decided to place Pelican base folder, for example mine is in /home/david/Projects/websites/dgzen and that’s where Pelican runs and create all the necessary files for it to sync it to the server.

So using that path the json dump is created in /home/david/Projects/websites/dgzen/ghost_export/pelican2ghost.json. Not hard to find, huh?

After you get the generated json file it’s time to go to your Ghost installation, and go to the Labs section http://my-panini-blog/ghost/settings/labs/.

Import the data, and that’s it.

As for any migration you have to take care of your assets (images, archives, etc).

One of the nuisances of importing to Ghost is that it doesn’t really throw errors or anything. It’s pretty much a “YUMMY! DATA, MUCH MUNCH. YUM YUM!” and it does so in a way that it would throw this message:

Cannot call method ‘replace’ of undefined

I guess my first reaction was: “I wonder if Ghost’s import method is broken…?”

It ended up being the fact that it was lacking the markdown key in the “posts” collection. I guess I should be thankful for my gut feeling.

Ghost also has a very interesting bug that when you export everything is scrambled in the content page All posts side panel. One might think they are sorting by date…. I don’t know why it’s not sorted by date.

Moving on

That’s it from me. I haven’t changed Ghost themes yet. I feel “safer” that it’s using SQLite as its backend so I don’t have to deal with dozens of markdown files.

I’ll be uploading the script today on Github. I’ll post about it when it becomes available.

April is here, so what’s new?

So recently I’ve been pondering on why is there’s such an overabundance of static site generators lately. I know it’s a trend I’ve been sucked into like an idiot.

So here’s the thing. For what it’s worth, static site generators are not the answer. I learned this in a slow, painful way.

I’m going to open this post with that: static site generators sucks in general. If you are doing pure writing, then yes, maybe, just maybe it’s the answer for you. Except, there’s no actual gain. Sure, you can tweak it here and there, that’s pretty much a feature most modern blogging tools provides you.

In truth, there’s no reason to use a generator. It won’t make you smarter, or increase your skills ten folds by using one. Maybe it might boost your ego a bit because you are using something average people don’t use.

So I’ll be moving this blog to a dynamic blogging platform. It might be wordpress, or text pattern, or Ghost. I’m still deciding which one.

As for the tone, my bad but I’d rather let people know how I feel sometimes about tools.

Now that that’s been said I had to stop Where’s my package Indicator development as the more I dug the more I became aware that the APIs offered were a different type of beast.

I have to do a few arrangements to prepare this site to migrate to whatever blogging platform I choose and that means handling assets is going to be a pain.

I’ve some ideas cooking as well, my quest on learning C++ hasn’t stopped either so we are good in that area.

Finally, my first e-ink reader!

So, please close to me know that I’m not exactly made out of buck. I may be working my buttocks off studying and planning ahead to leave the place I live. I don’t have all the priviledges that many people have. Heck, even the hosting I’m on, which is DigitalOcean, runs on a server paid by a $100 voucher granted by Github Student Pack.

And I am thankful for that. I’m not some big shot develop earning $120 bucks per hour, neither do I live in a place where the job market is in a healthy state for programmers, plus here they’ll just ask you to be a jack of all trades. Don’t know something called “Angular”, too bad!

You just learn to value things, I guess. Being constantly short on money is quite something.

Anyway, I was able to afford my first NOOK Simple Touch. Proudly bought on eBay used and recertified. The whole e-ink technology fascinate me a lot.

Simple Touch

I’m still wondering which ebooks I should load it with first. Hopefully I’ll pick 2-3 books for this month and try to finish them.

That said, I’ve been extremely happy with it. I actually have been reading a short book and while it’s not the most responsive device ever, it sure knows how to impress me with its font rendering and screen in general.