Blog rebuilt and back online

After a few month hiatus, the blog is now back online. The old installation was about 10 years old, so its been manually rebuilt from scratch which should improve everyones experience browsing around. Expect some casual and technical posts coming in the next few days/weeks/months.

 

Compiling Swift from Source on the Raspberry PI

In late 2015, Swift was fully open sourced by Apple and hosted by GitHub. (you can find more info about both of these items on the Swift.org website and Apple’s Github.)

What this did was open up a lot of interesting opportunities and potential for a lot of people / projects / systems. I’m sure the first thing on a lot of people’s minds was… “will it run on X?”. Well the answer is… sure why not… Apple already provide ready-made packages for a few Linux variants and there are also ready-made packages out there for other platforms too, including android :o. There’s no fun in using a ready-made packages though right? if you’re insane enough, why not try to compile Swift on the Raspberry PI? Well thats what I did and here’s what I found out…

If you want to get a decent installation of Swift up and running, including the compiler, Foundation, stblib then the whole thing consists of 9 different git repo’s.

Initially I tried a Raspberry PI Zero ($5 Tiny Computer) running the latest Raspbian. Unfortunately, after trying a few times (with each cycle taking around 12 hours), I didn’t get very far at all. First I had to make some modifications to some of the repo compile time checks, then manually install newer versions of cmake / clang etc, try different compilation configurations etc… after which the PI Zero sadly didn’t have enough memory to get to the very end. So for the remainder of this post i’ll be using a Raspberry PI2 running the latest Ubuntu Mate image.

From here-on in, i’m gonna summarise a little, as getting this far took me a few days of hacking combined with trial and error, of which i’ll spare you the details.

 

Ubuntu Mate This is the OS you’re gonna need to load onto your microSD before continuing. You could try with Raspbian, but i’ve had mixed results. NOTE: this only works on armv7 based PI… so as of writing thats the Raspberry PI2.

A full clone of all repo’s you’ll need for Swift, as you’ll see below, a couple of the repo’s are not the official Apple ones, this is because they’ve had patches applied to them to aid in compilation on the Raspberry PI

UPDATE: 2017, You can now check-out all the repo’s directly from Apple and it will successfully compile as PI support has been merged in.

sudo apt-get install git -y
git clone https://github.com/apple/swift.git swift
git clone https://github.com/apple/swift-llvm.git llvm
git clone https://github.com/apple/swift-clang.git clang
git clone https://github.com/apple/swift-lldb.git lldb
git clone https://github.com/apple/swift-cmark.git cmark
git clone https://github.com/apple/swift-llbuild.git llbuild
git clone https://github.com/apple/swift-package-manager.git swiftpm
git clone https://github.com/apple/swift-corelibs-xctest.git
git clone https://github.com/apple/swift-corelibs-foundation.git

In case you still want to use the old repo’s, they’re here for reference.

sudo apt-get install git -y
git clone https://github.com/hpux735/swift.git swift
git clone https://github.com/apple/swift-llvm.git llvm
git clone https://github.com/apple/swift-clang.git clang
git clone https://github.com/hpux735/swift-lldb.git lldb
git clone https://github.com/apple/swift-cmark.git cmark
git clone https://github.com/apple/swift-llbuild.git llbuild
git clone https://github.com/apple/swift-package-manager.git swiftpm
git clone https://github.com/apple/swift-corelibs-xctest.git
git clone https://github.com/hpux735/swift-corelibs-foundation.git

Make sure to clone all of the above into the same parent folder, so you should end up with 9 different folders.

There are a few dependencies you will need to get the compilation going, along with a few others added in for your benefit, as you’ll need them immediately after.

sudo apt-get install build-essential cmake ninja-build clang python uuid-dev libicu48 libicu-dev icu-devtools libbsd-dev libedit-dev libxml2-dev libsqlite3-dev swig libpython-dev libncurses5-dev pkg-config

Now comes the more nitty gritty part. You’re gonna need three resources for this compile. CPU, RAM and Disk Space. You can’t do a lot about CPU, however you can improve the RAM and Disk Space situation quite easily.

Assuming you haven’t already expanded your root filesystem to the extents of your microSD card, we’ll do this now using the easiest approach possible. There’s a neat little utility called raspi-config that is an aid to some of the common tasks you’ll need to do on your pi.

sudo apt-get install rasps-config -y

Now run it and choose “Expand Filesystem”, after you’ll see an option to change the Memory (RAM) Split between GPU and System, you’ll want to allocate as much as possible to the System for now, it’ll make the GUI a little sluggish but don’t worry about that for now… After you’ve changed the value reboot and thats it!

After all this, we still have a lack of RAM… likely around 1012MB (1024-12vmem) available. The compile of Swift will take a lot of memory to get things going, so we’re gonna enable a SWAP file. This essentially will allocate a portion of your microSD card for on-demand “RAM” that can be used when your actual RAM has ran out. Its very similar to how paging works on other platforms, but at the same time, completely different. The caveat is… SWAP on a microSD is very very slow, however you’ll have to make do.

sudo apt-get install dphys-swapfile

This will enable a file to be used for SWAP, usually on Linux you slice off a specific partition for this purpose, but as its only going to be temporary whilst we compile Swift, we’ll use our approach.

Now that all the above is complete, we’re ready to get on with compiling 🙂 We’re going to build a “release” configuration of Swift with no-assertions enabled, what this will do is greatly speed up the compile time (by around a factor of 2) whilst reducing the memory usage required. The trade-off is that you won’t have debug symbols or a great ability to poke around. For our needs, it’ll suffice.

From the parent folder you cloned the 9 repositories into, perform the following steps:

cd swift
utils/build-script -R --no-assertions

Now go and make a tea, watch a box-set of game of thrones and come back around 9 hours later… You’ll either find yourself with an Error, or a lovely compiled version of Swift on your Raspberry PI! If the latter is the case, lets take it for a spin!

~# nano helloworld.swift
  let message = "Hello World!"
  print(message)

hit (Ctrl+X)
hit (Y)

~# swiftc helloworld.swift

~# ./helloworld

Hello World!

Viola!

P.S I’m currently refining this post to add a script that performs all of the above.

Questions or comments, hit me up on Twitter @ArmstrongAtWork

 

Mocking data for UI testing in Xcode 7

Over the passage of time working on different projects i’ve seen a lot of different automation frameworks to handle UI testing. Mostly quite similar, they rely on the concept of having deterministic mock data that will power your views, they then drive your views through a user journey to assert an expected outcome. Most of these frameworks follow the Behaviour Driven Development (BDD) approach to writing tests through their adoption of Cucumber, I won’t go into the details of these here as its not really relevant.

Xcode UI testing however takes a different stance and on my current project, we’ve used it more as a “no, don’t unit test that, its a view controller, write a UI test” style tool, rather than a fully fledged automation framework. What this really means is, we’re asserting things like “the menu only contains 5 items that match our mocked data” or “when you hit login an activity indicator view is displayed”; whereas in UI Automation land we’d be testing things like “given i’m a logged out user, then I enter text into username and text into password, then I hit login, I should be presented the welcome screen”… Or similar. So effectively we’re testing small discreet units of UI within our application.

The two things we soon discovered we’d need for this are:

 The ability to inject dependencies where possible so we can load views without always necessarily progressing through a user journey to them.

The ability to test our views deterministically. This means we require MOCK data.

Why don’t we just go to the network, we can guarantee our API? Well, basically because you can’t. If you can run your test suite in a nuclear bunker, surrounded by a faraday cage with no outward or inward connectivity, then you’re onto a winner. The ability to be deterministic, to be certain that if your test fails its not because of some outward problem, but indeed due to a problem with your implementation, is vital for this specific type of testing. Other testing strategies such as end-to-end etc can accomodate this.

I’ve seen a few approaches to mocking data over the past decade. The common theme seems to be either one of:

Running a proxy that will returned canned responses to requests, configuring your network to use it as appropriate..

Littering all of your network code with #ifdef UI_AUTOMATION… and returning canned responses from an NSBundle.

In each individual test case, creating stubs and mocked responses for HTTP calls on the fly

All work, but it can be a little easier depending on your use case. SuperMock is inspired by both… a framework that you can drop into an existing code base, provide it with a simple .plist that maps network calls to canned responses in your NSBundle, functions as an NSURLConnection/NSURLSession proxy, but runs as part of your application test target, runs no server, requires no network and only leverages built in components of Foundation.

Example Scenario:

You have a menu in your application, which is dynamically driven from a web service, the contents of this menu can change at any time, but you’d like to assert that given some data, it populates and draws correctly on the screen.

Given the aforementioned problems… bring on the MOCK!

Example of the required Mocks.plist

Example of the required Mocks.json

By defining your original/real URL in

Mocks.plist

of SuperMock and running 1 line (ok maybe 2) of code in your AppDelegate, you are able to guarantee the value of your menu items in your application. Making your UI Test case very simple to write and very reliable to run.

How to implement SuperMock in your App.

How to implement SuperMock in your App.

Now when your HTTP client fires off a request for

http://mike.kz/api/menu.json

it will instead get returned

file://....menu_MOCK.json

from the NSBundle you provided earlier. In your UI Tests (whatever framework you use), you can now assert based upon these MOCK values. Whats advantageous is that there is no more work to be done and no extra code in your test cases to stub out responses.
This is a short whirlwind tour of my latest little pet project, but expect to see feature like dynamic override of mocks (for use when you want the same URL to return different responses upon each request) and some more real world scenarios.

I’ll be using this framework a lot myself in my personal projects over the coming months, so I may tweak / change / improve / try not to break it, in the process. Right now its functional but not complete and needs a new README.md ?

 

https://github.com/michaelarmstrong/SuperMock / @ArmstrongAtWork

 

MacBook 2015 released with 12″ Retina Display. My Thoughts & Comparison

design_retina_large

On 9th March 2015, Apple announced (among other things…) an all new MacBook, I won’t go into the marketing details as you’ll find those everywhere else. Essentially however its an ultra low power, ultra light, 12″ MacBook with a Retina Display. As a heavy 11″ MacBook Air user I can confidently say I think they’ve really pulled it out the bag this time.

Firstly looking at the overall dimensions of the 12″ MacBook I was very surprised to see its smaller than the 11″ Air (just about) in every dimension, whilst also being lighter and having a 1″ bigger display.

Device Height Width Depth Weight
2014 MacBook Air 11″ 0.11-0.68″ (0.3-1.7 cm) 11.8″ (30 cm) 7.56″ (19.2 cm) 2.38 lb (1.08 kg)
2015 MacBook 12″ Retina 0.14-0.52″ (0.35-1.31 cm) 11.04″ (28.05 cm) 7.74″ (19.65 cm) 2.03 lb (0.92 kg)

To summarise, the thinnest part of the MacBook is thicker than the thinnest part of an Air by 0.05 cm (which perhaps is a good thing if you’ve seen how thin and almost transparent the MacBook Air 11″ display is) and its slightly deeper, apart from that its almost identical in its dimensions, which is great if (like me) you’ve invested in bags/sleeves and the likes, all your non-technical accessories will still work.

Additionally its battery life estimates and tech specs are very comparable if not identical to the battery in the 11″ MacBook Air. Meaning you get your retina display without any compromise… Except one…

The next part of this post is purely speculation until proper benchmarks arrive, however, after some digging into the Intel Core M, i’ve noticed only 5 Broadwell architecture CPU’s exist and one in particular matches the top spec CPU mentioned by Tim Cook in the Apple Keynote almost identically. I’ll take a look at that top spec CPU vs the top spec CPU of the 11″ MacBook Air.

Device CPU Power Cores Benchmark
2014 MacBook Air 11″ Intel Core i7-4650U 15W Max TDP 2 (4 logical) 4156*
2015 MacBook 12″ Retina Intel Core M-5Y71 4.5W Max TDP 2 (4 logical) 2780*

* according to cpubenchmark.net

What this shows is the 2014 MacBook Air 11″ in its top spec config scores 66% higher than the 2015 MacBook 12″ Retina. However what it shows me is that trade off has been made in choosing an ultra low powered CPU to maintain battery life whilst giving the user a Retina Display. Remembering, the benchmark used isn’t a real world scenario, its more of a point scoring benchmark and additionally, I have no idea what CPU the new MacBook 12″ Retina actually uses… This is just an intelligent guess. Interestingly again, both CPU’s support up to 16GB Memory, however the configs at Apple top out at 8GB.

Nevertheless if price wasn’t a factor, it’d be really tough to choose an MacBook Air 11″ over a MacBook 12″ Retina. Having a black bezel, retina display, edge to edge keyboard really sells it here for me. I was happy with the existing size of the MacBook Air 11″, but every little helps. Mondays keynote was the first time I truly agreed with and believed Jonny Ive when he said something along the lines of “we’ve really tried to optimise the efficiency of the MacBook’s design as much as possible”.

 

The next thing that sparked by interest was the inclusion of USB-C for… everything, (for those who don’t know, its a new USB standard that allows power, data + different standards over a single cable). I travel a lot and although my Air rarely runs out of a battery when i’m out of reach of a power outlet, its interesting to think that you could buy a 29$ USB-C to USB cable and potentially charge your MacBook 12″ Retina using the same portable battery pack you use to charge your iPhone / iPad, it is to be confirmed, but i guess it wouldn’t be reaching far to expect this. UPDATE: I can confirm you can charge your MacBook 12″ with a portable battery pack you use for your iPad/iPhone. 🙂

Power pack charging MacBook

 

[follow_me]
Those are my initial thoughts beyond the keynote and various tech blog info out there and i’ll try to update this post once my Space Grey top spec MacBook 12″ with Retina Display has arrived and i’ve (with sentiment) retired my trustworthy and fantastic MacBook Air 11″.

 

canada goose stockists uk This canada goose outlet official

Canada Goose sale Needless to say, not everyone concurs with the Heritage Foundation’s conclusions. “The implicit assumption is that they’re spending money on the wrong things. The implicit assumption is that the poor shouldn’t have those things,” said Marybeth J. To keep track of seeps, the Bureau of Ocean Energy Management has mapped over 22,000 active and inactive sites in the Gulf with 3 D seismic data, BOEM spokesman John Filostrat said last week. “Most are gas only,” he noted. Coast Guard, which then relays them to BOEM. Canada Goose sale

canada goose deals The problem, as Putman almost evangelically explained at the Aspen Institute, is that there is an ever widening official canada goose outlet chasm between rich and poor children as they progress through every aspect of life. The problem starts early. His graphs whether about income levels, family stability, social support systems reinforce canada goose outlet in toronto this conclusion. canada goose deals

canada goose But that’s not the only time warping “Wright vs Curtiss” indulges in. The Wright wind tunnel tests during the fall of 1901, canada goose outlet london uk which led to the elegant 1902 Wright glider and ultimately to the successful 1903 Wright canada goose parka outlet Flyer, are placed in 1902, rather than in 1901. canada goose outlet Canada Goose Outlet shop Such time shifting might seem inconsequential, however, it demonstrates that those involved in the production of “Wright vs Curtiss” were only superficially aware of the story they were telling. canada goose

cheap Canada Goose There a reason why it the most respected brand in the canada goose outlet belgium world and generally has some of the best value retaining products in the category. If you bought an Omega Speedmaster Pro at retail ($5200), you would lose 1/3 of its value in a year or two. Contrast that with a stainless steel Daytona which a) is damned hard to find and b) sells for $8k over retail on secondary market. cheap Canada Goose

canada goose black friday sale Strange as it may seem, such bizarre animals did exist. A number of astonishing fossil discoveries have confirmed that dinosaurs really did come in dwarf form. canada goose parka uk Franz Nopcsa, a local aristocrat, became fascinated by the fossils turning up on his family estate. canada goose black friday sale

Canada Goose Outlet (Privacy Policy)OpenxThis is an ad network. (Privacy Policy)Rubicon ProjectThis is an ad network. (Privacy Policy)TripleLiftThis is an ad canada goose outlet las vegas network. Disney hired on an a cappella quartet to entertain canada goose outlet usa guests as they come into the theatre. And they are fabulous. canada goose stockists uk This canada goose outlet official show is, essentially, a shortened version of the move. Canada Goose Outlet

canada goose clearance But, things are a little different now. There were new challenges canada goose jacket outlet toronto I had to confront this time around, that didn’t exist a few years ago. In addition to the fact that I was inching towards 60, my body was changing in ways I hadn’t anticipated: picking up a too heavy scrubsuniforms.ca box the wrong way caused a painful herniated disc; nagging pain in my right hip revealed a canada goose outlet montreal touch of arthritis; similar discomfort in my toe also showed arthritis. canada goose clearance

Canada Goose Parka This used to bug me, but Amazon is exactly as problematic as Wal Mart, and I don have any issues shopping there or at Whole Foods. It made me realize I just hated shopping at Wal Mart. I still do Target over Wal Mart ten times out canada goose jacket outlet uk of ten, but Bonobos quality hasn dropped at all, they reasonably priced as an upgrade to standards like J. Canada Goose Parka

canada goose coats on sale “Whether it was through the relationship with [her maid] or ultimately killing her parents for money because money equaled freedom then. It still does. I wanted it to be this rousing, smash the patriarchy piece, canada goose outlet miami and then she gets everything she wants monetarily the capitalist dream. canada goose coats on sale

canadian goose jacket Dolly PartonI can’t remember why I was interviewing Dolly Parton. She might have been in a movie or simply appearing in a show. The important part of the whole interviewing process, I thought, was that the people in the room were specifically from college newspapers. canadian goose jacket

canada goose store Birds startled by a sudden noise or the appearance of a predator will stretch their necks, making them look considerably longer than when they are relaxed. Also, birds look thin when they are holding their feathers close to their bodies, and fat and round when they have fluffed them out, as they do in very cold weather. The key to judging size is to watch the bird for several minutes and to look at both its length and its bulk.Look at the Bird: Start with a general impression: What is the most noticeable thing about this bird? The answer to this question is a basic description of the bird’s shape, size, and appearance. canada goose store

canada goose clearance sale The CO2 goes up, the CO2 has probably contributed to that. But they say it’s going to be catastrophic. There is no evidence to that. Tragic article. Calling it “The Great Trail” certainly seems like a farce. The intent of the trail is to protect those who wish to travel by non motorized vehicle, and it is clearly failing at its job. canada goose clearance sale

Canada Goose online Brown pelican eggs washed away this spring from an island eroded by oil in Louisiana’s Plaquemines Parish near the site of BP’s spill two years ago. In Minnesota, traces of oil and Corexit were found recently in eggs from white pelicans that winter in the Gulf. Scientists have collected bird data for Natural Resource Damage Assessments, or joint government and BP studies of the spill’s impacts. Canada Goose online

canada goose coats And I think that goes for any of this accusations. Unless you have solid proof It should be taken with a grain of salt.And to be honest with you I a bit torn about this MeToo stuff. I had some very heinous things said to me, I been blocked from jobs because I won sleep with someone, I had guys in this industry grab me and think it okay. canada goose coats

buy canada goose jacket cheap Therefore, their canada goose outlet store uk posting is subject to the moderators discretion. Note that we do not have a Discord or a Facebook page.Reddit account and community policy can be found here. Content is prohibited if it: is illegal; is involuntary pornography; is sexual or suggestive canada goose outlet legit content involving minors; encourages or canada goose outlet houston incites canada goose outlet authentic violence; threatens, harasses, or bullies canada goose uk or encourages others to do so; contains personal and confidential information, impersonates someone in a misleading or deceptive manner; is spam.2) No encouraging suicide or violence.If you want help please call a local suicide hotline buy canada goose jacket cheap.

 

I would like that person to care about good governance and

Canada Goose Jackets Early in the morning, around 1am, I had to take her to the swings in the playground. While swinging she suddenly remarked pointing to the night sky shining with stars, is Badi Nani. She is the brightest star shining golden in the sky. Camera lenses are analogous to your eye, which has its own focusing mechanism just like a lens if you put your glasses in front of a camera lens then refocus the lens you will be able to get a clear image in the same way that when you move the glasses toward or away from your face, your eye refocuses to get a clear image. Glasses are a single corrective lens placed in front of the relatively complex series of lenses and fluids that make up your eye. You probably don’t realize it but when you move your glasses toward or away from your eye, your eye is “automatically” correcting its geometry to keep what you’re looking at in focus.. Canada Goose Jackets

buy canada goose jacket cheap (The following statement was released by the rating agency) NEW YORK, July 11 (Fitch) Fitch canada goose outlet online store Ratings has canada goose parka outlet uk affirmed the ‘BBB+’ canada goose outlet canada Issuer Default Rating canada goose jacket outlet (IDR) for canada goose outlet vip Ventas, Inc. (NYSE: VTR, Ventas or the company) with a Stable canada goose outlet legit Outlook following the company’s announcement that it dismissed Ernst Young (E as its public accounting firm. According to a Ventas SEC filing, the dismissal is solely the result of an ‘inappropriate personal relationship’ between an E partner and VTR’s former chief accounting officer and controller, and does not relate to the fairness of the presentation of VTR’s financial statements or effectiveness of its internal controls. buy canada goose jacket cheap

canada goose deals So you put another 0.25 in the meter, but refuse to pay the ticket. In fact, you park there for a whole year every day and this time keep putting in your 0.25 but still refuse to pay the Violation ticket because you come up with an excuse that “I was only 1 minute late” or “The meter must be fast” or whatever the case. Or perhaps you just didn feel like renewing it that one time. canada goose deals

canada goose coats on sale What we are living out is the inevitable decline of a democracy. A country crumbles from within as over time more and more people want their rights respected. It is impossible to respect everyone rights without destroying those of others. Walkability: The National Register of Historic Places and the District government list four historic districts in the neighborhood: the Dupont Circle Historic District, the Massachusetts https://www.canadagoosediscount.co.uk Avenue Historic District, the Sixteenth Street Historic District and the Strivers’ Section Historic District. Housing in the area ranges from English basements and market rate and rent controlled apartments to condominiums and three level rowhouses. Developers have bought some area rowhouses, turning them into four or five unit condominiums.. canada goose coats on sale

canada goose clearance sale You might be a seasoned traveler, but flying can still be a trial. Take your infant along, and it can become an ordeal for both of you. Confining seats, changes in cabin pressure, noise and restrictions on food choices can add up to trouble. You have to laugh when hearing things like this. Companies can do NO more then what you allow them to do. This is America, where the goal is money. canada goose clearance sale

canada goose black Canada Goose UK Outlet friday sale For the past two years, the business partners and best friends have been named as semifinalists for “Best Chef: Southwest” by the James Beard Foundation. They’re using their restaurant and its far reaching customer base to rally support for preserving southern Utah’s threatened public lands. The restaurateurs have expressed their concern that the downsizing of the monument will adversely impact their business in a lawsuit filed by the nonprofit Grand Staircase Escalante Partners along with two other plaintiffs, the Society of Vertebrate Paleontology and the Conservation Lands Foundation.. canada goose black friday sale

Canada Goose Outlet THIS. We experienced the same, typically. One agency we deal with is kind of “meh” about anything short of a whole office is down situation. Why should the president of the World Bank always be an American? I would be fine if the next president of the World Bank is from India. I would like that person to care about good governance and accountability and that is why I would not like to have a Chinese president at the World Bank. If you get an Indian president at the World Bank, you are going to get at least something of an independent professional; if you get a Chinese president, that person’s going to answer to the Chinese Communist Party. Canada Goose Outlet

canada goose store When we cast him, we tried to cast the sweet, unassuming boy next door, the underdog. Him landing the girl in the movie ‘Hot Summer Nights’ was really something of a stretch. He ended up with someone way out of his league, and now, of course, in real life no one would think of it that way. canada goose store

Canada Goose online He also gave hours of instruction on how reincarnation worked, whilst under the influence of his trance. Sometimes he would go into a deep trance, sometimes, as in the car incident, it would be a flash of precognition. His life was a fascinating one. Canada Goose online

Canada Goose Parka Afterward, again with the help of the French, made his way to a safe house that was a part of the French underground. Over the course of their journey toward the Spanish border there ended up being about 30 guys, allies and Americans, looking to escape other the mountains into Spain. At several times they were on the verge of being caught but the most dramatic of them all was the last one. Canada Goose Parka

canada goose coats None of the legendary events allow for that much diversity. Most people unlocked Palpatine through Wiggs, Ackbar, STH and Lando (throw in the odd Leia, Hoth soldier or now K2ssian). Most canada goose outlet boston people canada goose outlet store near me wasted a canada goose outlet in vancouver lot canada goose outlet in chicago of resources canada goose womens outlet on shitty characters like JC, Mace or Eeth Koth canada goose outlet uk to get a quick Yoda, canada goose outlet store new york and most people canada goose outlet parka grinded the fuck out of canada goose outlet eu Troopers (which were pretty horrible before the update) in goose outlet canada hopes that canada goose discount uk they could make the canada goose outlet real rather short R2D2 deadline and in hopes of not canada goose outlet black friday farming incredibly shitty characters canada goose outlet nyc canada goose coats.

 

Republicans will issue all sorts of official sounding tweets

A goal or a great pass from anyone who has assists on just isn real tbh. It the computer doing it for them. FIFA does let you play really fast paced football and it is possible to setup precise plays and goals, stuff like corners, free kicks, and set pieces in general are pretty random but if they weren it would be too easy to score.

moncler usa PS: I also have other guides that you may wanna check out: 1 99 cheap moncler coats Woodcutting guide, 1 99 Fletching guide 2012, 1 99 Smithing Guide 2012, 1 99 Firemaking Guide 2012, Runescape 1 99 Guide 2012, 1 99 Cooking Guide 2012, 1 99 Thieving Guide 2012, 1 99 cheap moncler Herblore Guide 2012, 1 99 Agility Guide 2012,Runescape 1 99 Fishing Guide 2012, 1 99 Ranging Guide 2012,Runescape 1 99 Magic Guide. When moncler outlet it was made Moss Giants were strictly melee, and rock crabs were level 13. Just because small tidbits of information are outdated does not moncler outlet https://www.thebeastmark.com turn the entire guide into a ‘failure’.5 years ago. moncler usa

cheap moncler coats mens Hardware. Once upon a time, iPhone was the underdog of the market. Software, meh. Lara, THA you as always for a great “Pop news.” Now Na grande. D we talked aboutrything it seems like from why the pop supersta felt more inspired ever B T what she texted Madonna and love she gave to the manho gave her THA diamond ring. Finish a sen F me, Ariana ande is I don’t know, man. cheap moncler coats mens

cheap moncler jackets I honestly think Zard Y is in a moncler outlet store fine place in singles, but probably the best buff to it is somehow reducing Stealth Rock damage. Seeing as it doesn really use its Flying STAB, pure Fire could work, but then it can switch in on EQ. More moncler sale bulk investment would make it less moncler outlet online vulnerable against offense, but to the detriment of everything else it does. cheap moncler jackets

moncler outlet prices My goal here is mainly that I don mind teaching at all, I actually love explaining. Being in academia also allow me to stay in this work related mindset that I don have at my job anymore ( doing mostly the D in R ). And of course ultimately, work hard on a problem, do math full time ( or quasi full time ).. moncler outlet prices

moncler online store Now you add any of those 3 champions with fiddle, morg, or rakan then there is no chance in hell you are cheap moncler jackets sale ever moncler jackets outlet going to win trades, or get any meaningful lane pressure. Im completely down for there to be more champions being played bottom but problems arise when champions that are designed to generate their own lane pressure get played into a lane that is all about lane pressure and being mixed in with another moncler sale outlet set of champions that also have an insane amount of lane pressure. Basically people who don play bot lane were the ones who loved 8.11 while opinions of people who were ADC mains were much more mixed.And before people bring moncler factory outlet up pro bot laners not throwing fits about it remember that they Riot employees. moncler online store

moncler sale I’ve had jobs where I’ve failed on an epic level. Once I had a job that included running an espresso machine. And exactly how bad I was at running that machine is now the stuff of legends among those who watched. This is my third time rewriting this, grrrrr. Okay. I underpronate. moncler sale

moncler outlet Bid for AstraZeneca was a 180 degree turn, says Sappenfield, whose fund is a top performer over three and five years among world equity funds, according to Lipper, a unit of Thomson Reuters. Have to trust management. The jury is out on what management is trying to do at Pfizer. moncler outlet

moncler sale online The primary things are these: It just wasn’t that hard for a foreign power to tinker with our deliberative democratic moncler jacket sale process, which suggests that it just isn’t that hard, full stop, for anyone to tinker with our deliberative democratic process. And if Trump’s campaign played along, those who benefitedwhen he won don’t really seem to mind. Republicans will issue all sorts of official sounding tweets and news releases decrying the subversion of America’s hallowed institutions, but they’ve got their tax cuts and Supreme Court seats, and they’re not going to initiate impeachment proceedings or primary Trump come 2020. moncler sale online

moncler uk outlet With mindfulness practice we want to practice heartfulness. This is meditation where the fear and hurt are limited as we cheap moncler jackets experience the sea of greater being inside of us. Underneath the stream of thoughts there is a body of peace. But as we all know, visuals and overall concept are hugely important, and in that department, The Boots has it all. They literally all peaked. What is this sorcery. moncler uk outlet

uk moncler sale Forty per cent of Belgium’s population are French speakers. There is a border between the two nations that stretches nearly 400 miles. Such are the moncler outlet uk close links between Tuesday’s World Cup semi finalists that Belgium’s star player Eden Hazard admits he and his brothers were ‘more supporters of France than Belgium because we grew up with ’98 (France winning the World Cup).’. uk moncler sale

moncler outlet woodbury Start with Kim. On Tuesday, his regime announcedit was canceling planned talks with South Korea and might even cancel the upcoming summit with the United States because of routine joint military exercises between the United States and South Korea. Pyongyang followed up a few days later with more of its usual bluster against the “ignorant and incompetent” South. moncler outlet woodbury

moncler outlet sale There always a chance you find out something you were considering purchasing just got discontinued and it now well in your price range. Full Article Also since the Strand (and some other models) have been out so long I would expect to see their inclusion into sales become more frequent/increase available inventory.Edit 2: I should have specified, the Strands that were available during the second sale were produced for Brooks Brothers? Or maybe Banana Republic? I don remember the specific differences, but if it anything like the Lubbocks I own that were intended for Brooks Brothers it just a different moncler outlet jackets sole (my lubbocks have a rubber cover on the heel, drawing a blank on the technical term). So the Strands intended for a third party retailer moncler outlet sale were still the same design most people appreciate with a slightly different sole moncler outlet sale.

 

I then sewed a black elastic strap I had salvaged from the

canada goose black friday sale The excess vinyl was cut off of one side, but left on the other side to use as a “tongue” under the lacing. I then sewed a black elastic strap I had salvaged from the shoulder pads to the bottom point of the crotch. My strap had come with a little slide buckle which had been riveted onto the shoulder pads, so I just put the codpiece onto my son, marked the bottom center of the tongue in the lace opening, and riveted the buckle to the tongue. canada goose black friday sale

Canada Goose Parka Through ducking out on Article 50, Cameron has handed his longtime rival a clearly poisoned chalice. Johnson already risks being blamed for the referendum outcome by those who resent it. By leaving him to Canada Goose Outlet activate the EU exit process likely to usher in another round of the canada goose outlet usa market falls that accompanied the result he is putting Johnson in an almost impossible position.. Canada Goose Parka

Canada Goose online Obama surrogates did not take kindly canada goose jacket outlet store to Palin’s remarks. “Sarah Palin should spare us canada goose outlet official the phony sentiment and respect. Governor Palin accused Senator Clinton of whining and John McCain laughed when a questioner referred to her by using a demeaning expletive. Canada Goose online

canada goose clearance sale The will canada goose outlet near me of the people would have been canada goose outlet in toronto heard, but not in a good way! Could you imagine canada goose outlet in chicago the riots if a candidate only received 27% of the vote and was still elected President? Thankfully nothing like that could ever canada goose outlet germany happen. Or not. Wait what?!?! That’s right my lovelies. canada goose clearance sale

canada goose clearance Muggle society has developed in a much more sophisticated manner than the wizarding society. Reread Harry Potter and watch how Arthur Weasley gets when it comes to interacting with anything muggle related. He works canada goose jacket uk for the Misuse of canada goose outlet store near me Muggle Artefacts Office, canada goose outlet eu which is focused on making sure canada goose outlet price enchanted muggle https://www.canadagoosejacketsaleca.com items are kept well and clear from muggles. canada goose clearance

canada goose coats Ultimate mind power. Get the life you want. Be rich beyond your wildest dreams. My grandmother lived with us so grandma was with us all the time and could she bake. I’ll never forget the taste of those home made biscuits warm from the oven. And gravy, no one could touch her gravy. canada goose coats

canada goose store North Carolina only publishes the general statutes as they are written, and not the case law that pertains to them as some states do. But case law does require canada goose outlet in new york this in North Carolina. As I said before you must present probable cause to show that someone might be seriously injured/killed if the warrant is executed normally.. canada goose store

buy canada goose jacket I want more Dragon, Cancer type games (though hopefully with less real life tragedy that inspires them). I want canada goose outlet toronto address more Oxenfrees/Firewatches. canada goose outlet reviews I want more linear, compelling and artistic pieces that are 5 hours or so and cost $20 and are unique and beautiful and risky and not for everyone. buy canada goose jacket

cheap Canada Goose After the staging of Golden Boy, Odets was called to Washington. Unlike Garfield, Odets cooperated with HUAC, naming names, as did director Elia Kazan and actor Lee J. Cobb, two other old friends of Garfield, who were also associated with the play. You finally open the doors. I say finally because they’re architecturally flawed. Whoever designed every canada goose outlet nyc Cheesecake Factory entrance thought they were designing the doors to King Solomon’s Court. cheap Canada Goose

Canada Goose Jackets I just went to Walmart and I was surrounded by footie pajamas in the sleepwear section. My favorite footie pajamas were the fluffy pjs with Tweety Bird printed all over them. They are cute and practical. This has been going on canada goose outlet orlando for generations and it is part of a larger systemic problem in US culture.Eureka did grow up in the US, in the South at that. You absolutely cannot escape racism in the South (I from about an hour away from her). That why I said she should know better, and why it is so disappointing for us to see her behave that way. Canada Goose Jackets

canada goose deals Point Lookout Light is considered by many to be the most haunted lighthouse in America. Maybe that is the reason the lighthouse is no longer in use, its light extinguished for the last time on January 11, 1966. Opening and closing doors seem to be the playthings of male and female apparitions that appear from time to time and fill the house and grounds with ghostly footsteps and half heard voices.. canada goose deals

Canada Goose sale He pressed his thumbprint in the canada goose outlet in uk warm wax pooled on the oak veneer. Lastly he looked at the face so caved and drawn among the folds canada goose outlet uk sale of funeral cloth, the canada goose outlet london yellowed moustache, the eyelids paper thin. That was not sleeping. Draws comparison between Nixon and Trump in commencement address at Wellesley College commencement on May 26, former secretary of state Hillary Clinton alluded to similarities between President Trump and former president Richard Nixon. To graduates, Hillary Clinton alluded to similarities between President Trump and former president Richard Nixon. Clinton trump trump Clinton addresses Wellesley College graduates Clinton: regimes attempt to control reality Clinton: is a full fledged assault on the truth Clinton. Canada Goose sale

canada goose So maybe you better leave.” I could tell he wasn’t a guy for any bull and I could tell he was there to do what he said he was going to do. I didn’t argue. I said, “Yes sir” and shook his hand, then walked back into the church thinking he’s got his job to do and I’ve got mine.. canada goose

canadian goose jacket First off, if you checking the answer and moving on without implenting it first, you doing it wrong. You should look at different answers until you understand of what they doing, then go back and implement it without looking back at the answers, unless you get stuck again. Otherwise, you not really learning. canadian goose jacket

Canada Goose Outlet If you use Fireline, I highly recommend purchasing it through Amazon. I have more information about this in my beading resources article. You probably don’t want to travel canada goose outlet online store with huge spools of Fireline. And neither should you. Maimane is leader of the DA.Disclaimer: News24 encourages freedom of speech and the expression of diverse views. The views of columnists published on News24 are therefore their own and do not necessarily represent the views of News24 Canada Goose Outlet.

 

SuperRecord an ActiveRecord implementation in Swift

All the media buzz around swift seems to be having some tangible effect. I won’t go into the opinionated slaw of Swift VS Objective-C VS Swift VS XYZ here :). Many of you know I freelance in the iOS space around London and beyond for SuperArmstrong and one of my recent clients asked me to work on a greenfield project to replace a very old wrapped web app they had. When we got down to the nitty gritties, one of their few requirements was that it should be written in Swift. My jaw did drop a little… considering this was about 20 days after Swift had first been publicly announced. After some conversation, we came to the mutual conclusion that they were brave.

Like many of the apps I work on, this project relied heavily on CoreData, as a convenience I decided i’d try out a library that I have a lot of respect for (even though its had its challenging moments) “MagicalRecord”, having only done organic CoreData for the past few years. As you probably know, Objective-C and Swift can sit alongside in a project and work in unison… however, not all the interoperability is 100% sound. I soon started to endure strange bugs and thanks to the incompleteness of Swift lldb support at the time (especially when mixing with Objective-C) these bugs soon became quite difficult to track down.

The most annoying was this:

let entityDescription = NSEntityDescription.entityForName("Pokemon", inManagedObjectContext: context)

Although harmless… this would actually fail when trying to insert an entity of that description into your managed object context. The culprit here? the NSString to String bridging (or vice versa).

To get around this bug (which I won’t go into too much detail) I began using:

let entityName = "Pokemon" as NSString
let entityDescription = NSEntityDescription.entityForName(entityName, inManagedObjectContext: context)

Performing a forced downcast to NSString. So great, now it works… However, many of the MagicalRecord finders and helpers I was using, would not have these forced downcasts as they came from the Objective-C world. I first forked MagicalRecord, after delving into the source-code, making many changes for better Swift support, fixing some threading irregularities I then realised I was putting a lot of work into making something work that had more functionality than I required at the time. So I embarked on making a Swift ActiveRecord style “companion” to CoreData.

The reason I say “companion” and not “wrapper” is that I didn’t want to abstract away CoreData too much or remove the power from the hands of the developer. I wanted to make the developer’s life easier, whilst maintaining their flexibility.

I’d much rather do something like this:

let pokemon = Pokemon.createNewEntity() as Pokemon

and avoid the above lines + more.

Thereby SuperRecord was born. The original goals for SuperRecord were simple.

  1. Give me the ActiveRecord style finders I crave, optimise them, keep my application level code tidy, but still performant.
  2. Rather than me typing out the same code in each project to handle batch updates on my UITableView and UICollectionView classes, have a special “one size fits all” class that will act as your NSFetchedResultsControllerDelegate, providing “safe” batch updated to your reusable views.
  3. Additionally, I didn’t wanna have to spend too much time creating NSFetchedResultsControllers all the time either, so I added some helpers for this too.
  4. Be written in Swift, keeping the public API’s simple and stable, but changing the implementation as Swift changed and moved with updates.

In late October 2014 whilst still very much a work in progress, I released the first public version and it was featured in the great iOS Dev Weekly newsletter. I decided to release it early as I saw a lot of discussion around CoreData and Swift and thought there’d be a lot of people interested in this OSS effort, so we could build up a good toolset as a community. I’m still the only maintainer… (not by choice) but its early days :).

Below is some extract from the README.md but I suggest you head over to the project on github for more information and feel free to checkout the demo project also on github which shows how to use the safe batched updates along with some other common tasks.

 

Core Files

  • NSManagedObjectExtension.swift This extension is responsible for most of the “finder” functionality and has operations such as deleteAll()findOrCreateWithAttribute()createEntity() and allows you to specify your own NSManagedObjectContext or use the default one (running on the main thread).
  • NSFetchedResultsControllerExtension.swift In constant development, this Extension allows the easy creation of FetchedResultsControllers for use with UICollectionView and UITableView that utilise the SuperFetchedResultsControllerDelegate for safe batch updates.
  • SuperFetchedResultsControllerDelegate.swift heavily inspired by past-projects i’ve worked on along with other popular open source projects. This handles safe batch updatesto UICollectionView and UITableView across iOS 7 and iOS 8. It can be used on its own with your NSFetchedResultsController or alternatively, its automatically used by the NSFetchedResultsControllerExtension methods included in SuperRecord.
  • SuperCoreDataStack.swift a boilerplate experimental main thread CoreData stack. Can be used either as a sqlite store or in memory store. Simply by calling SuperCoreDataStack.defaultStack() for SQLite or SuperCoreDataStack.inMemoryStack() for an in memory store. Of course you have access to your context .context / .saveContext()

Usage

Create a new Entity

Assuming you have an NSManagedObject of type “Pokemon” you could do the following

let pokemon = Pokemon.createNewEntity() as Pokemon

Please add @objc(className) above the class name of all your NSManagedObject subclasses (as shown in the demo project) for now. Better support will be coming in the future.

Creating an NSFetchedResultsController

This feature is currently in progress with basic support so far, in future versions, sorting and sectionNameKeyPath’s will be supported. Until then you can create your own NSFetchedResultsController, however, if you have no need for the above missing functionality then simply use

lazy var fetchedResultsController: NSFetchedResultsController = self.superFetchedResultsController()

func superFetchedResultsController() -> NSFetchedResultsController {
return NSFetchedResultsController.superFetchedResultsController("Pokemon", tableView: tableView)
}

With Pokemon being the entity name of your NSManagedObject.

Delete Entities

I’m planning on adding much more powerful functionality around Delete soon, such as deleteAllWithPredicate() or deleteEntity(), right now all that is available is

Pokemon.deleteAll()

Method Listing

This isn’t an exhaustive list of all methods and classes, however it includes some of the most useful ones.

  • NSManagedObjectExtension
  • findAllWithPredicate(predicate: NSPredicate!, context: NSManagedObjectContext) -> NSArray
  • findAllWithPredicate(predicate: NSPredicate!) -> NSArray
  • deleteAll(context: NSManagedObjectContext) -> Void
  • deleteAll() -> Void
  • findAll(context: NSManagedObjectContext) -> NSArray
  • findAll() -> NSArray
  • findFirstOrCreateWithPredicate(predicate: NSPredicate!) -> NSManagedObject
  • findFirstOrCreateWithPredicate(predicate: NSPredicate!, context: NSManagedObjectContext) -> NSManagedObject
  • createNewEntity() -> NSManagedObject
  • findFirstOrCreateWithAttribute(attribute: NSString!, value: NSString!, context: NSManagedObjectContext) -> NSManagedObject
  • findFirstOrCreateWithAttribute(attribute: NSString!, value: NSString!) -> NSManagedObject
  • NSFetchedResultsControllerExtension
  • superFetchedResultsController(entityName: NSString!, collectionView: UICollectionView) -> NSFetchedResultsController
  • superFetchedResultsController(entityName: NSString!, tableView: UITableView) -> NSFetchedResultsController

NSFetchedResultsControllers created using this method will automatically handle safe batch updates.

Developer Notes

This whole project is a work in progress, a learning exercise and has been released “early” so that it can be built and collaborated on with feedback from the community. I’m using it in a project I work on everyday, so hopefully it’ll improve and gain more functionality, thread-safety and error handling over time.

The next key things to be worked on are Optionality (as this has changed in every Swift BETA), the CoreDataStack, adding more finders with more functionality and improving the NSFetchedResultsControllerExtension.

 

 

After a split with Wenner over editorial philosophy he lived

Posted 6 25 in 31 GP as captain of Saint John in 2017 18 before a mid season trade to Drummondville (16 32 in 33 GP). His 57 assists overall were tied for the third most in the QMJHL, trailing only Alex Barre Boulet (63) and Vitalii Abramov (59). He added 5 6 in the 2018 QMJHL Playoffs (10 GP), including scoring the series clinching goal in Game 5 of the First Round against Cape Breton.was a member of Saint John President Cup winning team in 2017, recording 8 3 in 18 playoff games en route to a QMJHL championship.

cheap Air Cheap Jordan shoes max shoes He covered the funeral of Beat where to buy real jordans for cheap icon Jack Kerouac in 1969. After a split with Wenner over editorial philosophy he lived in Europe, attended the Sorbonne during the Cold War and and cheap jordans size 9 womens wrote on buy air jordans cheap politics and cultural freedom. Intelligence community, holding top secret and special intelligence clearances (single scope). cheap Air max shoes

cheap jordans in china As a natural fungicide, tea tree oil can eliminate your nasty mold or mildew problems. Plus, it will fill your home with a lovely medicinal scent. Simply add 10 drops of tea tree oil to a spray bottle and fill it with water. Don’t head to Walmart for wrapping paper or cheap air jordan sneakers gift bags you’ll find cheaper prices (and a wider selection) elsewhere. “Walmart strives on its where to buy cheap jordans convenience of being able to offer up everyday items at low prices,” said Sherin. “But when it comes to real jordans for sale online cheap gift cheap jordans that are real wrap and gift bags, cheap real jordans free shipping you can find the real savings at dollar stores.”. cheap jordans in china

Cheap jordans It was the cheap jordan basketball shoes discovery of toxic levels of lead in drinking water in Flint in 2015 retro jordans for sale cheap that renewed awareness about the risks that lead poses to public health. According to the Centers for Disease Control and Prevention, elevated blood lead levels cheap authentic jordan shoes websites have been linked to brain and kidney damage, anemia and learning disabilities. Children are particularly at risk because their growing bodies absorb more lead than adults.. Cheap jordans

cheap jordans shoes The Kansas teacher says he expected 1,000 or so retweets, but within days the tweet went viral and gained more than 227,000 retweets and 75,000 replies from users all over the world. His students, who are probably a little too young for their own social media accounts, learned a lot that week about the power of social media. If used right, Marple says, “The possibilities are endless.”. cheap jordans shoes

cheap jordans on sale There will be 100 SR candidates and 27 cheap jordans kicks elected. The voting cheap jordans eclipse will be continuous cheap retros for sale and the SR can be swapped cheap jordan shoe websites out every six hours. The SR will be paid block rewards for cheap real jordans mens producing blocks. Let’s say you fall for this and ship your item. You’ll never receive payment, and the scammer will get your item for free with you paying for the shipping. Adding insult to injury, they will try to get money from you next. cheap jordans on sale

cheap adidas Should I let him help?” Dad just sighed cheap jordans 7 and said “well keep the call going.”There this girl I have a crush on, it pretty strong. I would frequently meet her at this cafe that my friend owns. Usually once a week, every time https://www.umjordanshoes.com I went, as she worked nearby. cheap adidas

cheap nike shoes Savvy test makers design assessments that are trickier to game. Some use “forced choice” questions that present takers with two statements of seemingly equal desirability and ask them to choose which better describes good cheap jordans them. cheap jordans 11 for sale For example, someone might have to choose between “I like organizing information” and “I like doing things on the spur of the moment.” cheap jordans online Others repeat questions using different words and syntax to measure whether takers answer consistently, therefore demonstrating integrity. cheap nike shoes

cheap yeezys Means no material from another source should ever be included verbatim, or substantially so, without attribution. This includes material from Associated Press reports. We do not, for example, produce news or other pieces that closely resemble wire service stories. cheap yeezys

cheap jordan sneakers Wipes cause big problems in our sewer network and also people household plumbing. We remove about 160 tonnes of wet wipes from our network every year. End to end, that enough to stretch from Brisbane to Bali. Balancing a personal life and work commitments has a lot of different challenges, especially when trying to run a successful career. Plus, if you’re a working mom, things can get even crazier. Addressing all of your family needs, especially when your child is still just a baby, while also trying to fulfill your work duties can lead to a hectic lifestyle where you always rushing to finish something without having enough time to enjoy precious moments with your loved ones.. cheap jordan sneakers

cheap air jordan Alternatively, you can also land yourself in facilities management jobs. A facilities manager is someone who knows everything that is going on in that company. He is in charge of ensuring things like getting a place for the company real jordans for cheap prices to run, safety at work provisions and many more. cheap air jordan

cheap air force She’s been in jordans for sell cheap an “independent living apartment” near me the cheap jordans for kids last few years, which where to buy cheap jordan shoes online is, oddly, what they call apartments where you need a little help. It’s nice: three white tablecloth meals a day, like a cruise ship that never goes anywhere. I stop in once a week, take her out to wherever she wants to make a run.. cheap air force

cheap jordans free shipping Most animals also seem to need a certain amount of sleep every day. If they don’t get enough sleep, they sleep more later (and more deeply) to make up for it. All of this is true for people, too.. Debora Patta is a CBS News Foreign Correspondent based in Johannesburg, South Africa. She joined CBS News in 2013 and has reported on major international stories across the continent including the Ebola outbreak, the kidnapping of cheap jordans basketball shoes schoolgirls by Boko Haram and the famine in South Sudan. She reports for all CBS News broadcasts and platforms, including the “CBS Evening News,” “CBS This Morning,” and CBSN, CBS News’ 24/7 streaming news service cheap jordans free shipping.