aetles + programming   55

Announcing Azure Pipelines with unlimited CI/CD minutes for open source | Blogg | Microsoft Azure
With the introduction of Azure DevOps today, we’re offering developers a new CI/CD service called Azure Pipelines that enables you to continuously build, test, and deploy to any platform or cloud. It has cloud-hosted agents for Linux, macOS, and Windows, powerful workflows with native container support, and flexible deployments to Kubernetes, VMs, and serverless environments.

Microsoft is committed to fueling open source software development. Our next step in this journey is to provide the best CI/CD experience for open source projects. Starting today, Azure Pipelines provides unlimited CI/CD minutes and 10 parallel jobs to every open source project for free. All open source projects run on the same infrastructure that our paying customers use. That means you’ll have the same fast performance and high quality of service. Many of the top open source projects are already using Azure Pipelines for CI/CD, such as Atom, CPython, Pipenv, Tox, Visual Studio Code, and TypeScript – and the list is growing every day.
programming  development  github  opensource  versioncontrol  testing  webdevelopment 
september 2018 by Aetles
Lessons Learned While Developing WordPress Plugins — Smashing Magazine
In this article, I’ll share my five years of experience developing WordPress plugins. The first plugin I wrote was a simple marketing plugin. It displayed a call to action (CTA) button with Google’s search phrase. Since then, I’ve written another 11 free plugins, and I maintain almost all of them. I’ve written around 40 plugins for my clients, from really small ones to one that have been maintained for over a year now.
plugin  wordpress  webdevelopment  programming 
july 2018 by Aetles
Training a Text Classifier with Create ML and the Natural Language Framework - Flight School
From Zero to Core ML Model in Minutes
Machine Learning can be difficult to get your head around as a programmer. But aside from all the advanced mathematics and tooling, perhaps most difficult of all is learning how to let go.
machinelearning  programming  ai  ml 
june 2018 by Aetles
Don't Follow WordPress Coding Standards
Since I learned plugin development by working as a support rep and developer for The Pods Framework, I learned first hand what happens when important guidelines we all agree to follow are violated. For example, a theme might replace the WordPress’ core jQuery, and work fine, but any plugins that assume that WordPress core’s jQuery is present might not keep working.

That said, there is a generally-accepted practice in plugin, theme, and site development that code should follow the standards defined for WordPress core development. This is something I disagree with — unless you’re doing core development.

I don’t mean to be hyper-critical, but WordPress is a framework that started before those who were building it understood the importance of consistent naming written in a language whose standard library started without any concept of the importance of consistent naming. The PHP community, through the PHP FIG group has developed how PHP code should be written and has published PSRs to codify the right way to format code, structure your code, autoload your code, and how to implement common concepts — events, cache, HTTP request.

As a result, in PHP development, there is now a “WordPress Way” and a “PHP Way.” And again I don’t mean to be harsh towards a platform and community I love, but one way is based on how the language and web apps have evolved and the other isn’t. I think that following the established best practices for PHP development makes more sense and doing so leads to better, more maintainable, and more interoperable code.
wordpress  webdevelopment  programming  php  code  codestandards 
january 2018 by Aetles
How To Enforce Code Standards In WordPress Development Using Composer
As a follow up to that article, I’d like to show you, technically how you can implement and adhere to a set standard, such as psr-2 or even the WordPress coding standards. You can do this using a tool called PHP Code Sniffer, in this article I’ll show you how to use this and other tools to test that your code follows these rules and fix most deviations automatically. Also, we’ll lint the code too.
php  programming  webdesign  webdevelopment  wordpress  tools 
january 2018 by Aetles
Reverse Engineering - Low Level Bits
Recently I have discovered the nice Stickies app that comes along with OS X. This is exactly what I needed for making quick notes while watching lectures or during debug sessions.

However, the first thing I did when I run the app first time - I opened preferences attempting to change the colors of notes. But there are no preferences, and there is no way to use a color other than six predefined.

