Don't Be Scared Of Functional Programming | Smashing Magazine
"Functional programming is the mustachioed hipster of programming paradigms. Originally relegated to the annals of computer science academia, functional programming has had a recent renaissance that is due largely to its utility in distributed systems (and probably also because “pure” functional languages like Haskell are difficult to grasp, which gives them a certain cachet)."
functional  functionalprogramming  javascript  programming 
september 2014
Making iOS security super simple (iOSDevUK) // Speaker Deck
"Our apps today store tremendous amounts of potentially sensitive information. As developers, it is our job to ensure this information is well protected. iOS comes with many built-in security features, and several APIs to help secure the user's data. Using these features and applying other good security practices is usually not that difficult, as long as you know about them, use them properly, and avoid their pitfalls.

In this practical session, we'll dig into the details of built-in iOS features, like filesystem encryption. We'll look at the various APIs you can use to protect data, like Keychain, and how to use them properly. Lastly, we'll take a look at some examples of how not to do iOS security, and what we can learn from those."
security  ios 
september 2014
Visualizing Garbage Collection Algorithms
"I’ve built a toy with five different garbage collection algorithms. Small animations were created from the run-time behavior. You can find larger animations and the code to create them at github.com/kenfox/gc-viz. It surprised me how much a simple animation reveals about these important algorithms."
algorithms  visualization  ARC  garbagecollection  memorymanagement  memory 
september 2014
How to get animations out of your head - Scott Hurff
"You’ve probably been doing this more recently: you’ve got an idea for a UI transition, but you resort to hand motions and sound effects like “fwshh, pop, hwwct” to communicate what’s in your head."
animation  css  design  prototyping  tips  ios  apps 
august 2014
An Ansible Tutorial | Servers for Hackers
"Ansible is a configuration management and provisioning tool, similar to Chef, Puppet or Salt.

I've found it to be one of the simplest and the easiest to get started with. A lot of this is because it's "just SSH"; It uses SSH to connect to servers and run the configured Tasks.

Here I'll show how easy it is to get started with Anible. We'll start basic and then add in more features as we improve upon our configurations."
sysadmin  tutorial  ansible  devops  management 
august 2014
You suck at technical interviews | Seldo.Com Blog
"You are bad at giving technical interviews. Yes, you. You're looking for the wrong skills, hiring the wrong people, and actively screwing yourself and your company. Without changing anything about your applicant pool, you can hire different people and your company will do better and you will enjoy your job more."
career  interview  tech  hiring 
august 2014
Infinite Blog - Using NSURLProtocol for Injecting Test Data
"In earlier posts I described methods for unit testing asynchronous network access and how to use mock objects for further control of the scope of these unit tests. In this tutorial I’ll present an alternative way of providing reliable test data by customizing the NSURLProtocol class in order to deliver static test data."
cocoa  ios  networking  testing 
august 2014
[no title]
"The purpose of this article is to provide a high level summary of Spotify’s approach to product development."
agile  spotify 
august 2014
Markov Chains
"Markov chains, named after Andrey Markov, are mathematical systems that hop from one "state" (a situation or set of values) to another."
algorithms  markov  programming  visualization 
august 2014
Mockaroo | Random Test Data Generator | CSV / TXT / SQL / JSON
"Need some mock data to test your app?

