Skip to content

Commit

Permalink
Update Wikipedia links to use https
Browse files Browse the repository at this point in the history
  • Loading branch information
mattt committed Aug 6, 2018
1 parent 76bd70a commit ba8eb1e
Show file tree
Hide file tree
Showing 78 changed files with 174 additions and 174 deletions.
4 changes: 2 additions & 2 deletions 2012-07-31-nsdatecomponents.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ status:

`NSDateComponents` serves an important role in Foundation's date and time APIs. By itself, it's nothing impressive—just a container for information about a date (its month, year, day of month, week of year, or whether that month is a leap month). However, combined with `NSCalendar`, `NSDateComponents` becomes a remarkably convenient interchange format for calendar calculations.

Whereas dates represent a particular moment in time, date components depend on which calendar system is being used to represent them. Very often, this will differ wildly from what many of us may be used to with the [Gregorian Calendar](http://en.wikipedia.org/wiki/Gregorian_calendar). For example, the [Islamic Calendar](http://en.wikipedia.org/wiki/Islamic_calendar) has 354 or 355 days in a year, whereas the [Buddhist calendar](http://en.wikipedia.org/wiki/Buddhist_calendar) may have 354, 355, 384, or 385 days, depending on the year.
Whereas dates represent a particular moment in time, date components depend on which calendar system is being used to represent them. Very often, this will differ wildly from what many of us may be used to with the [Gregorian Calendar](https://en.wikipedia.org/wiki/Gregorian_calendar). For example, the [Islamic Calendar](https://en.wikipedia.org/wiki/Islamic_calendar) has 354 or 355 days in a year, whereas the [Buddhist calendar](https://en.wikipedia.org/wiki/Buddhist_calendar) may have 354, 355, 384, or 385 days, depending on the year.

## Extracting Components From Dates

Expand All @@ -28,7 +28,7 @@ NSDate *date = [NSDate date];
[calendar components:(NSCalendarUnitDay | NSCalendarUnitMonth) fromDate:date];
```
The `components` parameter is a [bitmask](http://en.wikipedia.org/wiki/Bitmask) of the date component values to retrieve, with many to choose from:
The `components` parameter is a [bitmask](https://en.wikipedia.org/wiki/Bitmask) of the date component values to retrieve, with many to choose from:
```swift
NSCalendarUnit.Era
Expand Down
2 changes: 1 addition & 1 deletion 2012-08-06-cfstringtransform.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ As denoted by the `CF` prefix, `CFStringTransform` is part of Core Foundation. T

With the notable exception of English (and its delightful spelling inconsistencies), writing systems generally encode speech sounds into a consistent written representation. European languages generally use the Latin alphabet (with a few added diacritics), Russian uses Cyrillic, Japanese uses Hiragana & Katakana, and Thai, Korean, & Arabic each have their own scripts.

Although each language has a particular inventory of sounds, some of which other languages may lack, the overlap across all of the major writing systems is remarkably high—enough so that one can rather effectively [transliterate](http://en.wikipedia.org/wiki/Transliteration) (not to be confused with [translation](http://en.wikipedia.org/wiki/Translation)) from one script to another.
Although each language has a particular inventory of sounds, some of which other languages may lack, the overlap across all of the major writing systems is remarkably high—enough so that one can rather effectively [transliterate](https://en.wikipedia.org/wiki/Transliteration) (not to be confused with [translation](https://en.wikipedia.org/wiki/Translation)) from one script to another.

`CFStringTransform` can transliterate back and forth between Latin and Arabic, Cyrillic, Greek, Korean (Hangul), Hebrew, Japanese (Hiragana & Katakana), Mandarin Chinese, and Thai.

Expand Down
6 changes: 3 additions & 3 deletions 2012-08-27-cfbag.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ status:

Objective-C is a language caught between two worlds.

On one side, it follows the thoughtful, object-oriented philosophy of [Smalltalk](http://en.wikipedia.org/wiki/Smalltalk), which brings ideas like message sending and named parameters. On the other, are the inescapable vestiges of <a href="http://en.wikipedia.org/wiki/C_(programming_language)">C</a>, which brings it power and a dash of chaos.
On one side, it follows the thoughtful, object-oriented philosophy of [Smalltalk](https://en.wikipedia.org/wiki/Smalltalk), which brings ideas like message sending and named parameters. On the other, are the inescapable vestiges of <a href="https://en.wikipedia.org/wiki/C_(programming_language)">C</a>, which brings it power and a dash of chaos.

It's an identity crisis borne out through an ever-increasing prevalence of the `@` symbol.

Expand Down Expand Up @@ -94,11 +94,11 @@ Take a look at the second row, with `NSCountedSet` and `CFBag`. Notice that unli

## Bags, in the Abstract

In the <a href="http://en.wikipedia.org/wiki/Collection_(abstract_data_type)">pantheon of collection data types</a> in computer science, bag doesn't really have the same clout as lists, sets, associative arrays, trees, graphs, or priority queues.
In the <a href="https://en.wikipedia.org/wiki/Collection_(abstract_data_type)">pantheon of collection data types</a> in computer science, bag doesn't really have the same clout as lists, sets, associative arrays, trees, graphs, or priority queues.

In fact, it's pretty obscure. You've probably never heard of it.

A bag, or [multiset](http://en.wikipedia.org/wiki/Multiset) is a variant of a set, where members can appear more than once. A count is associated with each unique member of the collection, representing the number of times it has been added. Like with sets, order does not matter.
A bag, or [multiset](https://en.wikipedia.org/wiki/Multiset) is a variant of a set, where members can appear more than once. A count is associated with each unique member of the collection, representing the number of times it has been added. Like with sets, order does not matter.

Its practical applications are... limited, but you'll know one when it comes up. Tallying votes in a general election? Simulating homework problems an intro probability class? Implementing a game of Yahtzee? Bag is your new bicycle!

Expand Down
2 changes: 1 addition & 1 deletion 2012-09-03-nslocale.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ Fortunately for us, we don't have to do this alone. Meet `NSLocale`:

Each locale corresponds to a _locale identifier_, such as `en_US`, `fr_FR`, `ja_JP`, and `en_GB`, which include a language code (e.g. `en` for English) and a region code (e.g. `US` for United States).

Locale identifiers can encode more explicit preferences about currency, calendar system, or number formats, such as in the case of `de_DE@collation=phonebook,currency=DDM`, which specifies German spoken in Germany, using [phonebook collation](http://developer.mimer.com/charts/german_phonebook.htm), and using the pre-Euro [Deutsche Mark](http://en.wikipedia.org/wiki/Deutsche_Mark).
Locale identifiers can encode more explicit preferences about currency, calendar system, or number formats, such as in the case of `de_DE@collation=phonebook,currency=DDM`, which specifies German spoken in Germany, using [phonebook collation](http://developer.mimer.com/charts/german_phonebook.htm), and using the pre-Euro [Deutsche Mark](https://en.wikipedia.org/wiki/Deutsche_Mark).

Users can change their locale settings in the "Language & Text" (or "International" on older versions of OS X) System Preferences on the Mac, or "General > International" in iOS Settings.

Expand Down
4 changes: 2 additions & 2 deletions 2012-09-24-uicollectionview.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ Because collection views aren't relegated to any particular structure, the conve
Each cell can have multiple supplementary views associated with it--one for each named "kind". As such, headers and footers are just the beginning of what can be done with supplementary views.
The whole point is that with supplementary views, even the most complex layout can be accomplished without compromising the semantic integrity of cells. `UITableView` hacks are to [`spacer.gif`](http://en.wikipedia.org/wiki/Spacer_GIF) as `UICollectionView` cells are to [semantic HTML](http://en.wikipedia.org/wiki/Semantic_HTML).
The whole point is that with supplementary views, even the most complex layout can be accomplished without compromising the semantic integrity of cells. `UITableView` hacks are to [`spacer.gif`](https://en.wikipedia.org/wiki/Spacer_GIF) as `UICollectionView` cells are to [semantic HTML](https://en.wikipedia.org/wiki/Semantic_HTML).
### Decoration Views
Expand Down Expand Up @@ -88,7 +88,7 @@ What's _extremely_ cool is this method here:
- `-layoutAttributesForElementsInRect:`
Using this, you could, for example, fade out items as they approach the edge of the screen. Or, since all of the layout attribute properties are automatically animated, you could create a poor-man's [cover flow](http://en.wikipedia.org/wiki/Cover_Flow) layout in just a couple lines of code with the right set of 3D transforms.
Using this, you could, for example, fade out items as they approach the edge of the screen. Or, since all of the layout attribute properties are automatically animated, you could create a poor-man's [cover flow](https://en.wikipedia.org/wiki/Cover_Flow) layout in just a couple lines of code with the right set of 3D transforms.
In fact, collection views can even swap out layouts wholesale, allowing views to transition seamlessly between different modes--all without changing the underlying data.
Expand Down
2 changes: 1 addition & 1 deletion 2012-10-08-at-compiler-directives.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ status:
swift: n/a
---

Birdwatchers refer to it as (and I swear I'm not making this up) ["Jizz"](http://en.wikipedia.org/wiki/Jizz_%28birding%29): those indefinable characteristics unique to a particular kind of thing.
Birdwatchers refer to it as (and I swear I'm not making this up) ["Jizz"](https://en.wikipedia.org/wiki/Jizz_%28birding%29): those indefinable characteristics unique to a particular kind of thing.

This term can be appropriated to describe how seasoned individuals might distinguish [Rust](http://www.rust-lang.org) from [Go](http://golang.org), or [Ruby](http://www.ruby-lang.org) from [Elixir](http://elixir-lang.org) at a glance.

Expand Down
2 changes: 1 addition & 1 deletion 2012-10-15-addressbookui.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,4 +77,4 @@ Street Address
Country
```

This is at least as jarring a difference in localization as [swapping periods for commas the radix point](http://en.wikipedia.org/wiki/Decimal_mark#Hindu.E2.80.93Arabic_numeral_system), so make sure to use this function anytime you're displaying an address from its components.
This is at least as jarring a difference in localization as [swapping periods for commas the radix point](https://en.wikipedia.org/wiki/Decimal_mark#Hindu.E2.80.93Arabic_numeral_system), so make sure to use this function anytime you're displaying an address from its components.
2 changes: 1 addition & 1 deletion 2012-10-22-nslinguistictagger.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ status:
reviewed: September 8, 2015
---

`NSLinguisticTagger` is a veritable Swiss Army Knife of linguistic functionality, with the ability to [tokenize](http://en.wikipedia.org/wiki/Tokenization) natural language strings into words, determine their part-of-speech & [stem](http://en.wikipedia.org/wiki/Word_stem), extract names of people, places, & organizations, and tell you the languages & respective [writing system](http://en.wikipedia.org/wiki/Writing_system) used in the string.
`NSLinguisticTagger` is a veritable Swiss Army Knife of linguistic functionality, with the ability to [tokenize](https://en.wikipedia.org/wiki/Tokenization) natural language strings into words, determine their part-of-speech & [stem](https://en.wikipedia.org/wiki/Word_stem), extract names of people, places, & organizations, and tell you the languages & respective [writing system](https://en.wikipedia.org/wiki/Writing_system) used in the string.

For most of us, this is far more power than we know what to do with. But perhaps this is just for lack sufficient opportunity to try. After all, almost every application deals with natural language in one way or another--perhaps `NSLinguisticTagger` could add a new level of polish, or enable brand new features entirely.

Expand Down
2 changes: 1 addition & 1 deletion 2012-10-29-uilocalizedindexedcollation.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ UITableView starts to become unwieldy once it gets to a few hundred rows. If use

So, what are your options?

Well, you could organize your data into a hierarchy, which could dramatically reduce the number of rows displayed on each screen in fashion, based on its [branching factor](http://en.wikipedia.org/wiki/Branching_factor).
Well, you could organize your data into a hierarchy, which could dramatically reduce the number of rows displayed on each screen in fashion, based on its [branching factor](https://en.wikipedia.org/wiki/Branching_factor).

You could also add a `UISearchBar` to the top of your table view, allowing the user to filter on keywords to get exactly what they're looking for (or--perhaps more importantly--determine that what they seek doesn't exist in the first place).

Expand Down
2 changes: 1 addition & 1 deletion 2012-11-19-ns_enum-ns_options.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,4 +111,4 @@ The syntax is exactly the same as `NS_ENUM`, but this macro alerts the compiler
`NS_ENUM` and `NS_OPTIONS` are handy additions to the Objective-C development experience, and reaffirm the healthy dialectic between its objective and procedural nature. Keep this in mind as you move forward in your own journey to understand the logical tensions that underpin everything around us.
[1]: http://en.wikipedia.org/wiki/Mask_(computing)
[1]: https://en.wikipedia.org/wiki/Mask_(computing)
4 changes: 2 additions & 2 deletions 2012-11-26-nsorderedset.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ status:

Here's a question: why isn't `NSOrderedSet` a subclass of `NSSet`?

It seems perfectly logical, after all, for `NSOrderedSet`--a class that enforces the same uniqueness constraint of `NSSet`--to be a _subclass_ of `NSSet`. It has the same methods as `NSSet`, with the addition of some `NSArray`-style methods like `objectAtIndex:`. By all accounts, it would seem to perfectly satisfy the requirements of the [Liskov substitution principle](http://en.wikipedia.org/wiki/Liskov_substitution_principle), that:
It seems perfectly logical, after all, for `NSOrderedSet`--a class that enforces the same uniqueness constraint of `NSSet`--to be a _subclass_ of `NSSet`. It has the same methods as `NSSet`, with the addition of some `NSArray`-style methods like `objectAtIndex:`. By all accounts, it would seem to perfectly satisfy the requirements of the [Liskov substitution principle](https://en.wikipedia.org/wiki/Liskov_substitution_principle), that:

> If `S` is a subtype of `T`, then objects of type `T` in a program may be replaced with objects of type `S` without altering any of the desirable properties of that program.
Expand Down Expand Up @@ -99,7 +99,7 @@ This is perhaps even worse, as now `NSMutableOrderedSet` couldn't be used as a m
No matter how we approach it, we can't stack a mutable / immutable class pair on top of another existing mutable / immutable class pair. It just won't work in Objective-C.
Rather than subject ourselves to the perils of [multiple inheritance](http://en.wikipedia.org/wiki/Multiple_inheritance), we could use Protocols to get us out of this pickle (as it does every other time the spectre of multiple inheritance is raised). Indeed, Foundation's collection classes _could_ become more aspect-oriented by adding protocols:
Rather than subject ourselves to the perils of [multiple inheritance](https://en.wikipedia.org/wiki/Multiple_inheritance), we could use Protocols to get us out of this pickle (as it does every other time the spectre of multiple inheritance is raised). Indeed, Foundation's collection classes _could_ become more aspect-oriented by adding protocols:
- `NSArray : NSObject <NSOrderedCollection>`
- `NSSet : NSObject <NSUniqueCollection>`
Expand Down
2 changes: 1 addition & 1 deletion 2012-12-03-kvc-collection-operators.md
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ This makes sense to spell out, since that's what most people are thinking about

However, as it turns out, it _is_ actually possible, with a little help from our friend, `objc/runtime`.

[Guy English](https://twitter.com/gte) has a [pretty amazing post](http://kickingbear.com/blog/archives/9) wherein he [swizzles `valueForKeyPath:`](https://gist.github.com/4196641#file_kb_collection_extensions.m) to parse a custom-defined [DSL](http://en.wikipedia.org/wiki/Domain-specific_language), which extends the existing offerings to interesting effect:
[Guy English](https://twitter.com/gte) has a [pretty amazing post](http://kickingbear.com/blog/archives/9) wherein he [swizzles `valueForKeyPath:`](https://gist.github.com/4196641#file_kb_collection_extensions.m) to parse a custom-defined [DSL](https://en.wikipedia.org/wiki/Domain-specific_language), which extends the existing offerings to interesting effect:

```objc
NSArray *names = [allEmployees valueForKeyPath: @"[collect].{daysOff<10}.name"];
Expand Down
6 changes: 3 additions & 3 deletions 2012-12-10-instancetype.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Want to know what's coming next in Objective-C? [Keep your ear to the ground](ht

Objective-C is a rapidly evolving language, in a way that you just don't see in established programming languages. ARC, object literals, subscripting, blocks: in the span of just three years, so much of how we program in Objective-C has been changed (for the better).

All of this innovation is a result of Apple's philosophy of vertical integration. Just as Apple's investment in designing [its own chipsets](http://en.wikipedia.org/wiki/Apple_A4) gave them leverage to compete aggressively with their mobile hardware, so too has their investment in [LLVM](http://llvm.org) allowed their software to keep pace.
All of this innovation is a result of Apple's philosophy of vertical integration. Just as Apple's investment in designing [its own chipsets](https://en.wikipedia.org/wiki/Apple_A4) gave them leverage to compete aggressively with their mobile hardware, so too has their investment in [LLVM](http://llvm.org) allowed their software to keep pace.

Clang developments range from the mundane to paradigm-changing, but telling the difference takes practice. Because we're talking about low-level language features, it's difficult to understand what implications they may have higher up with API design.

Expand Down Expand Up @@ -63,7 +63,7 @@ Language features are particularly interesting because, again, it's often unclea
While `instancetype` may seem to be a rather mundane, albeit welcome addition to the compiler, it can be used to some rather clever ends.
[Jonathan Sterling](https://twitter.com/jonsterling) wrote [this quite interesting article](http://www.jonmsterling.com/posts/2012-02-05-typed-collections-with-self-types-in-objective-c.html), detailing how `instancetype` could be used to encode statically-typed collections, without [generics](http://en.wikipedia.org/wiki/Generic_programming):
[Jonathan Sterling](https://twitter.com/jonsterling) wrote [this quite interesting article](http://www.jonmsterling.com/posts/2012-02-05-typed-collections-with-self-types-in-objective-c.html), detailing how `instancetype` could be used to encode statically-typed collections, without [generics](https://en.wikipedia.org/wiki/Generic_programming):
```objc
NSURL <MapCollection> *sites = (id)[NSURL mapCollection];
Expand All @@ -87,4 +87,4 @@ Know it, love it.

And take it as an example of how paying attention to the low-level details can give you insights into powerful new ways to transform Objective-C.

[1]: http://en.wikipedia.org/wiki/C_Sharp_(programming_language)
[1]: https://en.wikipedia.org/wiki/C_Sharp_(programming_language)
2 changes: 1 addition & 1 deletion 2013-01-07-nil.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,4 +84,4 @@ So to recap, here are the four values representing _nothing_ that every Objectiv
</tbody>
</table>

[1]: http://en.wikipedia.org/wiki/Object_type_(object-oriented_programming)#Boxing
[1]: https://en.wikipedia.org/wiki/Object_type_(object-oriented_programming)#Boxing
2 changes: 1 addition & 1 deletion 2013-02-04-type-encodings.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ status:
swift: n/a
---

From [number stations](http://en.wikipedia.org/wiki/Numbers_station) and [numerology](http://en.wikipedia.org/wiki/Numerology) to [hieroglyphs](http://en.wikipedia.org/wiki/Egyptian_hieroglyphs) and [hobo codes](http://en.wikipedia.org/wiki/Hobo#Hobo_.28sign.29_code), there is something truly fascinating about finding meaning that hides in plain sight. Though hidden messages in and of themselves are rarely useful or particularly interesting, it's the thrill of the hunt that piques our deepest curiosities.
From [number stations](https://en.wikipedia.org/wiki/Numbers_station) and [numerology](https://en.wikipedia.org/wiki/Numerology) to [hieroglyphs](https://en.wikipedia.org/wiki/Egyptian_hieroglyphs) and [hobo codes](https://en.wikipedia.org/wiki/Hobo#Hobo_.28sign.29_code), there is something truly fascinating about finding meaning that hides in plain sight. Though hidden messages in and of themselves are rarely useful or particularly interesting, it's the thrill of the hunt that piques our deepest curiosities.

It is in this spirit that we take a look at [Objective-C Type Encodings](https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtTypeEncodings.html) in this week's edition of NSHipster.

Expand Down
Loading

0 comments on commit ba8eb1e

Please sign in to comment.