I decided to fix that.
hack  mac  engineering  reverseengineering  macos  programming 
february 2017 by Aetles
Oh, shit, git!
Git is hard: screwing up is easy, and figuring out how to fix your mistakes is fucking impossible. Git documentation has this chicken and egg problem where you can't search for how to get yourself out of a mess, unless you already know the name of the thing you need to know about in order to fix your problem.

So here are some bad situations I've gotten myself into, and how I eventually got myself out of them in plain english.
git  development  programming 
september 2016 by Aetles
Writing Less Damn Code | HeydonWorks
Unlike aiming for ‘perceived’ performance gains — where you still send the same quantity of code but you chew it up first (ed: seriously) — you can actually make your Web Stuff cheaper to use. My data contract doesn’t care whether you send small chunks or one large chunk; it all adds up the same.
My favorite thing about aiming to have less stuff is this: you finish up with only the stuff you really need — only the stuff your user actually wants. Massive hero image of some dude drinking a latte? Lose it. Social media buttons which pull in a bunch of third-party code while simultaneously wrecking your page design? Give them the boot. That JavaScript thingy that hijacks the user’s right mouse button to reveal a custom modal? Ice moon prison.
It’s not just about what you pull in to destroy your UX or not, though. The way you write your (own) code is also a big part of having less of it. Here are a few tips and ideas that might help. I’ve written about some of them before, but in terms of accessibility and responsive design. It just happens that a flexible, accessible Web is one we try to exert little of our own control over; one we do less to break.
css  html  programming  web  webdevelopment 
august 2016 by Aetles
How to maintain a git remote fork | Rhonabwy
In the world of open source software, you make a fork of software all the time. Github has made it super easy, and more importantly, it’s how they (and git) have arranged to collaborate on software. This “how to” is for when you decide that you want to maintain your own fork, with changes in addition, or just divergent, from the original project. For most cases, you are going to be much better off submitting back your changes. Be damned sure you need to keep your changes to yourself.

If you want to keep your changes locally and just for yourself, then immediately recognize that you have just taken on “technical debt”. The interest rate for this debt could be high or low. Following the “debt” metaphor, the cost is based on how much activity and change happens in the repository from which you forked and want to take future changes.

I’m writing this article presuming you want or need to keep a fork with “a few changes added”, and you want to keep it otherwise up to date with the changes happening by others in the open source community.
git  programming  webdevelopment  development  tutorials 
april 2016 by Aetles
php - Best Practice: How to Structure Arrays - Standards and Naming Conventions - Stack Overflow
What is the best practice in multidimensional array structure in terms of what elements hold the iterator vs the detail elements?

The majority of my programming experience (and I do mainly do it for fun) comes from following tutorials on google, so I apologize in advance if this seems an exceptionally daft question - but I do want to start improving my code.

Whenever I have needed to make a multidimensional array, my naming has always placed the counter in the first element.
php  arrays  programming  webdevelopment 
march 2016 by Aetles
Five Things Old Programmers Should Remember — Medium
I had forgotten that being a software engineer was my first, best destiny, and that nothing I had ever done had made as significant contribution as my coding. My first successful company was built upon a piece of software I wrote, and much of it is still in use today.
So, after a year of kicking myself in the behind, I started throwing away my pre-conceived ideas of what the industry was all about. I started learning new languages, and taking risks. I got lucky, and by the time I was 57, I ended up designing and building one of the best pieces of software I had ever written for a small local startup. It was big, bold, visionary, and made a difference.
So, for those of you in the same boat, I’ve tried to distill some conclusions I’ve reached after finally digging myself back out and finding my true calling again.
Here are five things to think about, and remember.
development  management  programming  aging  webdevelopment 
november 2015 by Aetles
Start Developing iOS Apps Today: Tutorial: Basics
This tutorial takes you through the process of creating a simple user interface and adding the custom behavior that transforms the interface into a working app. The finished app will run on iPhone and iPad.

This tutorial teaches you how to:

Use Xcode to create and manage a project
Identify the key pieces of an Xcode project
Run your app in iOS Simulator
Create a basic user interface in a storyboard
Preview your user interface
Adopt Auto Layout to add flexibility to your user interface
apple  design  ios  programming  apps 
september 2015 by Aetles
make is a widely used and valuable development tool. It's a "build" tool: it builds programs and documentation according to a "recipe". It could really be used for anything where someone edits some files, and then runs a series of processing steps to generate some other form from the edited files. For the most part, however, it's just used to build and install software. make has its origins in Unix somewhere, and these days each BSD project and the GNU project have their own version.

I often get the impression that many otherwise knowledgeable and skilled developers don't have more than rudimentary knowledge of make, and could benefit from a more solid understanding. I don't particularly blame them: make is certainly ancient and has odd syntax and quirks. So many developers do the minimum necessary to add their new sources to the build, and then go back to working on the actual code. Having a good build system and understanding how it works can make development and deployment of software much more pleasant, so I humbly suggest taking the time to really learn one.

This blog post is about using a subset of the features of GNU Make to write "good" build systems.
programming  make  gnu  linux  development  webdevelopment 
april 2015 by Aetles
Announcing Starfighter | Kalzumeus Software
We’re going to publish a game in the genre often described as “Capture The Flag” (CTF). It will be a goal-oriented exploration of technology.

You will code to play. You will not pay to code.

Our CTF will be totally free for players. (Not “free-to-play.” There is no catch. We will not ask you to pay extra to buy funny hats or recharge energy or unlock the full version.)

To progress in the game, players will have to use every programming skill they know, and pick up new tricks along the way.

CTFs are a superior way to learn rare and valuable programming skills which you would not otherwise be exposed to. We’ll give you the excuse, and code/test harnesses/documentation/community support/etc, to try that language/framework/problem space/etc you’ve been meaning to learn “someday.” The games Starfighter produces will help programmers all over the world learn these skills absolutely free.
programming  games  education 
march 2015 by Aetles
BashPitfalls - Greg's Wiki
This page shows common errors that Bash programmers make.
bash  linux  programming  tips 
october 2014 by Aetles
Eloquent JavaScript
Eloquent JavaScript
second edition

This is a book about JavaScript, programming, and the wonders of the digital. You can read it online here, and a paper version is being worked on.
javascript  programming  webdevelopment 
august 2014 by Aetles
Personal Registry Editor » Blog Archive » how I ended up conducting the most successful technical interviews with a single question
and so it was, that after 1 year of trial and error, i completely stopped handing out technical tests. i would sit down with the candidate, read and comment his resume without asking him any questions for a good 5-10 minutes. and then i would flip over the resume, look at the candidate in the eyes and ask: “we have about 30 minutes left. will you please tell me about the best project that you’ve ever created?”

that simple, unique and nonjudmental question was the key. some answered vaguely about their previous work or school project. and then some others became suddenly alive and excited, even those who appeared to be the shyest. they would talk passionately about the game they were creating, the website they had made, the open source projects they had contributed to, the utilities they made after being stuck in the middle of nowhere without any internet access. they were proud to show me. i was always fascinated by what i heard and would ask about all the details of the project they had treasured. they opened up and talked about the technical difficulties that they had overcome, about the little personal touch they added. it was their baby. and as they talked it was impossible to miss: i could see that light in their eyes, the excitement of a child that compiles and runs his first hello world. i would know right then that we had something in common. they were programmers too.
jobs  programming 
july 2014 by Aetles
Visualizing Algorithms
Algorithms are a fascinating use case for visualization. To visualize an algorithm, we don’t merely fit data to a chart; there is no primary dataset. Instead there are logical rules that describe behavior. This may be why algorithm visualizations are so unusual, as designers experiment with novel forms to better communicate. This is reason enough to study them.

But algorithms are also a reminder that visualization is more than a tool for finding patterns in data. Visualization leverages the human visual system to augment human intellect: we can use it to better understand these important abstract processes, and perhaps other things, too.
june 2014 by Aetles
Creating, testing and maintaining a large JavaScript code base is not easy — especially since great resources on how to do this are hard to find. This page is a collection of the best articles, videos and presentations we've found on the topic.