Mockaroo lets you generate up to 100,000 rows of realistic test data in CSV, TXT, SQL, and JSON formats."
test  testing  tests  json  generator  csv 
august 2014
Http Stubs: let's go Swift Swizzling!
"With this blog post, I'd like to share with you the inside of stubbing http library. Let's dig under the hood to see how http mock are implemented in Objective-C and how we can apply the same concepts (with some restrictions) in Swift. "
swift  mocking  mock  http  OHHTTPStubs  testing  networking 
july 2014
"CoreObject is a version-controlled object database for Objective-C that supports powerful undo, semantic merging, and real-time collaborative editing."
cocoa  database  library  objective-c  objc  git  versioncontrol  versioning 
july 2014
Swift Optionals
"In Swift an Optional Type is considered a safe way to use variables. An Optional can represent a value that has been set or more importantly the lack of a set value as they default to nil when no value is present (yes that technically means they do always have a value)."
swift  optionals 
july 2014
Swift: Testing Privates (or rather, internals) — Swift Programming — Medium
"With Xcode 6, Beta 4, we saw the introduction of access modifiers (maybe a better name is visibility modifiers). In essense, they control the visibility of the member throughout the module and outside of the module. The question naturally arrises: how do I test private methods?"
swift  testing  test  tdd  bdd  unittesting  unittest  unittests 
july 2014
Algorithms & Data Structures with Swift — Wayne Bishop
"This guide provides an introduction to commonly used data structures and algorithms written in a new iOS development language called Swift. While theory of many algorithms exists on Wikipedia, these implementations are often written as pseudocode, or are expressed in C or C++.  Even though Swift is still under development, its general syntax should be familiar enough for most programmers to understand. "
swift  algorithms  computerscience  cs  algorithm 
july 2014
Cocoa Samurai: Understanding the Objective-C Runtime
"The Objective-C Runtime is one of the overlooked features of Objective-C initially when people are generally introduced to Cocoa/Objective-C. The reason for this is that while Objective-C (the language) is easy to pick up in only a couple hours, newcomers to Cocoa spend most of their time wrapping their heads around the Cocoa Framework and adjusting to how it works. However the runtime is something that everybody should at least know how it works in some detail beyond knowing that code like [target doMethodWith:var1]; gets translated into objc_msgSend(target,@selector(doMethodWith:),var1); by the compiler. Knowing what the Objective-C runtime is doing will help you gain a much deeper understanding of Objective-C itself and how your app is run. I think Mac/iPhone Developers will gain something from this, regardless of your level of experience."
cocoa  objectivec  objc  runtime  code  compiler  llvm 
july 2014
UIDynamics in Swift | Big Nerd Ranch
"Turns out, UIDynamics in Swift is pretty much just like using it in Objective-C. We just need to drape it in the Swifty Goodness™ and it will work just like it's expected to.
To demonstrate, let's throw together a quick project."
cocoa  swift  uikit  uikitdynamics 
july 2014
Parsing JSON in Swift | Chris Eidhof
"In this posts I will give an outline of a parsing library for dealing with JSON in Swift in a type-safe way. I bluntly copied the example JSON from David, and it looks like this:"
json  parsing  swift 
july 2014
Core Data Made Easy: Some Code + Practices for Beginners and Experts | Red Glasses
"Core Data is Apple’s answer to “Wow! It’s difficult to store objects in an SQL database!”. Extended, over time, to do a lot more than just that – but that’s the core.

If you know what you’re doing – and you avoid the pit-traps along the way – it can be very good indeed. But we frequently see code written by iOS professionals that betrays a misunderstanding of what Apple intended, and misses out on some of the best features of Core Data.

Over time, we’ve coalesced some of our practices into re-useable code and techniques. All the code in this article is already up on GitHub, and I’ll be maintaining it periodically with improvements from our own projects."
apple  coredata  iOS  objectivec 
july 2014
Markov Chains – Explained | Tech Effigy
"Markov Chains is a probabilistic process, that relies on the current state to predict the next state. For Markov chains to be effective the current state has to be dependent on the previous state in some way; For instance, from experience we know that if it looks cloudy outside, the next state we expect is rain. We can also say that when the rain starts to subside into cloudiness, the next state will most likely be sunny. Not every process has the Markov Property, such as the Lottery, this weeks winning numbers have no dependence to the previous weeks winning numbers"
data  markov  markovchains  maths  computerscience  compsci 
july 2014
Bloom Filters – Explained | Tech Effigy
"The Bloom filter is a space efficient, probabilistic data structure – used to test whether an item does not belong to a collection. Most people use the definition that it tests whether an item is in a collection, but I think the latter explanation is more practical . The catch with Bloom filters are – they can tell you with good accuracy that an item is not within a collection, but it sometimes lies about an item being in a collection – called a false positive. Bloom filters are mostly used as time savers, for example…you have a database on the internet with thousands of items, instead of wasting precious resources checking for items that might not even be in the database, we use the Bloom Filter – Some websites actually send a bloom filter to the client side browser, saving bandwidth as an added benefit."
algorithm  tutorial  maths  computerscience  compsci 
july 2014
Design Details: SoundCloud for iOS
"The SoundCloud team recently redesigned their iOS app - a surprising refresh of their mobile offering with a slick new listening interface and a beautiful new way of interacting with your music.

design  teardown  interface  ui  ux 
july 2014
The Android Screen Fragmentation Myth | Rusty Rants
"As someone who develops for Android and iOS I get asked the same question over and over again by people: “Is developing for Android screens a huge pain? How on earth do you cope with the thousands of screen sizes available?”."
android  design  screen 
july 2014
Immutable Swift
"Swift, however, has built-in immutability in the form of the let keyword. By making judicious choices with our data, we can get much closer to these two ideas, in a way that is less onerous for us developers."
cocoa  functional  programming  swift 
june 2014
Andrés Osinski · Your job is not to Code
"Like most other professions, software engineering comprises a wide range of skills. Yes, you are hired to produce working, quality code, but to assume that is your entire mission at work is a mistake."
code  software  coding  craft 
june 2014
Lets Make a Swift App
"This tutorial will walk you through the creation of a geolocation based alarm app for travelers. The concept is simple: users create a new alarm by selecting both a geographic region and music item from their library. When the phone detects itself crossing the region boundary of an alarm (enter or exit) the relevant music plays."
ios  swift 
june 2014
We ❤ Swift »
"Here you will find tutorials and guides about the new Swift programming language and the new API Apple released at WWDC 2014"
ios  language  programming  swift 
june 2014
Unit Testing in Swift | Bendyworks
"Swift, being all the rage these last four days, has definitely livened up our programming chat room quite a bit. With cautious optimism, we (Betsy and Brad) delved into the Xcode beta, curious about the state of testing with Swift. For the purposes of this article, we’ll only cover the basics of unit testing with XCTest.framework."
development  testing  swift  ted  bed  unittesting 
june 2014
The 10-Second Résumé — Medium
"My theory* is you have 10 seconds to make an impact with your résumé. I’ll explain why and provide some tips to pass the “10 second test”."
cv  resume  recruitment 
june 2014
Deckset for Mac: Turn your notes into beautiful presentations
"Deckset Turn your notes into beautiful presentations"
app  mac  presentation 
may 2014
An introduction to MVVM and ReactiveCocoa on iOS | We Are Base
"As you can see in the diagram, the MVVM design pattern takes into consideration the tightly coupled nature of the view controller and the views and formalises their connection. The views don’t get references to the models, and nor does the view controller – instead, they bind to properties on the view model."
code  iOS  cocoa  mvc  mvvc  reactivecocoa  functionalprogramming  functional  programming 
may 2014
Peter Nixey - How to be a great software developer
If there’s one thing that software developers care about, it’s becoming even better software developers. Where do you start though? Should you accumulate the bells and whistles: deepen your knowledge of Node and no-sequel? Should you rote-learn the answers to the profession’s gateway questions and be able to produce bubble sort or link shortener algorithms on demand? Or are there perhaps more fundamental roots that you can put down?
career  programming  software 
may 2014
Go for a Rubyist
Coming from the Rubyland and world of iOS, learning Go was an interesting experience. I've thought it might be worth to share some things learnt on the way, and put up the simple transition guide for everyone thinking about giving Go a shot.

This post is not the most idiomatic Ruby or Go you'll read, but it's instead written in a way to point similarities between the two.
code  guide  ruby  ios  go 
may 2014
Unit Testing Asynchronous Cocoa
First, I should point out that unit testing advocates will advise you that an asynchronous method is more easily tested if it is factored into a synchronous–asynchronous pair of methods. You write the unit test for the synchronous method. The asynchronous version wraps a call to the synchronous method, initiating any threading, and invoking callbacks on completion.

This approach makes a lot of sense, and you should certainly consider it. But there will undoubtedly be times when you don’t want to partition the method, or you want to fully test the operation — asynchronicity and all. So how do you go about that?
asynchronous  cocoa  objective-c  testing  ios 
may 2014
Official Swiss mapping organisation
switzerland  map  maps 
march 2014
iOS Dev Tools
"iOS Dev Tools is a list showcasing the greatest iOS development tools, including websites, desktop and mobile apps, and back-end services. I've tried to group the tools into logical categories and will mark any newly added tools as NEW."
development  ios  programming  tools  xcode 
november 2013
Introducing OCUDL - Dustin Bachrach
"OCUDL is an experiment to bring user defined literals to Objective-C. A literal is a shorthand expression that creates a value of a certain type. For example, 25ul creates an unsigned long of 25, and @"hello" creates an NSString of hello. User defined literals bring this brevity and expressivity to our own types.

Literals are usually baked right in to the compiler. OCUDL, however, does not extend the compiler; it simply uses what already exists in the Objective-C runtime. You can learn more about OCUDL’s internals at OCUDL In Depth."
iOS  objectivec  literals  objective-c  objc  development  code  OCUDL 
november 2013
How GitHub (no longer) Works
"A lot of my talks like How GitHub Uses GitHub to Build GitHub and posts like How GitHub Works are nifty, but they represent a snapshot of the company when we were 30-75 employees. We're 217 today, and things inevitably changed to grow the company to that scale.

This talk is a retrospective: it takes a closer look at specific things that we've said over the last few years, and then details the adjustments that were made as we've grown."
github  management  presentation  presentations 
november 2013
Why GitHub is not your CV – The If Works
"So, I’ve been saying for months that using open-source software contributions in general, and GitHub profiles in particular, as a hiring filter is bad for our industry. This has been in response to the seemingly increasingly popular notion that GitHub is your resume now. I increasingly see companies’ job ads asking for GitHub profiles, and have recruiters ask me for mine, or tell me they are contacting me having already seen it. The logic goes that interviewing software engineers is really hard, and anything to make it easier must be great, and looky here there’s this one giant website full of code we can read to figure out if people are any good or not. There’s even entire new recruitment companies springing up to take advantage of this assumption. Our job of finding new people to join our companies just got a whole lot easier!"
career  github  opensource  work 
november 2013
iOS 7 Custom transitions - Think & Build
"The release of iOS 7 is a breath of fresh air for both development and aesthetics (which I personally love). We can finally create stunning animations for our apps, so I think it’s time to write about how to do it.
If you remember my previous post about custom transitions you already know the hard part was drawing a “fake” view using the graphic representation of the views we wanted to animate.
Starting from iOS 7 we can follow a new path suggested by Apple. That’s exactly what I’m going to show you here, but before diving into the code, let’s see a quick preview of the final result of this tutorial."
animation  development  ios 
november 2013
Tutorial: An In-Depth Guide To Objective-C Block Debugging
"The following tutorial by Damien DeVille was submitted by Thibault Lemaitre from Realmac Software, and provides an in-depth guide on how to debug blocks in Objective-C."
code  objc  debugging  blocks 
november 2013
How To Efficiently Display Large Amounts of Data on iOS Maps
"This tutorial will demonstrate how to handle and display thousands of points of data on an iOS map in a way people understand and enjoy.

We are going to make an iOS app which ships with 87,000 hotels, each with a coordinate, a name and a phone number. This app will never ask the user to "redo search in area"; it will update the map as the user pans and zooms, allowing the user to freely explore the data.

This will require us to come up with an ultra quick data structure built for the task. We will need to build it in C for it to be performant."
data  ios  mapkit  maps 
november 2013
Home · thecodepath/android_guides Wiki
"Welcome to the open-source Codepath Android Cliffnotes! Our goal is to become the central crowdsourced resource for complete and up-to-date Android content and tutorials."
android  code  development  guide  tutorial 
november 2013
Xcode Key Bindings & Gestures : NSHipster
"Xcode key bindings and gestures not only shave off seconds of precious work, but make you look more confident, competent, and cromulent in the process. Learn the following tricks of the trade and join the elite set of Xcode power users.

xcode  ios 
october 2013
My First 5 Minutes On A Server; Or, Essential Security for Linux Servers
"Server security doesn’t need to be complicated. My security philosophy is simple: adopt principles that will protect you from the most frequent attack vectors, while keeping administration efficient enough that you won’t develop “security cruft”. If you use your first 5 minutes on a server wisely, I believe you can do that."
linux  security  server  sysadmin  ubuntu  debian 
august 2013
From C declarators to Objective-C blocks syntax | Nils Hayat
"In this post, I start with the simplest C declarator and build in complexity until we get to Objective-C blocks syntax. It took me a while to get block syntax but once you understand how it is organized and where it comes from, there is no looking in Google every time you need to declare a block anymore."
blocks  c  development  objc  objectivec 
august 2013
Home - Clank
An open source HTML/CSS framework for prototyping native phone/tablet applications.
html5  mobile  framework  css  iOS  demo  wireframe  wireframing  prototype  prototyping 
august 2013
Leveling Up » Big Nerd Ranch BlogBig Nerd Ranch Blog
"I’ve been programming professionally (that is, actually making a living at it) for 23 years now. That’s longer than some of my coworkers have been alive. That’s a scary thought. Get off my lawn. Over the years I’ve fallen into a style of learning and exploration that’s paid some pretty good dividends. Of course, everyone is different, but here’s how I would answer his question."
books  programming  ios  code  ideas 
june 2013
[no title]
"NSRegularExpression Cheat Sheet and Quick Reference"
regex  regularexpression  regularexpressions  regexes 
may 2013
New Lemurs Press Page | mur.mu.rs
"After my post about our press release and all the help we got from awesome people, folks wanted to know more about the press page, so here are some diagrams I made in the spirit of Chris Phin."
business  ios  promotion 
may 2013
Ilicco - Coffee Shops
"Independent Coffee vendors. Not a Star-Nero-Costa-Bucks in sight. Mainly London based but more likely just where I've been."
coffee  coffeeshop  independent  london 
may 2013
Like a Bear in a Foxhole... • You mean the generation that paid three times as...
"You mean the generation that paid three times as much for college to enter a job market with triple the unemployment isn’t interested in purchasing the assets of the generation who just blew an enormous housing bubble and kept it from popping through quantitative easing and out-and-out federal support? Curious."
finance  economics 
may 2013
Mobile DevCon New York - How We Built Facebook for iOS - Facebook Live
"Hear the story of how we rebuilt the Facebook app - moving to native code instead of WebViews - from one of Facebook's very own iOS engineers."
Facebook  code  ios  howto  talk  conference  talks 
may 2013
Dabblet: A visual IDE for rapid prototyping of client-side web development
"Dabblet is a web application that lets users quickly prototype HTML, CSS and JavaScript, save the result online and share it with others. While similar applications existed before Dabblet, Dabblet offered a few significant competitive advantages that enabled it to take a cut of the pie and gain a loyal following of a couple thousand visitors per day"
dabblet  ide  prototyping  css  html  javascript 
may 2013
ReactiveCocoa/ReactiveCocoa · GitHub
"ReactiveCocoa (RAC) is an Objective-C framework for Functional Reactive Programming. It provides APIs for composing and transforming streams of values."
cocoa  github  ios  objective-c  reactivecocoa  functionalprogramming 
may 2013
How GitHub Uses GitHub to Build GitHub
"Build features fast. Ship them. That's what we try to do at GitHub. Our process is the anti-process: what's the minimum overhead we can put up with to keep our code quality high, all while building features as quickly as possible? It's not just features, either: faster development means happier developers."
code  git  github  presentation  talk 
may 2013
dkduck/FLKAutoLayout · GitHub
"FLKAutoLayout is a category on UIView which makes it easy to setup layout constraints in code.

FLKAutoLayout creates simple constraints with a readable syntax and provides many convenience methods to setup more complex constraints between multiple views at once. It automatically adds the constraints to the nearest common superview of the views involved and sets the translatesAutoresizingMaskIntoConstraints property on those views to NO.

FLKAutoLayout provides methods on UIView instances for simple layout constraints like width and height or constraining an edge of one view to another. Furthermore it provides methods on the UIView class for more complex layout constraints where more than two views are involved.

autolayout  cocoa  code  ios  tool  github 
may 2013
mikeash.com: Friday Q&A 2013-02-22: Let's Build UITableView
"Let's Build UITableView
UITableView is a powerful and full featured class, but its internal workings can seem mysterious. Most of the time use of the class is straightforward: in return for following the prescribed practice in the documentation, the developer gets a responsive scrolling table that is frugal with memory even when the row count is high. But when pushing the class hard, for example with large tables where each row may have a different and varying height, it helps to have a deeper understanding of how the class works.

In this article, I am going to implement a basic version of a table view class. This will show how the class works its magic and also show just why UITableView asks what it does - and when - of its data source and delegate."
cocoa  code  ios  uitableview 
may 2013
Putting a UICollectionView in a UITableViewCell
"So you want to put a collection view inside of a table view cell, eh? Sounds easy, right? Well, to do it right requires a little bit of work. We want a clear separation of concerns so that the UITableViewCell isn't acting as the data source or delegate for the UICollectionView (because that would be very, very bad). You can follow along by downloading the sample code."
uicollectionview  ios  uitableview  uitableviewcell  code 
may 2013
Beginning Android for iOS Developers; or, How to Build a Real-World Android App - clayallsopp's posterous
"Part 1: Overview
Part 2: Tools; or, get up on my API Level
Part 3: Activities; or, getting your Vibrams Five Fingers wet
Part 4: ListActivities; or, "Why are table view chapters always so long?"
Part 5: Files and Objects; or, I prefer JSON Bateman's early work
Part 6: HTTP Requests; or, "Oh, you have to download that? Put it on my Tab."
Part 7: HTTP Requests Part Deux; or, "It's my Intent to be POSTed up right here"
Part 8: Files and Objects Part Deux; or, I prefer my breakfast with Serial
Part 9: Preparing for the Market; or, "Wow, this is actually really easy""
android  development  iphone  programming  tutorial 
april 2013
Adding Full Text Search to a Core Data App Using SQLite
"SQLite offers full text search functionality through the optional FTS3 and FTS4 extensions."
howto  search  ios  coredata  sqlite  database  xcode  objectivec 
april 2013
furbo.org · Logging with Xcode Breakpoints
"If you don’t already know about it, setting actions for breakpoints in Xcode is a great way to monitor repetitive code without adding a bunch of NSLog() to your code."
debug  development  ios  xcode 
april 2013
SSL Pinning for Increased App Security by Jay Graves of Double Encore
"Using SSL for network connections is the de facto method of ensuring secure data transmission in today’s mobile apps. A few articles have recently been published, including one by our own QA Lead – Nick Arnott, that show some apps that use SSL are not taking the extra step necessary to ensure eavesdropping cannot occur on the data connection. This “extra step” is known as SSL Pinning."
code  ssl  security  https  ios  objectivec  xcode 
april 2013
Advanced Jenkins for iOS and Mac | Sailmaker Blog
"When putting the following configs together I had to wade through a great many sources, so I thought it would be useful to put everything I’ve learned together in one document. I’m going to walk you through creating a fully instrumented Jenkins setup from scratch for iOS and Mac OS X projects. It will monitor errors, static analyser results, unit tests and code coverage for you, mail you when anything goes wrong, and present the results graphically"
git  ios  tdd  cii  jenkins  continuousintegration 
april 2013
25 iOS App Performance Tips & Tricks - Ray Wenderlich
"This article gathers together 25 tips and tricks that you can use to improve the performance of your apps, in the form of a handy checklist."
performance  ios  objectivec  code  xcode 
april 2013
« earlier      
academic adobe agile ajax analysis android animation apache api app apple applications apps architecture arduino art articles audio backup bdd blog blogging blogs blogthis book books brainstorming browser business camera career classroom classroom2.0 clothes cms cocoa code coding collaboration colour community components configuration cool creativity css cucumber cuttingthrough data database debian debug design development digital directory documentation ebooks economics education electronics email enterprise enterprise2.0 facebook fed finance flash flickr follow-up fonts food framework frameworks game games geek git github google gps graphics green gtd hack hacking hacks hardware hasselblad home how-to howto html http ia ideas images information informationarchitecture interaction interactiondesign interesting interface ios ipad iphone ipod itunes jailbreak javascript jobs jquery json kids km language layout learning legal leica libraries library lifehacks linux mac management mapping maps marketing mashup maths mobile mockup money mp3 music mysql networking objc objective-c objectivec ogc online opensource organization osx photography photos photoshop php plugin plugins politics portfolio presentation processing productivity programming project projectmanagement projects prototype prototyping python rails rangefinder reference regex repairs resources rspec rss ruby rubyonrails school science security server sharing sheffield shopping sinatra sketch social socialmedia socialnetworking socialnetworks socialsoftware socialsoftwaretheory software sourcecode sourcecodemanagement sourcecontrol standards statistics subversion svn swift sysadmin tags tdd teaching tech testing tips todo tools transport travel troubleshooting tutorial tutorials twitter typography ui uitableview unittesting unix usb useful userexperience userinterface userinterfacedesign ux versioncontrol video visualisation visualization wayne web web2.0 webdesign webdev webdevelopment wifi wiki windows wireframes wordpress work writing xcode xml

Copy this bookmark: