giugee(k)

To My Next Employer: My Cover Letter

In a moment of personal demotivation I wrote this post on GitHub a few weeks back, here’s a copy.


Dear Employer,

My name is Giulia (it’s pronunciated the same as Julia) and I am a front end developer from Italy currently living in Brighton, UK.

I am writing to You for one simple reason: I love my job and I am looking for a company that loves it too. I moved from Italy to the United Kingdom with one dream: to improve myself, my knowledge and my skills, to find a place where innovation is appreciated, to work for a company that cares about what it does and how it does it. Honestly, so far I feel like I haven’t found this magical place. Sure, all the companies I have worked for wanted to be succesful and wanted to create and provide a great product, but none of them really cared about my field: front end. Front end for me is not just “writing HTML and changing colors with CSS” as someone not familiar with the field may think. Front end for me is delivering a better experience to the users, writing good code, caring about performances, thinking forward, caring about possible problems, bugs and changes.

I can describe to You how passionate I am about all these topics: first of all, I moved to Brighton because I know smart people with the same passion and care live here. I have flown here with no return ticket, two luggages, one laptop and no personal connections in the city. All to pursue my dream.

Second, I spend most of my spare time reading articles, blogs, books about web development and experimenting new tools, techniques, technologies that otherwise I would not have the time or the chance to try at work.

Third, I love, really love, going to conferences about web development and design. I love it so much that I do it even with my money on my personal holidays (and discovering I am not the only one makes it a relieve so I know I am not the only crazy one). Conferences for me are like fuel for my brain, my mood and my spirit. I can meet really different people, discover new ideas and recharge in my beliefs that a better web is possible. I can say I have even actually made some really good friends at these events.

Fourth, I care about doing a good job. I want to do a good job. I aim to perfection. Even though I know sometimes it is not possible, even though I know sometimes it leads me to frustration.

And because all of these, I want a company that feels the same. I want colleagues that feel the same. It may sound pretentious and arrogant, but I want a place where my work is important, because I believe that if front end is not considered important, than that is not my home. And I also think that the final product will suffer from the lack of care about front end. These times there are products for everything and competitors in everything. In the long run the winner is the one that offers perfection, not mediocrity. And perfection is achieved caring about all the aspects of the product, front end included.

So, dear Employer, I may write the next sentence a little bit too rude, a little bit too harsh, but honesty is important from the beginning: if you think CSS is just about changing colors, design is copying someone else’s style, devices apart from desktops are futuristic, jQuery -is- JavaScript, specs are not important, planning is a waste of time, please reject my application, please do not get in touch with me. I am not the one for you and you are not the one for me.

But if you have my same vision, please, please, do get in touch with me. Or just wave at me if you do not want to hire me, even if you are not hiring at all, just to tell me you are out there.

CyanogenMod for Samsung Galaxy S II

This guide is for installing CyanogenMod 10.1 on Samsung Galaxy S II using Mac OS X (10.8.4 at the time of writing).

Get the files

Installation

  1. Fully charge the device.
  2. Place the CyanogenMod rom and the Google Apps .zip files on the root of the SD card and on the root of the phone storage.
  3. Install Heimdall Suite as a normal application and follow the instructions.
  4. Extract the zImage file from the ClockworkMod zip.
  5. Open a terminal on the computer and navigate to the directory containing zImage (do not close the terminal for the moment).
  6. Power off the Galaxy S II and connect the USB adapter to the computer but not to the Galaxy S II.
  7. Now boot the Galaxy S II into download mode by holding down Volume Down, Home & Power. Accept the disclaimer. After this insert the USB cable into the device.
  8. From the previously open computer terminal run the following command:

    sudo heimdall flash —kernel zImage —no-reboot

  9. A blue transfer bar will appear on the device showing the recovery being transferred.

  10. Manually reboot the phone into ClockworkMod Recovery mode by holding Volume Up, Home, & Power.
  11. Use the physical volume buttons to move up and down and the power button to confirm your selection.
  12. Select backup and restore to create a backup of the current installation on the device.
  13. Select the option to wipe data/factory reset.
  14. Select install zip from sdcard.
  15. Select choose zip from sdcard.
  16. Select the CyanogenMod file you placed on the sdcard. You will then need to then confirm that you do wish to flash this file.
  17. If for some reason it’s not possible to install from the sdcard, select the choose zip from internal sdcard option to select the files from the internal memory.
  18. Repeat the install, choose and select procedure for the Google Apps file.
  19. Return back to the main menu, and select the reboot system now option.
  20. The device should now boot into CyanogenMod.

Go back to the Stock Official Firmware

  1. Unzip the Official Stock Firmware
  2. Open a terminal on the computer and navigate to the directory containing the extracted files (do not close the terminal for the moment).
  3. Power off the Galaxy S II and connect the USB adapter to the computer but not to the Galaxy S II.
  4. Now boot the Galaxy S II into download mode by holding down Volume Down, Home & Power. Accept the disclaimer. After this insert the USB cable into the device.
  5. From the previously open computer terminal run the following command:

      sudo heimdall flash --factoryfs factoryfs.img --cache cache.img --hidden hidden.img --modem modem.bin --kernel zImage --param param.lfs --primary-boot boot.bin --secondary-boot Sbl.bin
    
  6. A blue transfer bar will appear on the device showing the recovery being transferred.

  7. Reboot the phone.

Sources

Avoid a Particular Rule Repetion in SASS

A couple of months ago I came across this question on Stack Overflow, about how to not repeat the behavior property (to use with CSS3PIE for IE8 and below) in a selector if this was declared more than once due to the inclusion and use of multiple mixins (for like border-radius, box-shadow, etc).

A couple of days ago, while I was working on a similar case, my issue was not how to avoid the repetition of the properties inside a single selector, but to not repeat it at all in the entire css files. This is my solution.


Due to:

IE interprets the URL for the behavior property relative to the source HTML document, rather than relative to the CSS file like every other CSS property

(more info), the url is kept in a variable, to be easily changed according to the project:

$pie-path: "/myproject/PIE.htc";

No prefix needed unless 2.1 Android and below and 3.2 iOS and below or CSS3PIE for IE8 and below so this mixin is not really needed anymore – more info

@mixin border-radius ($val) {
  @each $prefix in '' {
        #{$prefix}border-radius: $val;
    }
    @extend %pie !optional;
}

No prefix needed unless 3 Android and below and 4.3 iOS and below or CSS3PIE for IE8 and below – more info

@mixin box-shadow ($val...) {
    @each $prefix in -webkit-, '' {
        #{$prefix}box-shadow: $val;
    }
    @extend %pie !optional;
}

A note about “!optional”: this flag is to avoid SASS to throw an error if that @extend doesn’t work (e.g.: the placeholder is in the .scss file for IE and not in the general one, but the mixin is called by both) – more info

Placeholder selector: at the beginning of the file to allow following rules to override any position/fix property.
A note about “position:relative”: it’s declared here to fix the z-index issues (disappearing backgrounds/borders/shadows) – more info.
Depending on the css and project, this rule can break the layout

%pie {
    behavior: url($pie-path);
    position: relative;
}

Usage

.item1 {
    @include border-radius(10px);
}
.item2 {
    @include border-radius(5px);
    @include box-shadow(10px 10px 10px rgba(#000, .3));
}
.item3 {
    @include box-shadow(10px 10px 10px rgba(#F90, .8));
}

Output

.item1,
.item2,
.item3 {
    behavior: url("/myproject/PIE.htc");
    position: relative;
}

.item1 {
    border-radius: 10px;
}
.item2 {
    border-radius: 5px;
    -webkit-box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.3);
            box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.3);
}
.item3 {
    -webkit-box-shadow: 10px 10px 10px rgba(255, 153, 0, 0.8);
            box-shadow: 10px 10px 10px rgba(255, 153, 0, 0.8);
}

The behaviour rule is not repeated and the css is more clean, with the properties declared only once, thereby facilitating the separation of styles between IE and non-IE.

How to Install WordPress With Ssh

To avoid a waste of time downloading, unzipping and uploading the WordPress files, I used this method to install it through ssh on my 1&1 hosting (the $ symbol is just to show that it’s a console command, there’s no need to digit it):

  1. Connect to your server via ssh

     ssh yourusername@yourserver
    
  2. Insert password when requested

  3. Once connected, download the latest version of WordPress

     $ wget http://wordpress.org/latest.tar.gz
    
  4. Unarchive the downloaded file, where the parameter x is for extract, z is for the gzip format used and f is to specify from which file

     $ tar -zxf lastest.tar.gz
    
  5. Rename the created wordpress folder to the desired one

     $ mv wordpress/ blog/
    
  6. Follow the Famous 5-Minute Install skipping point 1 and 5, while for the point 3 and 4 work directly on the server. The file can be renamed through ssh

     $ mv wp-config-sample.php wp-config.php
    

    and edited using any console editor the server has installed, such as nano or vim.