Follow us on Twitter, GitHub, RSS, or check out our newsletter.
And we'd love to hear your suggestions.

We come across a lot of great articles on creating, testing and maintaining large JavaScript applications. This page is a continuously updated list of articles that help explain the syntax of JavaScript, how to organize your projects, how to test your code, and what's on the horizon. Have fun!
javascript  programming  webdevelopment 
april 2014 by Aetles
Learn |
The Hour of Code is just the first step on a journey to learn more about how technology works and how to create software applications.
code  programming  kids  education  learning 
january 2014 by Aetles
JS: The Right Way
This is a JavaScript guide intended to introduce new developers and help experienced ones to the JavaScript's best practices.
Despite the name, this guide doesn't mean exactly "the right way" to do JavaScript.
We just gather all the stuff from top developers and put here. Since it come from exceptional folks, we could say that it is "the right way", or the best way to do so.
javascript  programming  js 
january 2014 by Aetles
Learn X in Y Minutes: Scenic Programming Language Tours
Take a whirlwind tour of your next favorite language.
november 2013 by Aetles
Git is Not a New Subversion

Yes: Git hasn’t invented the concept of “branches”. But it’s the first system that was deliberately built around this concept. Only when branching becomes as fast & easy as it is in Git will you start to use it extensively. And that’s exactly how you should use it: for every new feature, for every bugfix, for every experiment and proof of concept.
Using branches heavily in your development can make you a better programmer like few other habits can. The reason for this is that it helps you keep order in your project - because branches keep different contexts (features, bugfixes, etc.) separate from each other.
git  programming  subversion  svn  versioncontrol 
october 2013 by Aetles
Errata Security: The Rob Test: 12 Steps to Safer Code
Joel Spolsky has a famous list of "12 Steps to Better Code". I thought I'd create a similar list for safer, more secure code that's resilient against hackers.

The Rob Test
1. Do you use source control, bug tracking, and planning (i.e. GitHub basics)?
2. Do you have automated (one step, daily) builds?
3. Do you have automated regression/unit testing? Can you fix/release in 24 hours?
4. Do you reward testers for breaking things? (like fuzz testing)
5. Do your coders know basic vulns? (buffer-overflows, OWASP Top 10) Do you train them? Do you test new hires?
6. Do you know your attack surface? threat model?
7. Do you sniff the wire to see what's going on? (including sslstrip)
8. Do you have detailed security specifications as part of requirements/design?
9. Do you ban unsafe practices? (strcpy, SQL pasting, clear-text)
10. Do you perform regular static/dynamic analysis on code?
11. Do you have, and practice, an incident response plan? (secure@, bounties, advisories, notification)
12. Are your processes lightweight and used, or heavyweight and ignored?
security  development  programming 
august 2013 by Aetles
Coding, Fast and Slow: Developers and the Psychology of Overconfidence
So what do we do? Just accept that all our projects are doomed to failure? That we’ll have poisoned relationships with the rest of the business, because we’ll always be failing to meet our promises?

The key is that you first accept that making accurate long-term estimates is fundamentally impossible. Once you’ve done that, you can tackle a challenge which, though extremely difficult, can be met: how you can your dev team generate a ton of value, even though you can not make meaningful long-term estimates?

What we’ve arrived at is basically a first-principles explanation of why the various Agile approaches have taken over the world. I’ll get into more detail on that in a later post: “No Deadlines For You! How To Help Business Owners Love You, Even Though You Will Make No Commitments”.
programming  psychology  projectmanagement 
april 2013 by Aetles
AngularJS — Superheroic JavaScript MVW Framework
Why AngularJS?

HTML is great for declaring static documents, but it falters when we try to use it for declaring dynamic views in web-applications. AngularJS lets you extend HTML vocabulary for your application. The resulting environment is extraordinarily expressive, readable, and quick to develop.
framework  javascript  programming  webdevelopment 
april 2013 by Aetles
Ten reasons not to use a statically typed functional programming language | F# for fun and profit
Are you fed up with all the hype about functional programming? Me too! I thought I'd rant about some reasons why sensible people like us should stay away from it.
humor  programming 
april 2013 by Aetles
Understanding Git Conceptually
This is a tutorial on the Git version control system.

Git is quickly becoming one of the most popular version control systems in use. There are plenty of tutorials on Git already. How is this one different?

A Story

When I first started using Git, I read plenty of tutorials, as well as the user manual. Though I picked up the basic usage patterns and commands, I never felt like I grasped what was going on “under the hood,” so to speak. Frequently this resulted in cryptic error messages, caused by my random guessing at the right command to use at a given time. These difficulties worsened as I began to need more advanced (and less well documented) features.

After a few months, I started to understand those under-the-hood concepts. Once I did, suddenly everything made sense. I could understand the manual pages and perform all sorts of source control tasks. Everything that seemed so cryptic and obscure now was perfectly clear.

Understanding Git

The conclusion I draw from this is that you can only really use Git if you understand how Git works. Merely memorizing which commands you should run at what times will work in the short run, but it’s only a matter of time before you get stuck or, worse, break something.
development  git  programming  tutorial 
january 2013 by Aetles
Announcing Source Code Pro « Typblography
One particularly surprising aspect of Source Sans’s release was the amount of interest generated by the teaser graphic of the monospaced version. It seemed that this generated about as much buzz as the fonts that we released. Brackets, the open source code editor created by Adobe, has just recently implemented the regular weight of Source Code into their project. Likewise, the font will be integrated into Adobe Edge Code, which was announced this morning at our Create the Web event in San Francisco. The complete family of six weights will also be available as part of our new Adobe Edge Web Fonts service, which was just announced this morning.

Why monospace?
As a font developer, I spend a good chunk of each day coding in a text editor and reading output messages from a terminal window, so I can appreciate the importance of a good monospaced font. Of course there is no technical limitation to using monospaced fonts when coding, but it is a very useful convention. When the Brackets team reached out to us on the Adobe type team, asking if we could develop a coding font for their open source application, we thought it made sense to adapt Source Sans, which I was working on at the time. Personally, I felt that I could use this opportunity to create a coding font that I would want to use myself. Given the existing family name, I couldn’t resist the opportunity to name the monospaced variant designed for coding applications Source Code.
font  fonts  programming  typography 
october 2012 by Aetles
Merge or Rebase? – SourceTree by Atlassian
As you’re no doubt aware, Git and Mercurial are great at re-integrating divergent lines of development through merging. They have to be, since their design strongly encourages developers to commit changes in parallel in their own distributed environments. Eventually some or all of these commits have to be brought together into a shared graph, and merging and rebasing are two primary ways that let us do that. So which one do you use?
git  versioncontrol  mercurial  development  programming 
august 2012 by Aetles
Software Inventory - Joel on Software
The “cost” of code inventory is huge. It might add up to six or twelve months of work that is stuck in the assembly line and not yet in customers’ hands. This could be the difference between having a cutting-edge product (iPhone) or constantly playing catchup (Windows Phone). It’s nearly impossible to get people to buy Windows Phones, even if the iPhone is only six months better. A lot of markets have network effects, and being first has winner-take-all implications. So getting rid of inventory in the development process can make or break a product.

Let’s go over the three places most inventory accumulates.
programming  development 
july 2012 by Aetles
PHP: The Right Way
There’s a lot of bad information on the Web (I’m looking at you, W3Schools) that leads new PHP users astray, propagating bad practices and bad code. This must stop. PHP: The Right Way is an easy-to-read, quick reference for PHP best practices, accepted coding standards, and links to authoritative tutorials around the Web.

It is important to understand there is no canonical way to use PHP. That’s the beauty of it. This website introduces new PHP developers to best practices, available options, and good information.
programming  php 
july 2012 by Aetles
Home // Think Like (a) Git

When you're just getting started, something as straightforward as a merge can be terrifying. It can take a long time to really become comfortable using some of Git's more advanced features. (It took me a year or two.)

Once people achieve some level of Git enlightenment, they tend to make statements of the form 'Git gets a lot easier once you realize X' -- but that doesn't do much for people staring up Git's steep learning curve.

My goal with this site is to help you, Dear Reader, understand what those smug bastards are talking about.
development  git  programming  versioncontrol 
may 2012 by Aetles
Modern Web Development
The mobile landscape today is all but monopolized by WebKit, as a result, most of the tooling and infrastructure to support mobile web development on the frontend is taking place in the WebKit Inspector, so I’ll focus on it, and take a deep dive into its entire feature-set and how and when to use it.

Google and the Chrome team have been pumping a ton of resources into the WebKit Inspector. The changes have enabled a whole new class of complex and ambitious applications that would have otherwise collapsed on their own weight. This is great news, of course, but as I talk to more and more web developers about their process and tooling, it became clear to me that many of them haven’t caught up with the changes or aren’t making effective use of the tooling available. This blog post attempts to remedy that, not only by walking you through the inspector’s feature set, but also highlighting certain techniques for bug hunting and feature development that I’ve found to be indispensable.
javascript  performance  programming  web  tools  debugging  webkit  inspector 
april 2012 by Aetles
ircmaxell's blog: PHP Sucks! But I Like It!
I read a rather interesting post yesterday called PHP: a fractal of bad design. It's been getting a lot of traffic among the PHP community lately because it's rather inflammatory. But to be honest, it does make a lot of really good points. It also makes a lot of mistakes and misses a bigger picture.
php  programming 
april 2012 by Aetles
PHP: a fractal of bad design - fuzzy notepad
I’m cranky. I complain about a lot of things. There’s a lot in the world of technology I don’t like, and that’s really to be expected—programming is a hilariously young discipline, and none of us have the slightest clue what we’re doing. Combine with Sturgeon’s Law, and I have a lifetime’s worth of stuff to gripe about.

This is not the same. PHP is not merely awkward to use, or ill-suited for what I want, or suboptimal, or against my religion. I can tell you all manner of good things about languages I avoid, and all manner of bad things about languages I enjoy. Go on, ask! It makes for interesting conversation.

PHP is the lone exception. Virtually every feature in PHP is broken somehow. The language, the framework, the ecosystem, are all just bad. And I can’t even point out any single damning thing, because the damage is so systemic. Every time I try to compile a list of PHP gripes, I get stuck in this depth-first search discovering more and more appalling trivia. (Hence, fractal.)

PHP is an embarrassment, a blight upon my craft. It’s so broken, but so lauded by every empowered amateur who’s yet to learn anything else, as to be maddening. It has paltry few redeeming qualities and I would prefer to forget it exists at all.

But I’ve got to get this out of my system. So here goes, one last try.
language  php  programming 
april 2012 by Aetles
Why Objective-C is Hard » Ash Furrow
As an active member of "The Internet" and vocal Objective-C coder, I get a lot of questions surrounding the language. They're often framed around thinking about learning the language or trying to write an app, but they also usually involve a phrase like "Objective-C looks really hard" or "what are all those minus signs about?" Both of these are pretty good questions, and I'd like to address why someone might be more hesitant to jump into iOS or OS X development compared to, say, Ruby or Java.
apple  programming  objectivec 
march 2012 by Aetles
Coding Horror: How to Hire a Programmer
How to Hire a Programmer
There's no magic bullet for hiring programmers. But I can share advice on a few techniques that I've seen work, that I've written about here and personally tried out over the years.

1. First, pass a few simple "Hello World" online tests.
I know it sounds crazy, but some people who call themselves programmers can barely program. To this day, I still get regular pings from people who tell me they had candidates fail the most basic programming test imaginable.

That's why extremely simple programming tests are step one of any sane interview process. These tests should happen online, and the goal is not to prove that the candidate is some kind of coding genius, but that they know what the heck programming is. Yes, it's sad and kind of depressing that this is even necessary, but if you don't perform this sanity check, trust me – you'll be sorry.

Some services that do online code screening (I am sure there are more, but these are the ones I know about) are Interview Zen and codility.
programming  hiring  business 
march 2012 by Aetles
Using replace to remove ' ' characters -
Thanks for the reply, s removes spaces but it doesn't seem to strip non-breaking spaces (I actually use another function to trim excess space using this command).

I'm not sure if there is a way to do this or a reason it's failing with   but I have a workaround now if anyone else needs this. Using the unicode equivalent of   works, ie str.replace(/u00a0/g,'');
javascript  programming 
february 2012 by Aetles
Hashing for privacy in social apps - Matt Gemmell
I’m 32 (and a half) years old, at time of writing in early February 2012, so Morin and I work in the same field and are of approximately the same age. The difference is, I not only immediately thought of hashing as an appropriate measure, but was shocked that Path hadn’t implemented their app and servers that way. Nonetheless, this isn’t an isolated example.

From talking to many developers about this privacy intrusion during the past week, it quickly became disturbingly clear to me that many aren’t familiar with hashing at all. This is also predictably (and entirely forgivably) true for the many journalists who have covered the story, unintentionally distorting the issue due to lack of education in the field.

This article, therefore, aims to introduce the concept of hashing in a clear, straightforward, and no-degree-required way, suitable for journalists and casual readers as well as programmers and software engineers. I’ll also explain why it’s suitable for preserving the privacy of contact information whilst still allowing for social functionality, and I’ll touch on whether or not you really need to store that contact information (hashed or not) in the first place.
hash  hashing  privacy  programming 
february 2012 by Aetles
Wat — Destroy All Software Talks
A lightning talk by Gary Bernhardt from CodeMash 2012
javascript  programming  ruby  presentation  humor 
january 2012 by Aetles
Call Me Fishmeal.: Free Programming Tips are Worth Every Penny.
Sometimes people say to me, "Hey, Wil, you've been programming since dinosaurs roamed the earth... do you have any advice for young whippersnappers like us?"

And I always respond, "Hey, you kids, GET THE HECK OUT OF MY YARD!"

No, no, I usually demur with, "Oh, gosh, I don't know," as I look down shyly and shuffle my feet.

But, I've thought about it a lot recently, after writing so much solo code for Delicious Library (for the first time in many years), and then taking on a new programmer and trying to impart my style on him. And what I've come up with is a style I call:

* The Way of the Code Samurai *

Now, I don't actually know much about real samurai, but the basic thing I've heard is they stand and stare at each other for hours, and then suddenly BAM strike once and the other guy is down.

That's how you should code.
november 2011 by Aetles
Kelly Sutton's Tumblr, 12 Steps to Writing Better Web Code
It’s been over a decade since Joel Spolsky wrote the Joel Test: 12 Steps to Better Code. The man was ahead of his time. Sure, things like version control are a no-brainer for any competent shop out there. With the ease of tools out there, most teams have a bug database and have reasonably up-to-date schedules. Heck, most software companies out there do pretty well on Joel’s 12 steps. But those 12 steps are no longer enough.

I’ve become somewhat of a process nut, which is weird. Usually I’ve got my finger over the big red deploy button before anyone else. But that’s not process, that’s deploying. I like to hear how other companies work. I see the most trivial roadblocks frustrate some developers. Many companies, both big and small, pay too little attention to process. It hurts morale, it contributes to unnecessary work and it will eventually lead to a product falling apart.

This is my attempt to codify what I think are 12 great supplemental steps to Joel’s first 12. Like Joel’s, you should give a binary answer to each question: “yes” or “no.”
code  development  programming  tips 
november 2011 by Aetles HOWTO Use UTF-8 Throughout Your Web Stack
Good is the enemy of Great
Latin-1 is the enemy of UTF-8
You write web apps. You understand the web is global, and want to support internationalization. You want UTF-8.
UTF-8 is extremely sane. Well, as sane as an encoding can be that features backwards-compatibility with ASCII.
Everything you care about supports UTF-8. Trust me: you want it everywhere.
Problem is, every last part of the web-application stack will fight you on your quest towards UTF-8 purity. What follows is a playbook to win your pervasive-UTF-8 battle.
encoding  mysql  programming  utf8 
august 2011 by Aetles
Steven Frank: Programming for Mere Mortals
Programming for Mere Mortals is a series of books designed to introduce the concepts of programming from the ground up to a reader who has never written a line of code.

Unlike most programming books which aim to teach you a particular language or operating system, this series focuses on the core fundamentals that are common to programming any computer.

The first volume, How to Count (approx. 70 pages), introduces you in a laid-back, conversational tone to math concepts that are essential to becoming a successful programmer.
august 2011 by Aetles
Rubular: a Ruby regular expression editor and tester
Rubular is a Ruby-based regular expression editor. It's a handy way to test regular expressions as you write them.

To start, enter a regular expression and a test string.
programming  ruby  regexp 
july 2011 by Aetles
A successful Git branching model »
In this post I present the development model that I’ve introduced for all of my projects (both at work and private) about a year ago, and which has turned out to be very successful. I’ve been meaning to write about it for a while now, but I’ve never really found the time to do so thoroughly, until now. I won’t talk about any of the projects’ details, merely about the branching strategy and release management.
git  programming  development 
april 2011 by Aetles
Understanding Git Conceptually
This is a tutorial on the Git version control system.

Git is quickly becoming one of the most popular version control systems in use. There are plenty of tutorials on Git already. How is this one different?

A Story

When I first started using Git, I read plenty of tutorials, as well as the user manual. Though I picked up the basic usage patterns and commands, I never felt like I grasped what was going on “under the hood,” so to speak. Frequently this resulted in cryptic error messages, caused by my random guessing at the right command to use at a given time. These difficulties worsened as I began to need more advanced (and less well documented) features.

After a few months, I started to understand those under-the-hood concepts. Once I did, suddenly everything made sense. I could understand the manual pages and perform all sorts of source control tasks. Everything that seemed so cryptic and obscure now was perfectly clear.

Understanding Git

The conclusion I draw from this is that you can only really use Git if you understand how Git works. Merely memorizing which commands you should run at what times will work in the short run, but it’s only a matter of time before you get stuck or, worse, break something.
git  programming  versioncontrol  tutorial 
february 2011 by Aetles
Whatever happened to programming? « The Reinvigorated Programmer
A huge part of my job these days seems to be impedence-matching between big opaque chunks of library software that sort of do most of what my program is meant to achieve, but don’t quite work right together so I have to, I don’t know, translate USMARC records into Dublin Core or something.  Is that programming?  Really?  Yes, it takes taste and discernment and experience to do well; but it doesn’t require brilliance and it doesn’t excite.  It’s not what we dreamed of as fourteen-year-olds and trained for as eighteen-year-olds.  It doesn’t get the juices flowing.  It’s not making.
march 2010 by Aetles
Cocoa Is My Girlfriend » Why version control is important for solo developers
It’s common practice for any software project with multiple coders to use some version control mechanism. CVS or Subversion used to be popular. These days distributed systems like git and Mercurial are the quickly replacing the old standards. But what about the cases when you’re the only coder?

Let me tell you. Whatever the initial setup cost, coding is much easier with version control than without it.
november 2009 by Aetles
Behind the Red Shed, with Jonathan ?The Wolf? Rentzsch
Intressant intervju med Jonathan 'The Wolf' Rentzsch, en vass macprogrammerare.
Jonathan  ?The  Wolf?  Rentzsch  mac  programming  macprogrammering  legend  programmerare  DrunkenBlog  Programmering 
april 2005 by Aetles

Copy this bookmark: