Category Archives: Uncategorized

Last Will

This week we played a game that’s all about flipping normality on it’s head.

bgLastWill

Last Will is a game in which the goal is to spend as much money as quickly as possible, and the firs player to go bankrupt is declared the winner, which is absolutely the opposite of traditional money-based games like monopoly.

It’s very much like taking on the role of the irresponsible wastrel that are the immoral paragons of Jan Austen novels. I’m essentially playing Mr. Wickham. The game’s art contributes to this ethos, and I’m almost entirely positive that the Victorian and Edwardian indulgence of the British Nobility is exactly the tenor of the game.

So if you’re looking to flip some of your board game preconceptions around, Last Will is a pretty fun little title.

Designing a Custom UITableViewCell with a XIB File

Here’s a quick little Got’cha that crops up when you’re making a custom UICollectionView Cell.

I like to design my custom cells with their own XIB files, so that I can edit them and set up their connection independent of their corresponding CollectionView of TableView class files. This level of abstraction just helps me to conceptualize my code.

But when doing this, it’s important to make the IBOutlet connections to the Cell object and not the File’s Owner, rather than the normal case of making those connections to the File Owner’s class.

So it’s important to keep in ming which connections need to made and to what.

Running in China

One of the most important things in any project, not just in software development, is to maintain a disciplined schedule. It’s absolutely critical to always have a set of goals and approaching deadlines in mind, at any stage of a program, and to gear your efforts to accomplishing those goals. I honestly think this is a productive attitude to have and it is key to keep yourself and your team members focused and driven.

But at times those approaching deadlines can get a little out of hand, and the need to meet a project’s planned schedule can become the cart that ends up in front of the proverbial horse. At these times, it might seem like a good idea to do one of two things: either to begin ejecting some of the project’s more ambitious features in the hopes that these can be included in a later version, or to produce “brute-force” solutions that meets all of the contractual obligations of the project but will inevitably require re-design in the future.

I’ve been in this situation several times over the course of my career thus far and have implemented both of the above solutions. I have been in the position of the developer that is pushing for more time and the position of the team lead that is pushing to get the product out the door on time.

When fighting for more time on a project, I’ve found myself recounting the same parable over and over again to guide myself and my colleagues.

A long time ago in Ancient China, the great scholar Lao-Tzu was spending the winter months with his family in the small village in which they made their home, with his wife, his children, and several students. As the snows thawed, the Emperor sent a message to Lao-Tzu, commanding him to present himself at the royal court at mid-summer. Always a loyal citizen, Lau-Tzu bid his wife and children farewell, and he set out on the road to the ancient capitol, accompanied by his students.

As the travelers neared the end of their journey, Lao-Tzu’s youngest pupil noticed that skies over their heads had begun to darken and the clouds had begun to thicken as if to rain. Lao-Tzu scowled; for, being early summer, they had begun their journey in the middle of the rainy season. Not wanting to be delayed on the road, Lao-Tzu urged his party on, all the while the clouds continued to grow thick and shaded.

After traveling a little further down the road, the group met a farmer, who was on his way home from working in his rice paddy. The great scholar Lao-Tzu stopped the farmer, and asked him how far he and his pupils were from the Imperial city. The farmer explained to the scholar that he was, in fact, only a few short leagues from the capitol. Reassured by the farmer’s statement, Lao-Tzu gave a long sigh, but the skies were growing even darker while he had spoken with the farmer.

Lao-Tzu turned once again to the farmer and asked the man if he thought that he and his group would be able to reach the shelter of the city before the summer storm broke.

The farmer gave the scholar a thoughtful look. He noted that the young men in Lao-Tzu’s retinue were burdened with papers and books, the sort that a true scholar would always carry with him wherever he traveled. The farmer saw this, and said to Lao-Tzu that he believed that the party would reach the city in time, as long as they did not move too quickly.

Lao-Tzu thanked the farmer, and he and his party continued down the road.

As they traveled, the clouds became so thick, that none of the sky beyond them was visible. Lao-tzu began to worry, and he quickened his pace. The wind began to blow strongly, and Lao-Tzu hurried even more, holding his scholar’s cap against his head as he walked. Lightning became visible in the distance behind the group, and Lao-Tzu moved faster still.

Eventually, the group topped the crest of a small hill and espied the walls and minarets of the capitol only a short distance away; and as they began to move down the hill towards the great gates, the first small drops of rain began to fall.

Lao-Tzu steadied his pack and began to jog rather hurriedly towards the great gate. His students breathed heavily, for their loads were not light and the wind was blowing against them.

The rain drops, that had been small and scattered only moments before, began to grow more substantial, but soon Lao-Tzu and his party were only a short distance from the gate.

As they hurried to reach shelter, the great scholar misplaced his foot on the road, and tumbled into the dirt, spilling his papers onto the ground.

The wind came on strongly, and carried the sheaves into the air. And as Lao-Tzu’s students stooped to help their master, the summer storm broke around them, drenching them all in the cold rain. The water soaked into their clothes and seeped into their baggage, ruining their precious books, scrolls, and notes.

And if they had not hurried so much, the great scholar would not have slipped, and the party would have made it to the city gates in time.

Whenever someone pushes me to meet some unreasonable deadline, I always think of this story of Lao-Tzu on the Chinese road, and it always helps to put things in perspective to me.

Sometimes, going as fast as you can is really the slowest option you have.

presentScene Error

So I’ve made this mistake twice recently, and anytime that happens I tend to thoroughly document my problem and it’s solution. It’ s a kind of “Fool me Once” Attitude.

So this neat little error occurs when I’ve made a new UIView and try to add a new SKScene to the ViewController. When you add an SKScene, you’ll use the SKView  presentScene method to do so. Normally, you’ll fetch the main view of your presenting UIViewContoller to do this, but when I’ve added a brand spanking new UIViewController to my project and then attempt to present an SKScene, I’ll get this error:

Shot-1

This error message pops up because we’re trying to send the presentScene selector to a UIView, instead of an SKView.

You see, when you make a new UIViewController it’s view object will default to an instance of UIView instead of an SKView.

Fixing this is pretty simple, though.

You just have to change the class of your new UIViewController’s view object in the interface builder to an SKView.

Shot-2

 

And now you’re ready to rock and roll!

Using Two CollectionViews

Something I’ve noticed myself doing is that I’ve been needing to set up more than one Collection View in a View Controller. This isn’t something that happens a lot, but when it does, it’s good to have an example or two in your notes from which to work.

The only real new functionality is to add some If-Then Statements to some of our CollectionView Data Source Methods in order to check on which Collection View is requesting data.

- (NSInteger)collectionView:(UICollectionView *)view numberOfItemsInSection:(NSInteger)section {

    if ( view == collectionView1 ) {

// Return the Number of Cells in collectionView1

   }

    if ( view ==collectionView2) {

// Return the Number of Cells in collectionView2;

   }

}

- (UICollectionViewCell *)collectionView:(UICollectionView *)view cellForItemAtIndexPath:(NSIndexPath *)indexPath{

    if ( view == collectionView1 ) {

// Return the Cells in collectionView1

   }

    if ( view ==collectionView2) {

// Return the Cells in collectionView2;

   }

}

All in all, it’s pretty simple.

Side-Scrolling

If we want to build a procedurally generated level for a side-scrolling platform game, then the first step is to get it to scroll to the side.

Crazy notion, right?

This is a pretty easy task when it comes right down to it, and takes only a few lines of code.

To accomplish our task, we’re going to take full advantage of the way Sprite Kit handles it’s scenes. Every object in Spite Kit is basically a sub-class of the SKNode class, and every SKNode has a parent and a bunch of children, forming a hierarchy or tree.

So what we’ll do in order to get our platforms to scroll is to create a new class: an ScrollingNode that is a subclass of an SKNode.

@interface ScrollingNode : SKNode

 

We’ll have to manage some way of determining how fast we want our platforms to scroll right? So we’ll have to add a property to track that.

@property (nonatomic) CGFloat scrollingSpeed;

 

Since the only functionality that we really want from our ScrollingNode is to scroll (it is in the name after all), we’ll only have a single method, which over writes the update method that’s already present.

- (void) update:(NSTimeInterval)currentTime
{
[self.children enumerateObjectsUsingBlock:^(SKSpriteNode * child, NSUInteger idx, BOOL *stop)
{
child.position = CGPointMake(child.position.x-self.scrollingSpeed, child.position.y);
}];
}

This method is what takes advantage of the SKNode’s design.

The only thing this method does is to enumerate through every child of our ScrollingNode, and move them by the scrollingSpeed that we’ve already added.

And that’s it.

…I told you it would be simple…

How an oversupply of PhDs could damage Us citizen scientific disciplines

How an oversupply of PhDs could damage Us citizen scientific disciplines

Gary McDowell devoted four years operating to a PhD in oncology subsequent to getting undergrad and master’s diplomas in biochemistry while in the University or college of Cambridge. Ever since then, he’s toiled for 4 years to be a postdoctoral other in exploration laboratories, originally at Harvard School and Boston Children’s Medical center, and today at Tufts. Continue reading How an oversupply of PhDs could damage Us citizen scientific disciplines

A vital amount of energy papers relating to the throughout the world target market use technological innovations that makes use of the chemical bisphenol A, or BPA. All these essay writer newspapers provide credibility and durability, and also for their essential safety.

A vital amount of energy papers relating to the throughout the world target market use technological innovations that makes use of the chemical bisphenol A, or BPA. All these essay writer newspapers provide credibility and durability, and also for their essential safety.

Bisphenol A is an important chemical type foundation utilised in numerous types of software programs as the 1950s. Continue reading A vital amount of energy papers relating to the throughout the world target market use technological innovations that makes use of the chemical bisphenol A, or BPA. All these essay writer newspapers provide credibility and durability, and also for their essential safety.

Kelvin Smith Library Demonstrates Current information

Kelvin Smith Library Demonstrates Current information

The Kelvin Smith Librarys Significant Choices has very much media in the way of exhibits! To start with, the very first floor Skill Collection is getting a facelift! Approaching this fall season, the Skill Gallery will characteristic new wall membrane sections, like those in top notch craft exhibits and galleries and museums. Continue reading Kelvin Smith Library Demonstrates Current information