One Week Off

So it’s good to have a week off from all things development – I’m currently on a mad culture marathon – can’t believe I’ve never seen ‘Knowing’ with Nicky Cage. Also watched ‘Leaving Las Vegas’ with le Cage and Elizabeth Shue. Must say one of the most depressing films I have ever seen.

Anyway I’m aiming to move away from the Cage cannon tonight – going to watch The Fountain which seems to me like a less indulgent version of Cloud Atlas – it’s got better reviews than the latter.

I start my new job on Monday, so I guess the next blog post will be about that.

Logo Design Pt II

Second design - client opted for a sleaker 'business' look.

Logo redesign: moving away from the “cartoony”

So I recently designed a logo for a client/friend whose company is a Cloud based backup solutions firm. Originally I opted for a Cloud-related bit of graphic design but it was viewed as a bit too “cartoony”. So instead I redesigned it according to his spec. You can see the results above – I have posted the version with the “initialised” name of the company. Second professional logo done and have learnt quite a few things – logos need to be simple and striking – over-embellishment of a logo, even if it is the most well-designed and visually stunning thing anyone has ever seen can ruin it in an instant. I’m quite pleased with the results, despite the fact that the logo above kinda looks like something a government think tank would pay a PR agency thousands of £’s for.

I will post all of my .psd files up whenever I next do a logo for someone – it’s all about practice at the end of the day.

Codrops Blueprints

Aside

I’ve discovered an awesome series by Codrops – lots & lots of nice looking blueprint designs for websites + web components.

Available here: codrops

I’ve just started using the Slide and Push menus on a new project like so:

Clench Update

And so development of my little vanity project Clench has begun – I am completely new to PHP so this shall be interesting. I’ve just used a few bootstrap templates to give the site a basic structure. For the meantime, I have opted for the database option – the only requirements for installation being that the target server has PHP5 and mySQL enabled on it. I know, a bit of a u-turn, but I’ll integrate XML based stuff later on as I learn more.

Screen Shot 2013 05 22 at 01 38 48

 

The landing page will be index.php, where uninitiated users will be asked if they want Clench to automatically configure the database settings or if they want to do it manually themselves. Fairly basic so far (don’t you love the pastel background colour! so kitsch).

Anyway, until next time!

Some OS X window dressing

So over the past few days I’ve been pruning the look and feel of OS X on my Macbook. I’ve discovered many apps that are just amazing. Here is a picture of my current Desktop:

Screen Shot 2013 05 19 at 00 46 37

As you can see, it really looks quite cool. So how did I achieve this? I will tell you:

1. Bartender: Lets you add and remove items from your menu bar – even Apple defaults such as Spotlight and Notification Center that you wouldn’t usually be able to touch.

2. Alfred 2: If you look at the screenshot above, Alfred 2 is the big search box on screen – it is a hundred times better than Spotlight at finding stuff – and it’s a hundred times faster as well. So if you haven’t already got it installed on your machine, I advise you do right now. And of course, you can set custom keyboard shortcuts to whatever you wish.

Screen Shot 2013 05 19 at 01 11 59

3. iStat Menus: You can see iStat Menus in action in the screenshot above. iStat Menus provides you with lots of statistics on CPU, Wifi, Memory etc etc – in far more detail than you would get if you were using the standard OS X native drop down menus – and as you can see, I have disabled the native OS X networking menus (amongst others) using Bartender.

4. Bowtie: Bowtie is an application that acts in much the same manner as CoverSutra  - it adds meta information to your desktop about the currently playing song. Compatible players are iTunes, Spotify & Last.fm, although I am only using Spotify at the minute with it. Bowtie is extremely theme-able (lots of themes available for download straight from http://catalog.13bold.com/). I’m using the theme Zukunft Condensed White (available at http://catalog.13bold.com/theme/18). 

5. CandyBar: Now that CandyBar’s customisation of icons on the Dock is incompatible with Mountain Lion, the makers of Candy Bar have made it available to download for free, which on the face of things indicates that they think its run its course and is useless. But no, CandyBar still has lots of skinning features that are very useful – if you want to skin your icons in Finder then why not? 

6. Finder Icon Change: There is one way to change your Dock icons still – just find the application you want to change the Dock icon for in your /Applications/ folder, right click on it and press “Get Info” and then select the little preview of it, and paste your desired new icon over it, then use the terminal command killall Dock to restart Finder.

7. Pathfinder: I thought I’d add a caveat to my mentioning of Finder above – why are you still using it? I’ve tried many different Finder alternatives (the list includes XtraFinder and TotalFinder which I would rank as equal in terms of usefulness). But Pathfinder is definitely the winner here – SO many features that you could spend hours playing with. 

Screen Shot 2013 05 19 at 01 12 21

8. Boom: Allows you to increase the volume above the OS X prescribed limit – traditionally I have used Audio Hijack Pro to do this, but in reality all I’ve ever wanted is to hike up the volume for those quiet Internet video applications (Netflix / Illegal Video Streaming Sites / VOD Services).

And that is it. I cycle through quite a lot of apps in a month – and tend to get rid of quite a few that I don’t think are a “good fit” (mainly for aesthetic reasons) but the apps in the list above are keepers.

And just in case you were wanting to know where to get the wallpaper: http://dznr.org/ddz7

Until next time,

Adam

Limbo (Game Review)

I don’t talk about gaming often here on this blog, but I have found an absolutely wonderful game called Limbo that is just insanely beautiful in its design – Limbo is the story of a nameless boy who wakes up in the middle of a damned forest, presumably meant to be representative of Limbo (i.e. in-between heaven and hell). 

The game is a 2d puzzle game (kinda platform-y but yes mainly visual puzzles in the spirit of Mario). The graphics are like a piece of art – I   have yet to finish the game so I won’t paste in the full plot from the Wikipedia page. Anyway on with a run down of the game play:

Throughout the game, you encounter many creepy spidery type things that impale your character in a gruesome noir manner. I especially liked the sense of perspective that the designers gave so that sometimes there would be a foreground which would obscure the character running along – it gives the game a very cinematic feeling:

 

Limbo is available from the Mac App Store (https://itunes.apple.com/gb/app/limbo/id481629890?mt=12) for £6.99 which in my opinion is a steal for a game which has had so much effort put into it.

Some excellent OS X Apps I have discovered recently..

So I’ve made a concerted effort recently to fill up Macbook with lots of goodies – most of the newly installed apps are either development tools or IDEs specifically for the use in PHP programming (although some of the apps I’ve “acquired” recently are not related to web development at all).

So here is the “bucket list” (of sorts):

VirtualHostX

(http://clickontyler.com/virtualhostx/)

VirtualHostX is an app that allows you to host a local Apache 2 server on your Mac. Compared to other similar pieces of software that I have tried (such as MAMP/MAMP PRO/ XAMP), this is so much simpler to setup and use. 
 
VirtualHostX automatically configures the /private/etc/Apache2/httpd.conf file as well as other related user-specific host .conf files (i.e. /private/etc/Apache2/users/USERNAME.conf). I had previously been editing my hosts files in an attempt to setup a virtual server with MAMP PRO through Terminal using the command:
 
 
Upon doing so, I realised that PHP5 was not by default enabled – so I uncommented it, but unfortunately ran into problems with modules ‘if’ blocks. So I thought this is MADNESS, there must be a better way to setup a local server on your Mac, and there is…
 
In VirtualHostX, there is absolutely no need to touch the hosts / httpd.conf files, as it is all done for you. This is the basic interface for setting up a virtual host – you can select a custom domain name for your local server (I’m using dev.me), and you can dynamically choose where the localhost will look for files to include. This is perhaps the perfect environment for PHP development, if you combine this with Chrome and a plugin that will monitor for any changes made to the files inside the local path directory and you’re golden.
 
 
Screen Shot 2013 05 15 at 23 41 34
 

Panic Unison


Yes, so I’m a bit late to the party when it comes to Usenet – I refuse to pay for Usenet so I was very surprised to hear that Virgin Media (My ISP) actually provide a usenet server for free to all of its customers (ostensibly for reading “news” although I have no clue who actually uses usenet for that), but in reality to delve into the “grey” bit of the Interweb. I’ve found all number of weird and wonderful things (that for the purpose of common decency I won’t describe here) on Usenet alt.binaries.****** newsgroups. However that’s a story for another day!

Anyway Panic’s Unison is by far the best usenet client on OS X – the interface is sa-weet.

 

DeDRM

(http://apprenticealf.wordpress.com/)

Note: I’m a firm anti-believer in DRM (Digital Rights Management). It’s a scourge that needs to be stamped out. DRM is everything that’s wrong with anti-piracy methodologies.

This tool has proved invaluable to me in my day to day work – being a student of UoH, I have direct access to a vast array of e-book libraries (Proquest, Safari etc), and all of them make use of Adobe Digital Editions to ensure that the .pdf documents downloaded are DRM-protected (this means that you can only read them for a certain period of time before they expire). For books that exceed 200 – 300 pages, this is very annoying – so I did some searching and found a De-DRM-ing tool that is written in python. It removes the DRM headers from the PDF documents, simple as that. This means that the .pdf file that you could originally only open with Adobe Digital Editions can now be edited in any number of other PDF viewers, forever.

This is by far my biggest recommendation in this list, especially if you are a CS student wanting to keep some e-books for future use (I found a great book about using jQuery & PHP together which I have De-DRM-ed for future usage). 

Learning PHP: Reflections on Day 1

And so today is the day that I finished my last MSc exams of the academic year (I only had one). I don’t have university again until late September so I have lots of free time to work on projects.

So in order to start work on my flat file / XML content management system Clench, I’ve decided that it would be prudent to learn PHP so that I can write the backbone of my CMS. Out of all of the programming languages I’ve learnt so far (C#, VB.NET, Actionscript 3.0), I’d say syntactically it’s an amalgamation of them all, which is good. I like the fact that the looping and if statement syntax is the same (pretty much) as the rest of the languages I’ve learnt but I don’t like the fact that all variables must be affixed with a $. I am using Sublime Text 2 to code in, and I have yet to find a shortcut key for PHP $ var declaration.

So I will keep my blog updated with all of my progress, so that in the future I might actually have something interesting to post here! (touch wood).

Clench – Day Two: Project Planning & Initial Ideas

I’ve been thinking a lot about how I will begin working on Clench. I’ve highlighted several frameworks and development methods that might be useful or applicable for my overall concept. So I’ll review them now:

1. CakePHP (http://cakephp.org/): A PHP Framework using the MVC design pattern. Relies on SQL for storage of data. Might be a last resort if I decide that my original ambition of making Clench a flat-file CMS fails or runs into problems.

2. Feindura (http://feindura.org/): Feindura is a flat-file CMS which is probably most similar to what I am trying to achieve. This allows for basic path settings (the screenshot below gives you an idea of the configuration pages):

3. LotusCMS (http://www.lotuscms.org/): LotusCMS is similar to Feindura in simplicity and the fact that it is also flat-file. Edit: LotusCMS will be the base for my development process rather than Feindura. LotusCMS is also open source and is module-based so I’ll easily be able to add or remove features that I feel I don’t need.

 4. CushyCMS (http://www.cushycms.com/): CushyCMS is a ‘light’ CMS option – it allows users to edit their existing websites by assigning an arbitrary class to an HTML element (i.e. <h1 class=”cushycms”>Whatever</h1>). After a day’s worth of delving into the depths of the Internet, this is actually most like what I am envisaging. Of course, Cushy is a piece of proprietary software so the source code is unavailable to download and tweak. But no matter, I will use the HTML class method to assign an arbitrary class (i.e. ‘clench’) to the elements on a given page of the users website. Whether or not I will opt for a control panel hosted on the target server or on this server (like Cushy) I do not know yet, although I am leaning towards the user installing it on their server, purely because it gives the user more control (if they want it). I guess I could have two versions of Clench.

The YouTube video below uploaded by Cushy gives you a good idea of what I am going to be working on in the next two months:

http://www.youtube.com/watch?feature=player_embedded&v=-MpVQI43TJ0

As Feindura is an open source project, free to modify and make your own, it seems this is where I shall be starting for the basis for my code. (Although I won’t rule out having to resort to using XML or SQL for data storage)

Day Two work over. 

Clench: Day One

I have decided to begin work on a new personal project. This is partly in response to a perceived need for a content management system for my website that deals with static HTML web pages. A lot of my website’s pages are based upon the same template (2-column template – sidebar and “main bar”). I have decided that I would like to learn PHP the “hard way” – my PHP experience to date consists of looking at the PHP manual and wondering “how the hell am I going to do that?!”. But perhaps I am putting it up on the pedestal. I’ve taken to most other programming languages I’ve learnt like a duck to water, so PHP should be no different.

Clench will use Twitter’s Bootstrap CSS framework for most major UI stylings. I am going to use a UI I designed for an article administration page in my ASP.NET BookMeet project I finished a while back. Clench will be simple to use and information on screen will be minimalistic. The basic functionality of Clench is as follows… the user will have to “target” files and directories on their server so that Clench will know what pages / directories it should monitor. Once a user has targeted the specific file or directory for clenching, then the user will have to chmod the target files to ensure that they have full editing rights over them. I am thinking about making use of content placeholders similar to those in ASP.NET or CSS content-editable so that the user can pick and choose which areas of the target static HTML page are either editable sections or UI constituents.

Anyway, it’s early doors at the minute. I’m not even so sure about the name, which was the first word that sprung to mind when conceiving the project. It’s a doing word, but does it have any relevance to its actual functionality, but then again maybe it doesn’t matter too much!

Until next time,

Adam 

Professional Issues in the Information Technology Sector

So, I am currently studying for a module called ‘Professional Issues’ at university (I am currently studying for a generalist award at Masters level in Computer Science). The module itself claims to be accredited by the BCS (British Computing Society), now rebranded as The Chartered Institute for IT (http://www.bcs.org/). I’ve been reading into the BCS and various blogs around the Internet are very critical of the BCS in its current manifestation. The BCS curriculum as taught by my university is fairly lightweight, it covers basic legal principles such as the Data Protection Act, the Computer Misuse Act amongst other things.

A full list of the topics covered below:

1. Knowledge Management (KM)

2. The role of Virtual Teams in the Technology Sector

3. Project Management (Critical Path Analysis + PERT Diagrams)

4. Legal Acts (DPA/CMA/RIPA)

5. Privacy & Competence in Software Engineering

I found the course to be very disjointed, whether this is the fault of the university or the BCS I am not sure, but I found some areas such as legal aspects to be fairly vital (I enjoyed reading about the primary aspects of the DPA and the CMA as I am the type of learner who tries to “see through the bullshit” and I only tend to appreciate concrete concepts).

I took issue however with the field of Knowledge Management (KM). The concepts of tacit knowledge and explicit knowledge are fairly easy to understand but unfortunately most of the field of KM is beleaguered by the classic problems that Academia runs into; the ivory tower. Having studied English Literature for my Undergraduate degree, I am all too familiar with the flowery language of the academic who has too much free time and government funding and not enough actual work on their plate. If we take an excerpt from the preamble of paper  “Cognition, culture and competition: an empirical test of the learning organisation” by Ashok Jashapara, we can see that actually there is very little substance to back up anything that is being argued in this paper:

These assumptions have given rise to the notion of a learning organization (Garvin, 1993; Jashapara, 1993; Nevis et al., 1995; Nonaka and Takeuchi, 1995; Pedler et al., 1991; Senge, 1990; Swieringa and Wierdsma, 1992). Much of the literature is conceptually based on a management science perspective (Garvin, 1993; Nevis et al., 1995) or organizational development thesis (Dixon, 1994; Hawkins, 1994; Pedler et al., 1991). There is little evidence in the current literature to show how the prescribed forms of learning are likely to lead to increased performance among firms. The bias is towards the ’’soft’’ Harvard school of human resource management (Beer et al., 1985; Walton, 1985) rather than the ’’hard’’ Michigan school (Fombrun et al., 1984) focusing on strategic aspects. The urge to prescribe seems to overcome the need to show how data was collected underlying these models. 

Hey, lots of references to other papers (that I’m sure are just as “interesting”) but not much being said? Yes, that’s the gold standard in Knowledge Management. I am by no means trying to undermine the work of Mr Jashapara as it seems from a Google search that he is very esteemed in other subject areas, but it seems to me that the field of knowledge management is merely a high-filuten way of describing basic common sense.

Some of the hypotheses posited in the paper are:

1.  If an organisation commits itself to double loop learning (changing assumptions/norms within a company rather than settling for the first ‘port of call’ which is apparently approaching a task with a different strategy), then the organisation will be more efficient.

2. Team learning (i.e. teams learn new skills together) increases company efficiency.

I might just be feeling particularly childish today, but surely these are a given, there is NO need to write a 20 page academic paper on this subject – it is common sense that if a learning organisation commits itself to a process of learning, then efficiency of that organisation will naturally be on the up.

So what is the point of my rant on Mr Jashapara?

I won’t link you to the paper (just in case Mr Jash tracks me down and bashes my head in with one of his droll, emotionless reams of drivel), but the point of the above rant is to draw attention to what my ‘Professional Issues’ module is lacking. If I am successful in becoming a Software Dev, then granted I may need to know about the legal aspects of Data Protection, Privacy etc.
 
But the course completely misses out on covering areas such as unit testing, the software development lifecycle, general day to day factoids about the Software Development industry, that I now will have to spend the time learning on my own.
 
So in conclusion, it is my opinion that Academia is too highly strung. It needs to get a life, go outside and play a bit on the swings. 
 
Rant over.

CSS Frameworks / Boilerplates

Just a short post from me today..

So I may be a bit late to the party on Twitter’s CSS Bootstrap (which is absolutely awesome by the way). But I have found an even better “framework” called Groundwork. It has absolutely everything you could wish for: Fluid grid system as per standard, typography (more extensive than Twitter Bootstrap), Social Icons, Tiles, UI extras, and many many more. 

For my next blog, I will be posting as part of my #CodingFridays series on how to adopt the Twitter Bootstrap Framework to your ASP.NET projects (this includes how to adopt the Master Page to use the Bootstrap model, and how I got past some challenges that had risen out of using Bootstrap UI components as opposed to traditional ASP.NET controls)

For the meantime, happy coding!

Adam

Object Orientated Programming with ActionScript 3.0 and Flash CS6

So I’ve been experimenting with the new version of Flash Professional recently, Flash CS6. I previously had a copy of CS5 and it seems that they have changed quite a few things from CS5/CS5.5 to CS6. The simulation client has changed slightly (at least in the way that it operates). Previously, it seems that an Air debugger would launch to simulate your Air for iOS or Air for Android app, whilst now it seems Adobe have completely redesigned the simming feature and a new Flash instance pops up called ‘Sim’. Not too sure this new CS6 simming client is faster, but oh well!

Anyway so I’ve been experimenting with Document Classes and OOP programming in this new version of Flash and I’m in the process of making an Air for iOS app called “RecipeMatch” or “RecipeMatcher” for a university project. (Bit iffy on the name but I guess it doesn’t really matter!)

The app itself:

A screenshot of the “Ingredient Picker” from earlier on in the development process

RecipeMatch will allow the user to enter all of the ingredients in their fridge, and then it will tell them all of the potential recipes that can be cooked with the ingredients the user has specified. In a sense, you could see it as a lightweight “Epicurious”.

Technical details:

The app uses the XMLLoader to load xml data (included in the .zip file). Other features include the use of an Input Mask to make sure that scrolling content remains inside of the container object. I have adopted my scrolling list from this tutorial by ActiveTuts / TutsPlus.

I’ve included a zipped copy of the .fla + accompanying resources below…

I’ll write more about my app as it progresses along.

Download: here

 

Opinion: Is Codeplex really all that?

Aside

Unless you’ve been living under a rock, you may have heard of Microsoft’s Codeplex Open-Source Repository website. It provides developers with many different types of licence for their projects – and has a simple intuitive interface. And of course it’s free. But is it all that peachy? I’ll explain..

So, if you are to go by a simple Google search of “codeplex reviews”, you’ll find lots of articles singing its praises (albeit they may be from 2006 when the idea of anything Microsoft being dynamic or cutting edge seemed preposterous). One article by Jason Kolb even went as far to describe it as “fantastic” and “easy to use”. He is of course referring to the use of TFS (Team Foundation Server) with Codeplex here, whilst my own experience of Codeplex is using the Ankhsvn plugin for Visual Studio 2010. Jason does remark that svn support on Codeplex is very poor, and despite the best efforts of those who made the Ankhsvn plugin, the overall impression I get is that Codeplex does not work well with svn.

This all stems from a prolonged nightmare I experienced a few days ago, but only just managed to resolve. I had just made several fundamental changes to a website I had been designing in VS 2010. I tried to commit lots and lots of files (including the JQuery and JQuery UI packages downloaded through NuGet Package Manager) and the commit just faltered halfway through, but somehow still uploaded as a changeset. It was previously my understanding that if a commit fails in it’s upload, the project would revert back to the most recent successful changeset, but no, there is apparently a bug.

Other gripes I have with Codeplex are the transfer speeds. It seems that commits are dealt with in a responsive manner based on the size of each file that’s uploaded. The dialog box displayed the transfer speed information – examples include 1.2kb/s for a 10kb file and 800kb/s for an .accdb database file (MS-Access). It seems that MS doesn’t want to provide the adequate server resources for committing solutions on Codeplex.

Finally, I was very disappointed with the amount of support documentation available on the website

Anyway to cut a long story short, I created a separate folder at the root of my Codeplex Project directory, meaning the previous folder I was working on is now “kaput”. The silliest thing about Codeplex is that once a user has committed a changeset, they are unable to delete it, or to delete folders that they may have accidentally created. This is what led my Codeplex repository to become the jumbled mess that it is today.

CSS3 elements

So recently I’ve been using a lot of CSS3 elements on my projects. I must say that I’m very impressed with some of the features that are included in the update. Along with the CSS3 features that were released in 2010, there are obviously “CSS4″ elements that the W3C is planning for general release in the next couple of years. They have drafted a CSS4 specification document that looks quite interesting (link), officially called “Level 4″, much like the “Level 3 Specification” for the previous release (CSS3). 

CSS Selectors:

I must admit that CSS selectors are something that I have barely used – I am trying my best to learn the basic elements (or “selectors” if you want to be pedantic) but I am finding it hard to integrate selectors into my day to day CSS stylings. Very poor of me. W3 Schools have this little guide here which tells you all of the available selectors. 

Some of the selectors that caught me eye were the nth selectors. Some of which I couldn’t ever imagine using. But others that seem quite useful.

:nth-last-child(n) p:nth-last-child(2) Selects every <p> element that is the second child of its parent, counting from the last child 3
:nth-of-type(n) p:nth-of-type(2) Selects every <p> element that is the second <p> element of its parent 3
:nth-last-of-type(n) p:nth-last-of-type(2) Selects every <p> element that is the second <p> element of its parent, counting from the last child 3

f.lux: Better screen lighting for your Mac

So i’ve been using an app called Flux recently (link). A little note on their website says:

“We know that night-time exposure to blue light keeps people up late. We believe that f.lux adjusts colors in a way that greatly reduces the stimulating effects of blue light at night.”

It reduces the brightness and colour tone of your screen down at night to 4800k in my case. Unfortunately flux does have it’s downsides, as I have been photoshopping late at night and my perception of colours have been completely off as my screen’s colour calibration has been a bit off.