Artist management consists of more than just the representation of an artist, though. It consists of establishing an artist’s main image and target audience, marketing to the right crowd, scheduling performances and being there for artists when they are experiencing blocks in creativity or motivation.
Some aspects of artist management require money, and for young managers of underground artists, money is not always in the equation. To combat a lack of resources and experience, rookie managers find creative ways to attract more attention for the people they represent and create special bonds with their fans.
For those just starting out their career as managers, the lack of experience and resources can be intimidating, but with passion for music and the artists they represent, they find creative ways to boost their artists.
Ryan Carrigan, an artist manager from Quincy, Mass., started managing in 2019, when he was a sophomore at Salve Regina University. He started by working with some fellow students at his college, and over time, he started networking and reaching out to people he knew who worked in the music industry, which introduced some new opportunities for the music management newcomer.
Carrigan said when he first got started in the business, he was not well prepared because he had not been exposed to the chaos of the industry yet.
“That’s kind of something that I’ve learned has been like a constant throughout this type of career,'' Carrigan said. “You’re never going to be fully prepared for a situation … You’re constantly getting thrown into new situations that you don’t have experience in.”
One aspect of the music business that managers spend a large amount of time on is publicity, and the bulk of publicity is found through various marketing campaigns. Most marketing plans, such as social media advertisements or billboards, require a decent amount of money, but they are necessary in order to gain exposure for artists and raise their streams on streaming services, like Spotify.
“There's just so much that goes into it, and it just takes so much allocating and time management, being as resourceful as you can,” Carrigan said. “The adversity you face is not always being prepared and not always having the resources for what you want to do."
Provided by Ryan Carrigan @ryancarrigan
Carrigan said no matter how big someone’s creative vision is as an artist manager, the biggest hardship is not having the money or resources to execute plans.
However, over time, artists and their managers in the underground community build up large followings with diehard fans, so the money for marketing is no longer an issue.
The diehard fans Carrigan discusses discover an artist, buy their merchandise, watch their Instagram lives, talk to them on Discord and so much more.
“It’s rare that you see [diehard fans], and the times that you do are when artists are bigger than life,” Carrigan said. “[XXXtentacion] was so big because he had such a diehard cult following, and that stems from that underground foundation.”
Zach Williams, an Ohio University senior studying integrated media, said artist management also includes helping the artist make financial decisions that determine what direction their career goes and making sure the artist is mentally stable enough to continue making music. Although he is not an artist manager himself, he works within the creative marketing side of the music industry and understands that to be an artist manager, one needs to have the connections to get their artist to the next step in their career.
“If they win, you win,” Williams said.
Provided by Zach Williams @zwill305
Williams said artist management is a difficult job, but those who can do it well can help their artists blow up. He said when artists choose to be independent rather than having a team back them up, they are hurting themselves because of the large amount of responsibilities required to be successful in the music industry.
“If you do hire a manager, it is good to make sure it's someone that's a disciplined person and a connected person,” Williams said. “Just because they say they can manage you doesn't really mean they can manage you.”
“If they win, you win.”—Zach Williams
Peter Robinson is an artist manager from Massachusetts who has been in the business for several years now and has always had an appreciation for hip-hop music. He had a friend who made music in high school, and took up the role as a manager. He quickly learned more about the music industry and artist management as he worked with different musicians and helped jumpstart their careers, and he made connections with experts in the music business along the way.
Robinson then went on to attend and wrestle at the University of Maryland. While being a student and Division I athlete, he was managing and assisting artists from around the country. As his artists’ careers were quickly taking off, he decided to quit wrestling and take management more seriously. Robinson dropped out of college for a time and formed Olympus Projects, an artist management and consulting company, in 2017.
“Anyone that is a serious artist manager knows that sacrifice is really the key to being a good manager,” Robinson said. “You have to put other people first. So that's always been my mentality. I come from a sports background and a lot of my coaches were like father figures to me, and I owe everything to my wrestling coaches. I really learned what it meant to be a coach at a young age.”
Robinson said being a manager means putting other people’s well-being over his own, and making it his life mission to help others find their life mission. While in college, he and Zubin Gadhoke, a producer who attended UMD with Robinson and assisted with Olympus Projects from the start, developed a consulting course to help independent artists.
Provided by @olympusprojects on Instagram
In order to recruit his artist roster at Olympus Projects, Robinson looked at independent artists across the entire East Coast, and he signed those whom he saw the most potential in. Robinson now manages an array of artists, and each of them have different platforms, spanning from hundreds of streams to millions of streams.
Robinson said he would not consider any of his artists to be underground artists in terms of their sounds, but he and the Olympus Projects’ team watch the underground scene closely to study the phenomenon of underground artists breaking through to the mainstream world because of their use of online communities.
The industry as a whole looks to the techniques of the underground culture for inspiration.
“When I think about the underground, I think about artists who are making music at no cost in their bedroom and uploading it directly to non-monetizable platforms like SoundCloud, YouTube, and Audiomack,” Robinson said. “If you want to learn the most effective ways to break an artist in 2021, study the underground, because the artists that are breaking through the underground, they're realizing how to build digital fan bases of people who are the same interests as them, the same hobbies as them, the same taste in art as them, the same emotional tendencies as them.”
Jacob Jackson, a 20-year-old music manager from Byron Bay, Australia, has been managing underground artists for a year and a half.
“A bunch of my friends at school were making fire music and not getting streams on Spotify, so I used my drive to help give value to them and get them out there,” Jackson said. “I was teaching them how to market, which was the biggest value I had that others were not doing. People, numbers and streams moved into all the different facets by making connections online.”
Jackson’s first artist outside of his friends was Hawaiian artist Aizayah Hills, whose music consists of upbeat chords and relatable lyrics. Jackson found him while on a deep search to find an artist that fit the image he was looking for: someone who makes music for people who enjoy traveling and sight-seeing. He was looking through location-based stories on Instagram, and while scrolling through an ocean of scenic images and videos, he came across Hills’ music on the sound of someone’s story.
“I wanted someone who created a vibe in the real world with their music and could add to people’s daily lives when doing fun activities, and Aizayah did that for me,” Jackson said. “He has strengths in his music applicable to so many different situations.”
Jackson believes the characteristic that separates him from other young artist managers is his authenticity. He said when juggling the business aspect of the music industry, people can lose a connection to the culture within and surrounding the music itself. He said in order to find the right artists for his vision, he faced trial and error.
Photo provided by Jacob Jackson @jacobmgmt
Aside from Hills, Jackson also manages Australian hip hop artist Kiid Spyro, who he describes as a talent with a vivacious personality. Spyro’s lyrics are both humorous and intense, on top of action-packed trap beats — a big difference from Hills’ music. Jackson said that while getting to know the two artists with distinct sounds, he has learned who and what to market their music toward. He finds that Hills works well with travel spaces and vlogs because he adds to what people experience while traveling, and he finds the most success when he emphasizes Spyro’s humorous aspect in both his music and personality.
Jackson said he has faced some adversity while launching his career as a young manager to underground artists he thinks deserve bright futures. He said when first starting out as a manager, he had a lot of ambition, but he did not have the resources or mechanisms to accomplish his goals. He overcame this by reaching out and making friends and partners in the industry.
Jackson warns people new to the industry about how they approach potential connections, mentioning that context is important so they are not seen as someone who is only interested in helping their own career rather than someone looking to develop a valuable connection.
Eric Duwel is a 17-year-old A&R at 25/7 Media, an agency that represents a wide range of artists and content creators. A&R, which stands for artists and repertoire, is the department of a record label or agency that specializes in seeking new talent to sign and manage. 25/7 Media manages a wide range of artists, from alternative, to hip-hop and even pop punk, located from LA, to Atlanta, to New York.
Duwel is a senior in high school, but he takes his music management job a little more seriously than school, because he knows he has a future in the music industry business. He has been working in the industry since he was 15 years old. His day-to-day managerial tasks include finding beats for his artists, communicating with his artists about how they can help them achieve their goals and reaching out to influencers about doing promotional posts with his artists’ music.
He has launched a successful career and developed important industry ties as a young professional in the music industry. He said older professionals have not treated him differently because of his age, and he is treated with respect and trust.
“When I was running the Tik Tok campaign for SZA’s ‘Good Days,’ the label was never like, ‘oh, this kid’s 17,’ or like, you know, ‘he's a kid, he's going to scam us,’ or like, ‘he sucks.’ It was never anything like that. I was able to execute and get the job done,” Duwel said. “And that's what people want.”


Appy Days
Offers
Spa Discounts
Room Discounts
Voucher Codes
Reservations
About
My Account
Sign Up
Login
Room Booking
Number of People
1
2
3
4
5
6
7
8
9
10
11
12
Room Type
Single Room
Double Room
Family Room
Check In Date:
Check Out Date:
Rooms Available
Room Details
Select
Book this
×
Register
Username
Password
Confirm Password
Email
Date of Birth
Address
×
Login
Username
Password


JavaScript is disabled on your browser.
Skip navigation links
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
Prev
Next
Frames
No Frames
All Classes
Hierarchy For Package magic
Package Hierarchies:
All Packages
Class Hierarchy
java.lang.Object
magic.
AbstractCreature
(implements magic.
Creature
)
magic.
AbstractCreatureDecorator
(implements magic.
CreatureDecorator
)
magic.
AbstractGameEntity
(implements magic.
GameEntity
)
magic.
AbstractCard
(implements magic.
Card
)
magic.
AbstractEffect
(implements magic.
Effect
)
magic.
AbstractCardEffect
magic.
AbstractCreatureCardEffect
magic.
AbstractEnchantmentCardEffect
magic.
AbstractEnchantment
(implements magic.
Enchantment
)
magic.
AbstractPlayerDecorator
(implements magic.
PlayerDecorator
)
magic.
CardFactory
magic.
CardStack
(implements java.lang.Iterable<T>)
magic.
CombatEntry
magic.
ConcretePlayer
(implements magic.
Player
)
magic.
DecoratedCreature
(implements magic.
Creature
, magic.
Permanent
)
magic.
DecoratedPlayer
(implements magic.
Damageable
, magic.
Player
)
magic.
DefaultCombatAttack
(implements magic.
Phase
)
magic.
DefaultCombatDamage
(implements magic.
Phase
)
magic.
DefaultCombatDefense
(implements magic.
Phase
)
magic.
DefaultCombatPhase
(implements magic.
Phase
)
magic.
DefaultDrawPhase
(implements magic.
Phase
)
magic.
DefaultEndPhase
(implements magic.
Phase
)
magic.
DefaultMainPhase
(implements magic.
Phase
)
magic.
DefaultPhaseManager
(implements magic.
PhaseManager
)
magic.
DefaultTurnManager
(implements magic.
TurnManager
)
magic.
DefaultUntapPhase
(implements magic.
Phase
)
magic.
Library
magic.
Magic
magic.
SkipPhaseCount
(implements magic.
Phase
)
magic.
SkipPhaseUntilEnd
(implements magic.
Phase
)
magic.
StaticInitializer
java.lang.Throwable (implements java.io.Serializable)
java.lang.Exception
java.lang.RuntimeException
magic.
EndOfGame
magic.
Triggers
magic.
Utilities
Interface Hierarchy
magic.
CardConstructor
magic.
GameEntity
magic.
Card
magic.
Damageable
magic.
Creature
magic.
CreatureDecorator
magic.
Effect
magic.
TargetingEffect
magic.
Enchantment
(also extends magic.
Permanent
)
magic.
Permanent
magic.
Enchantment
(also extends magic.
GameEntity
)
magic.
GameEntityVisitor
magic.
Phase
magic.
PhaseManager
magic.
Player
magic.
PlayerDecorator
magic.
TriggerAction
magic.
TurnManager
Enum Hierarchy
java.lang.Object
java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)
magic.
Phases
Skip navigation links
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
Prev
Next
Frames
No Frames
All Classes


| Sr | Fieldname | Type | Label | Options |
|---|---|---|---|---|
| 1 | student |
Link | Student | Student |
| 2 | student_name |
Read Only | Student Name | |
| 3 | program |
Link | Program | Program |
| 4 | student_batch |
Link | Batch | Student Batch Name |
| 5 | include_all_assessment |
Check | Include All Assessment Group | |
| 6 | show_marks |
Check | Show Marks | |
| 7 | add_letterhead |
Check | Add letterhead | |
| 8 | column_break_3 |
Column Break | ||
| 9 | assessment_group |
Link | Assessment Group | Assessment Group |
| 10 | academic_year |
Link | Academic Year | Academic Year |
| 11 | academic_term |
Link | Academic Term | Academic Term |
| 12 | letter_head |
Link | Letter Head | Letter Head |
| 13 | section_break_5 |
Section Break | Print Section | |
| 14 | parents_meeting |
Data | Total Parents Teacher Meeting | |
| 15 | parents_attendance |
Data | Attended by Parents | |
| 16 | terms |
Link | Terms | Terms and Conditions |
| 17 | assessment_terms |
Text Editor | Assessment Terms |
Inherits from frappe.model.document.Document
erpnext.education.doctype.student_report_generation_tool.student_report_generation_tool.get_attendance_count (student, academic_year, academic_term=None)
No docs
erpnext.education.doctype.student_report_generation_tool.student_report_generation_tool.get_courses_criteria (courses)
No docs
Public API
/api/method/erpnext.education.doctype.student_report_generation_tool.student_report_generation_tool.preview_report_card
erpnext.education.doctype.student_report_generation_tool.student_report_generation_tool.preview_report_card (doc)
No docs


MySpace URL:
http://www.myspace.com/tom
General
Internet, Movies, Reading, Dancing, Karaoke, Baseball, Language, Culture, History of Communism, Philosophy, Singing/Writing Music, Running, Finding New Food, Weight Lifting, Hiking, WWI Aviation, Travel, Building alternate communities
Music
Bands: Beatles, Superdrag, Jackson 5, Weezer, Sex Pistols, The Carpenters, Vain, Radiohead, Teenage Fanclub, Rocket from the Crypt, Pitchfork, Oasis, Rialto, Supergrass, Travis, The Doors, Cheap Trick, Simple Plan, Alice Cooper, KISS, A*TEENS, The Beach Boys, The Velvet Underground, Journey
Solo Artists: Billy Joel, Bruce Springsteen, Elvis, Brendan Benson, David Bowie, Rick Springfield, Barry Manilow, Paul Stanley Solo Album, Bob Dylan, Rod Stewart
Singers: Michael Jackson (age 14 & under), Karen Carpenter, Whitney Houston (particularly The Bodyguard soundtrack), George Michael, Louie Louie, Coco Lee, Robin Zander, Frank Sinatra, Steve Perry, Gerard Way
Albums: Appetite for Destruction - Guns Roses; Life - The Cardigans; A Hard Day's Night - The Beatles; Dookie - Green Day; Blue - Weezer; One Missisipi - Brendan Benson; Two Steps from the Move - Hanoi Rocks; Led Zeppelin I, The Doors, In The Valley of Dying Stars - SuperDrag; Survivor When Seconds Count - Rick Springfield, Working Class Dog
Instruments: The Er Hu, Piano, certain guitar tones (Rocket from the Crypt, Sex Pistols, Rolling Stones)
MySpace Artists: Limbeck, Butch Walker, The Fictions, The Ettes, Feable Weiner, Billionaire Boys Club, Halfway Home, The Pacific, The Honorary Title, Stranded Alone, Kill Hannah, FallOutBoy, Melee, The Shore, The Summer Obsession, Kino, Cary Brothers, The Volunteers, The Howl, Head Automatica, Seel Fresh, Jupiter Sunrise, Keane, Say Anything. Tsar, Much The Same, Plain White T's!
Movies
Films: Lawrence of Arabia, Ben Hur, Patton, Spartacus, Gandhi, The 10 Commandments, Apocalypse Now, Beauty & The Beast (the cartoon), Thin Red Line, Titanic, Gladiator, The Patriot, Breakfast at Tiffanys, Un Coeur en Hiver, To Live, Happy Times, The Road Home, Not One Less, Ju Dou, Red Sorghum, The Empire of the Sun, Gone With the Wind, The Godfather, 2001, Clockwork Orange, Blade Runner, Deer Hunter, Mean Streets, Grease, Urban Cowboy, Saturday Night Fever, The Sound of Music, Copland, Xiu Xiu, Dances With Wolves
Directors: Kubrick, Francis Copolla, Zhang Yimou, Anh Hung Tran, Steven Spielberg
Television
Tuned out. Except for SF Giants. I rented Band of Brothers and liked that.
Books
Nietzsche, George Orwell, Milan Kundera, Laurens van der Post
Status:
Single
Here for:
Networking, Dating, Serious Relationships, Friends
Hometown:
San Diego
Ethnicity:
White / Caucasian
Zodiac Sign:
Libra
Smoke / Drink:
No / No
Occupation:
MySpace
University Of California-Los Angeles
Los Angeles, CALIFORNIA
Graduated: 2000
Degree: Master's Degree
Major: Film - Critical Studies
1999 to 2000
University Of California-Berkeley
Berkeley, CALIFORNIA
Graduated: 1997
Student status: Alumni
Degree: Bachelor's Degree
Major: English & Rhetoric
Clubs: DECAL: Literary Theory
1993 to 1996
Tom's Latest Blog Entry [Subscribe to this Blog]
MySpace Concert & Parties -Georgia, Orlando, Miami! (view more)
In Stores Today - MySpace Records Vol. 1 ! (view more)
MySpace Records - get more photos for your profile! (view more)
October 29th - MySpace 2-Year Anniversary Concert! (view more)
NIN, QOTSA, Acoustic and Punk Tours (!) (view more)
[View All Blog Entries]
Tom's Blurbs
About me:
I'm here to help you with MySpace. Send me a message if you're confused by anything. Before asking me a question, please check the FAQ to see if your question has already been answered.
I may have been on your friend list when you signed up. If you don't want me to be, click "Edit Friends" and remove me!
Also, feel free to tell me what features you want to see on MySpace and if I think it's cool, we'll do it!
If you want a tutorial on HTML/designing your page, check this out: Mack!!
Note: If you try to view my friends list you won't see all 24,000,000 million people. This was bogging down the system, so we made it only show 40 people. So you wont be able to see the friends on my list.
Who I'd like to meet:
I'd like to meet people who educate, inspire or entertain me... I have a few close friends I've known all my life. I'd like to make more.
Tom's Friend Space
Tom has 73090713 Friends.
MySpace Records
Andi
Abraham
tanner
Tams
MySpace Records
j-e-n-n-i
MySpace Records
View All of Tom's Friends
Tom's Blurbs
Displaying 50 of 780610 comments (View/Edit All Comments)
dont listen to those girls, they don't know what they're talking about!! I LOVE YOUR DISPLAY PIC, seeing it makes my day a little better!!!
Tom you are a gift to CyberSpace bro! If you come across anyone that should be considered ELITE send 'em my way will ya!? Take care Tom and I look forward to seeing the future of MySpace!
4/22/2006 6:54 PM
Dude, Appetite for Destruction Rocks, same with Alice Cooper and KISS


NHPhotosViewer
Simple photos viewer written in Swift.
NHPhotosViewer is designed to be presented within a navigation controller. Simply set the delegate (which must conform to NHPhotosViewControllerDelegate
) and implement the 2 required delegate methods to provide the photo viewer with the data in the form of NHPhoto objects. You can create an NHPhoto object by providing a UIImage object, or a URL containing the path to a file or an image online.
Downloading/caching of images are done via Kingfisher library.
Status
Project under development. Missing many features. Just a very simple image gallery for now.
Installation via CocoaPods
pod "NHPhotosViewer"
Code Example
import NHPhotosViewer
...
override func viewDidLoad() {
let urls : [String] =
[
"http://somedomain.com/image.png",
"http://somedomain.com/anotherimage.png",
...
]
...
for url in urls {
let photo = NHPhoto(url: URL(string: url)! )
// set placeholder image if necessary
//photo.placeholder_image = placeholderImg
photos.append(photo)
}
self.viewer = NHPhotosViewController()
self.viewer?.delegate = self
self.viewer?.numOfColumns = 4
}
// open viewer with navigation controller
@IBAction func openViewer(_ sender: AnyObject) {
self.viewer?.navigationItem.title = "Photos"
self.navigationController?.pushViewController(self.viewer!, animated: false)
}
//NHPhotosViewControllerDelegate
func numOfPhotos(photoController: UIViewController ) -> Int{
return photos.count
}
func photo(photoController: UIViewController, index: Int) -> NHPhoto {
return photos[index]
}


Already part of the community?
Quick login and be wow'ed
Full name is required.
Email address is required.
Email address is invalid.
Email not match.
Password is required.
Password is required 6 chaset.
{{passwordError}}
Policy is required.


Constructor
new DevotedArray(containerObject, …values)
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
containerObject |
Object | Reference to the object, containing the DevotedArray object. |
|
values |
any |
<repeatable> |
Values to be inserted into the new DevotedArray object. Separated by comma or encapsulated in an iterable structure. |
- Source:
Extends
- Array
Methods
pop(thisArg, method) → {*}
Removes the element from the end of the array.
Parameters:
| Name | Type | Description |
|---|---|---|
thisArg |
Object | Object from where the call is performed. |
method |
string | Method that performs the call. |
- Source:
- See:
Returns:
Value of the element taken from dataset.
- Type
- *
push(thisArg, method, …v) → {number}
Adds new element(s) to the end of the array.
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
thisArg |
Object | Object from where the call is performed. |
|
method |
string | Method that performs the call. |
|
v |
* |
<repeatable> |
Value(s) to be inserted into dataset. |
- Source:
- See:
Returns:
New length of the dataset.
- Type
- number
reverse()
Prevents Array.reverse() execution.
- Source:
Throws:
-
"DevotedArray.reverse is not a function."
- Reverse method is deprecated. - Type
- SyntaxError
shift(thisArg, method) → {*}
Removes the element from the beginning of the array.
Parameters:
| Name | Type | Description |
|---|---|---|
thisArg |
Object | Object from where the call is performed. |
method |
string | Method that performs the call. |
- Source:
- See:
Returns:
Value of the element taken from dataset.
- Type
- *
sort()
Prevents Array.sort() execution.
- Source:
Throws:
-
"DevotedArray.sort is not a function."
- Sort method is deprecated. - Type
- SyntaxError
splice()
Prevents Array.splice() execution.
- Source:
Throws:
-
"DevotedArray.splice is not a function."
- Sort method is deprecated. - Type
- SyntaxError
unshift(thisArg, method, …v) → {number}
Adds new element(s) to the beginning of the array.
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
thisArg |
Object | Object from where the call is performed. |
|
method |
string | Method that performs the call. |
|
v |
* |
<repeatable> |
Value(s) to be inserted into dataset. |
- Source:
- See:
Returns:
New length of the dataset.
- Type
- number


The New Survivalist
|
Chapter 5 Food: Page 2 |
||||||
Certain other foods, if stored properly, can keep for 5 to 10 years or
even longer. All stored foods should be dated so they can be rotated out
when the time comes to replace them. Before I discuss the best way to store these foods, lets take a brief moment to review the major reasons why stored foods spoil. Food is spoiled primarily by the growth of microorganisms. In order to grow and reproduce, most microorganism require two things, water and oxygen. When foods are canned they are preserved by killing all the microorganism in the food and the storage container by sterilization, and by keeping the container completely impervious to the entry of additional microorganisms. When foods are preserved by dehydration nearly all of the water is removed. The microorganisms that are in the food are not killed but without water they can not grow and reproduce. When foods are frozen the live microorganisms remain in the food, but the extremely low temperature stops their metabolism so they do not grow and reproduce. (Your refrigerator does not stop the growth of microorganisms, but their metabolism is slowed enough to prevent the food from spoiling before it can be consumed.) Pure honey and molasses are special because they naturally contain ingredients that prevent the growth of microorganisms. The best way that I have found to store whole dried foods, like whole wheat berries and dried beans, is to seal them in completely airtight mylar bags made specially for the purpose of long-term food storage. Other plastic bags will work but the mylar bags work the best. First you must start with foods that contain very little moisture, or you must remove the moisture by placing the food in a low temperature oven for complete drying. The oxygen is removed from the bag and the mylar bag is sealed completely airtight with a hot iron. Mylar bags are strong but they are not puncture proof. They must therefore be enclosed in a strong, preferably airtight, container such as a 5 or 6 gallon plastic bucket with an airtight lid, such as the ones that you can purchase at hardware stores. There are two good ways for removing the oxygen from the airtight mylar bags. The easiest way is to throw in a couple of oxygen absorbing packets just before you seal the bag. These can usually be purchased from the same supplier who supplied your mylar bags. The other way to remove the oxygen is to use carbon dioxide to replace the oxygen in the bags. The easiest way to employ carbon dioxide is to use dry ice, which is frozen carbon dioxide gas. Dry ice can be purchased from the same ice dealers that sell blocks of regular ice. You will find them in your Yellow Pages. Dry ice is extremely cold and must be handled carefully. If it touches your skin it can cause a "burn." It must therefore be handled with gloves. Fill your storage container to within about a half inch (1 cm) of the top. Put a piece of dry ice on top of the food and put the lid on but do not seal the lid yet. As the gas evaporates (or sublimates) it will cause pressure to build in the container which could rupture it. You have to wait for the dry ice to evaporate completely, turning completely into carbon dioxide gas, and then you seal the container. As it sublimates it will drive the air out of the container. Carbon dioxide is heavier than air and so it will remain in the container if you do not disturb it too much. One to two ounces (50 g) of dry ice is all that is needed for each 5 to 6 gallon (20 l) bucket of food. |
||||||
Oxygen-Absorbing PacksMy favorite way to remove the oxygen is by using oxygen absorbing packs. The food most commonly used for long-term storage is whole wheat berries (Winter wheat) so I will use it as an example. Below is how I do it from start to finish: I purchase organically grown whole wheat berries (Winter wheat) from a natural foods grocery store that sells in bulk. Whole Foods Market is a national chain that sells bulk foods but there are others including local sources. Rather than buying from the bulk department of the store, I place my order with the store manager and receive my wheat berries in 50 lb bags. They give me a discount of about 10% when I order by the bag. I also purchase other grains and beans for long-term storage in this manner.
As I mentioned earlier, the 5 or 6 gallon (20 l) plastic buckets that you can buy in hardware stores are a convenient size in which to store your bulk items. These buckets are made out of two different types of plastic, one is food-grade and the other is not. I seal my foods in mylar bags so they don't come in contact with the plastic bucket so it doesn't matter to me whether they are food grade or not. If you store any of your bulk foods in direct contact with the plastic bucket you will want to use food-grade buckets only. Those that have already been used to store foods, like the ones that restaurants use, are perfectly fine, and you may be able to acquire these for little or no money. I order my mylar bags from Walton Feed, Inc. online at http://www.waltonfeed.com/. They come in many different sizes but I have found that the 20 in x 30 in size is perfect for 5 or 6 gallon buckets. I place the mylar bag in the plastic bucket and fill it with the wheat berries.  You have to work quickly to avoid overly exposing your oxygen absorbing packs to air, which will decrease their effectiveness. Next I trim off any excess from the top of the mylar bag (optional) and firmly seal the lid on the bucket using a rubber mallet. The wheat berries are now ready for long-term storage in my basement. I use the same technique to store other items that I buy in bulk, including pinto beans, corn, oats, etc. Most other items will not have the 100 year or longer shelf-life that the wheat berries have. If you start with whole foods that have a very low moisture content, most foods will have at least a 10 year shelf-life when stored in this way. Obviously you should label each bucket with its contents and the date it was sealed. It would also be a good idea to put a "Use by" date on the bucket, in case you forget what the shelf-life is or in case it is opened by someone else.  You can staple or nail the towel on the underside of the board to keep it in place. When you are ready to seal your mylar bag lay this ironing board across the top of the bucket and lay the mylar bag over it to make your job easier (as demonstrated in the photograph above and in the video.) Make sure your seal is complete, and then trim off any excess from the top of the mylar bag. You will have to experiment a little with your iron to determine the ideal temperature. Trim off a small strip from the top of one of your mylar bags and try sealing it with your iron to determine the best setting. The list below gives the approximate shelf-life for some common bulk items when stored in this manner. These numbers are conservative. It is quite possible that the foods will keep longer. However, all foods lose some of their nutritional value when stored over an extended period of time. The longer they are stored the more nutrition is lost. You should therefore try to rotate these foods out, replacing them with new stock, according to the shelf lifes suggested below. If you open a container and find that the food is moldy, it will most likely be because it contained too much moisture when you sealed it, or else it was exposed to air due to a faulty seal. Throw it in your compost. If you are wheat intolerant then obviously you will want to store other grains. But keep in mind that most other grains will not have the shelf-life of wheat and so you will need to rotate your stock.  But the most popular way to use wheat berries is to grind them into flour, along with other grains or dried beans if you like, and use them to make bread, pancakes, or any number of other baked goods. You will need to have a good hand-operated grinder for making flour from your wheat berries and other grains and dried beans. Cookbooks are available containing recipes for using the grains that you have stored. A couple of my favorites are mentioned in the Additional Resources section at the end of this web site and under "Recommended Reading" at the bottom of this page. |
||||||
Whole Wheat RecipesIn her 1969 classic, Passport to Survival: Four Foods and More to Use and Store, survivalist writer Esther Dickey recommends whole wheat berries as one of the four foods which should make up "the basic components of an emergency survival diet." (The others are powdered milk, honey and salt.) Her book is a rich source of recipes for the many and varied ways in which you can use your whole wheat berries, from sprouting (an excellent way to add fresh greens to your diet) to making gluten (a source of protein) to baking whole wheat breadthe staple of life. Unfortunately her excellent book is out of print, but used copies are still available at Amazon.com. |
||||||
A Word About Gluten and Wheat IntoleranceIf you store wheat berries, learn now how to sprout them to make wheat grass! Sprouted wheat berries and wheat grass are much better for you, and are much more easily digested, than the other ways that you will consume your wheat berries, even better than grinding them to make bread. Wheat berries contain gluten, which is a difficult protein to digest. Many individuals develop an intolerance to gluten and must avoid it entirely. Often, the more wheat you eat, the more intolerant your body grows to it. So even if you don't have a lot of trouble eating products that contain gluten now, you can develop the problem in the future, especially if wheat ever becomes a major food source, like after a collapse when you break out your wheat storage. Caution should be used when considering wheat berries and wheat products, because many people have sub-clinical (below the surface) problems with wheat, including hidden wheat allergies. But with a storage life of practically forever (when stored properly), wheat berries are of course an excellent food to put up for long-term emergency storage. Sprouting your wheat berries will go a long way in adding additional nutrition and variety to your wheat berries, and will help prevent wheat or gluten intolerances that will surely occur if people are ever forced to rely on stored wheat as a primary source of food. |
||||||
Nutritional SupplementsDo you take a multivitamin? There are so many nutritional supplements on the market today that trying to decide which ones you need can be confusing. While there are many supplements that may be helpful for individual needs, there is one that I consider essential for everyone. If you take nothing else you should take a good high-quality multivitamin/multimineral supplement on a daily basis. Most vitamins are fat-soluble and can be stored by your body. (The exceptions are Vitamin C and B-complex, which are water soluble.) Trace minerals, which are grossly lacking in the typical American diet, are also very important for maintaining your health, and like fat-soluble vitamins they too can be stored by the body. How much better could your body survive hard times if it is well stocked with these important nutrients when the emergency occurs, as opposed to beginning such a stressful situation with an already deficient supply? When we are under stress, our bodies use up our nutrient stores faster, and therefore we may need even more than usual. An adequate supply of these important nutrients will allow you to endure stress more easily, increasing your resistance to mental and physical disease. As I have already mentioned, the longer foods are stored the more nutritional value they lose. And we all understand that one of the keys to sound nutrition is a highly varied diet. But during times of emergency we will no doubt be restricted in the variety of foods that we have available to us. In fact, we might be eating a lot of the same foods over and over. These factors, along with the fact that our bodies need more vitamins and minerals when under stress, mean that it will be even more important to take a multivitamin/multimineral supplement during times of emergency than during normal times. So I consider a good supplement to be an essential part of any emergency food stash. Vitamins have a shelf-life of at least two years. Minerals are literally rocks that will keep forever. After the recommended two-year shelf-life has been exceeded, the vitamins will still be viable. It's just that they will have lost some of their potency. The older they are the more potency they will lose. You do not have to discard your vitamins after the expiration date. You can continue taking them. They may not be as potent as when you purchased them but they will be better than nothing. I keep a one year supply of Super Supplemental Vitamins and Minerals in my emergency food stash. Everyone in my family takes this supplement so we do not have a problem keeping our stock fresh. We just have to remember that when we empty a bottle and purchase a new one it has to go to the back of the shelf, and every other bottle has to be moved forward. When we take a bottle off the shelf we are careful to grab the oldest one, which will be the one in the front. That way all of our vitamins always remain as fresh as possible. Super Supplemental contains some calcium, but since we try to take a higher amount of this important mineral, along with additional magnesium, a mineral that is heavily lost in food processing, we store a year's supply of Calcium-Magnesium as well. You may choose to store additional supplements (and essential medicines as well.) Just remember to store what you use and to use what you storeand above all, don't forget to rotate your stock! |
||||||
Growing Your Own FoodAfter a local emergency, if we are lucky things could be back to normal within a few days. But other disasters could drag on for many weeks or even months. There is no way of predicting how long a national or global emergency could last. If you are ever involved in a prolonged emergency, your food stash, no matter how large, could eventually run out. If a prolonged disaster is on your list of concerns you should think about ways to replenish your stores by growing some of your own food. Even if you are not able to meet all of your family's needs, your stash will certainly last longer if you are able to supplement it. Two skills that every survivalist should learn are vegetable gardening and fruit growing. Both involve trial and error so don't wait until an emergency occurs to start learning these important survival skills. Recommended Site: Urban Survival Gardening
Shown above left is a ginger plant growing in a 12 inch (30 cm) pot. (When the green leaves turn brown and die off the ginger root is ready for harvesting.) Even people who live in a high-rise apartment can grow a few vegetables, fruits or herbs in pots or containers. No matter how small, your property is capable of producing some homegrown foods. If you have a small back yard you can grow quite a bit, especially if you plan your garden carefully. |
||||||
|
||||||
CompostingEvery organic gardener knows the benefits of composting. Composting allows you to recycle vegetable matter from your kitchen, as well as your yard and garden wastes, to convert it, with the help of beneficial bacteria and industrious earthworms, into an excellent material that you can work into your garden soil to aerate and fertilize it. Composting can be done anywhere, even in the city where space is limited. You can even keep a small earthworm compost bin just for kitchen scraps in your basement or garage. I do not add meat scraps or dairy products to my compost, preferring to keep the material of vegetable origin only, in order to eliminate odors and flies. The exception is egg shells which can be added to compost without creating any problems. The calcium in egg shells is also great for your soil.  (We will discuss waste disposal in a later chapter of this web site.) The two compost bins that I keep behind my garage are shown in the photograph above. This type is normally too expensive in my opinion, but I was fortunate enough to acquire these two at estate sales for only a few dollars each. You can easily make your own compost bins by forming hardware cloth or chicken wire into a cylinder, leaving it open at both the top and the bottom. (Note the two rain barrels also in this photograph.) |
||||||
I have a very small front yard, but it was large enough to plant two dwarf fruit treesan apricot and an Asian pear. Dwarf trees reach a maximum height of only 15 to 20 feet (4 to 6 m), but they produce about the same amount of fruit as full-sized trees that would require a much larger space. Semi-dwarfs are also available that grow to heights somewhere between a dwarf and a full-sized tree. It is also easier to harvest your fruit from a dwarf or semi-dwarf because you don't need a tall ladder. It would be hard to find an ornamental tree that could exceed the beauty of a dwarf apricot tree. My apricot tree produces a bounty of fruit each yearfar more than my family can consume, even though we preserve much of our fruit by canning and dehydration. Apricot trees are among my favorites not only because of their delicious fruit, but also because they produce beautiful and fragrant flowers in the early Spring. The photograph above shows a honey bee pollinating the blossoms of my apricot tree. A bee hive will provide plenty of delicious honeya natural sweetener and healthful sugar alternativeand as an added bonus the industrious little workers will insure that all the blooms of your fruits and vegetables are pollinated, which will maximize production. This beautiful dwarf Asian pear tree in my front yard (above) also produces a bounty of delicious and healthful fruit. Growing many different types of fruit not only provides variety, but the work of harvesting and preserving is spread out since each ripens at a different time. Even though my property is in a suburb of a major city, and is only average in size, I also manage to grow a peach tree, two apple trees, two cherry trees, another pear tree and a paw paw tree in my back yard. This is in addition to a long row of 10 blackberry vines, another of 10 grape vines, and a nice-sized vegetable garden. It is amazing how much of your own food you can grow, even on a small property. If you live on a larger lot you can of course grow much more, maybe even corn, wheat and other grains. Nut trees are also excellent if you have the space and are willing to fight the squirrels for your nuts. Blackberries (above) are easy to grow if you have a sunny location. Check the prices in the grocery stores (even when they are in season) and you will understand why this is also an excellent cash crop!
|
||||||
It is not the purpose of this web site to give details on how to grow fruits and vegetables. There are many good books available, including the ones in the Additional Resources section at the end of this web site and under "Recommended Reading" at the bottom of this page. I suggest that you acquire a few good books and start learning now. If you are new to gardening you may find that some of your efforts will not pan out at first. But through time, with experience and learning, you will build your skills and develop your repertoire of favorite plants. You will get better with each season and when the emergency occurs you will be ready.
Save Your SeedsStore-bought seeds will remain viable for at least 2 to 3 years, although their germination rate will decrease through time. Store your extra store-bought seeds by keeping them cool and dry in airtight containers such as mason jars or plastic bags. Refrigerating or freezing your seeds is not recommended. You should also save your own seeds from your garden. Just be sure to dry them thoroughly in the sun before storing them.
Dealing with ThievesEven during normal times I find that there are sometimes people who will help themselves to the bounty of my labor, particularly to my fruit. Imagine how much more of a problem thievery will become when there is a shortage of food during a prolonged emergency. You might want to give some thought now to camouflaging or hiding at least part of your garden. I have seen people hide their gardens by growing edible plants in flower beds close to their house.  Some foods, like parsnips, potatoes and carrots, grow underground and are even less obvious to the uninitiated. Sunchokes are also easy to hide. The edible part grows underground and most people have no idea what they are. |
||||||
|
LivestockTo help meet your protein needs you might also want to keep some type of livestock. There are many animals to consider, depending on space and local zoning laws. Goats will provide milk as well as meat. Chickens will provide eggs and meat. For city dwellers the most practical animals to keep are pigeons and rabbits. Pigeons are too messy for me so I greatly prefer rabbits. Rabbit meat is delicious and healthy. Rabbits are extremely prolific and will eat just about any plant materials. Don't throw your corn husks into the compost! They are a favorite food for rabbits! Rabbits do not take up much space. They are quiet and easy to hide from your neighbors. We have a small one-car garage where we keep six rabbit hutches along with my garden tiller, lawn mower, a stash of twelve 20 lb propane tanks and a few bails of hayAnd we still have room for our car as well! Florida Whites are the best breed to keep for survival food when there are space limitations to consider. It is a compact breed that has been developed especially for meat production. They are a medium-sized breed, but they produce the greatest amount of meat per pound of feed consumed. And the meat is excellent! They also require much smaller hutches than the larger breeds and so they take up less space. They are perfect for city survivors. I built these six hutches (above), each measuring 2x2x3 feet, for my Florida Whites using the instructions found in my favorite rabbit book, Storey's Guide to Raising Rabbits by Bob Bennett. To get the most from my limited space the hutches are hung from the joists in the ceiling of my garage. Worm bins underneath the rabbit hutches help keep odors and flies to a minimum. Worms love rabbit manure and are happy to speed up the decomposition process producing rich soil for the garden. Rabbit manure is the best fertilizer available for your garden and is highly prized by growers everywhere. It can go directly from beneath your rabbit hutches to your garden without any danger of burning your plants. Even if I didn't eat meat I think I would keep rabbits just for this "black gold" for my garden. These Florida Whites are "sharing" a plantain leaf. The best food for your rabbits is the pellets that you purchase at hardware and feed stores. These should form the bulk of their diets, but you can supplement with hay, "weeds" (that have not been sprayed with herbicides), and vegetable waste from your kitchen. Rabbits enjoy the parts of the vegetables that you would normally throw in the compost, including corn husks, carrot tops, cores, skins, etc. They absolutely love blackberry leaves, grape leaves, plantains and dandelions. Comfrey is an excellent food and a medicine as well and is easy to grow in your garden. Blackberry leaves are also good medicine for your rabbits, particularly good for diarrhea (which is probably due to overfeeding your rabbitsthe most common mistake that rabbit owners make.) It is a good idea to keep a few bails of hay (not straw) on hand for supplemental food, nesting material, and for emergency food for your emergency food. |
||||||
|
Action Step 10: Food Check Lists - Growing Your OwnTurn to the page in you Action Planner where you have begun your "Get" and "Do" lists for Food. Add to your lists the items that you want to acquire and the things that you want to accomplish to help you prepare for growing some of your own food. You might include items such as gardening equipment, and books pertaining to organic gardening and growing livestock. As you progress through the remainder of this web site you will think of other things to add to your lists. When you acquire an item or accomplish a task check it off your list. |
||||||
Recommended Reading: |
||||||
Recommended Products: |
||||||
|
||||||
|
Take
a stand against Socialized Medicine |


Dkat AutoMart
Menu
SELL CAR
VEHICLES
MY ADs
ADMIN
ORDERS
Purchase Car
Toyota Hilux
Car price: Ush 2,800,000
Your price
Contact Seller
Request Call Back
ORDER
Cancel


Page 1 of 1
More advanced link system.
Posted:
Tue Jul 17, 2007 3:33 pm
by Vitriol
The link system in Xenimus is minimal at best. Id like to see a screen with a list of members, the ability to give members "ranks" and other information.
Also, built in voice chat would be fantastic. (total pipe dream I know)
Right now if you want someone off your link and you cant find them you have to break the entire link. The link screen would allow you to kick/mute linkmembers.
Posted:
Tue Jul 17, 2007 3:50 pm
by thadiusofx3
having an actual chat area would help, not just letters appearing in the top left of your screen
Re: More advanced link system.
Posted:
Tue Jul 17, 2007 4:28 pm
by 9sam1
Vitriol wrote:The link system in Xenimus is minimal at best. Id like to see a screen with a list of members, the ability to give members "ranks" and other information.
Also, built in voice chat would be fantastic. (total pipe dream I know)
Right now if you want someone off your link and you cant find them you have to break the entire link. The link screen would allow you to kick/mute linkmembers.
Sounds good, kind of like a guild thing.
Posted:
Wed Jul 18, 2007 8:15 pm
by Thunderhorse8128
I would like to be able to talk to people on my link like on XBOX Live or PSN with a headset and stuff, I think that would be sweet, a goal for when it gets to WoW popularity. say in 2015 or something.
Posted:
Wed Jul 18, 2007 8:15 pm
by Thunderhorse8128
I would like to be able to talk to people on my link like on XBOX Live or PSN with a headset and stuff, I think that would be sweet, a goal for when it gets to WoW popularity. say in 2015 or something.
Posted:
Wed Jul 18, 2007 9:31 pm
by Ratiotile
I don't think implementing voice chat will be easy. There are already free programs like teamspeak and ventrillo that people have used to talk to clanmates for years, so it needn't be high priority.
Posted:
Thu Jul 19, 2007 12:54 am
by thadiusofx3
there are free open source voice chat libraries (like libjingle) that could be used with very little coding to be done
Posted:
Thu Jul 19, 2007 2:07 am
by ziggman
i never liked how you can talk to people on WoW, i dont like using the feature and i dont really like it when other people use it.
Listening to some person jabber on about useless garbage was very annyoing
Posted:
Thu Jul 19, 2007 10:09 am
by thadiusofx3
Other people, including myself like that, so it could be put in as an option, not a requirement.
Posted:
Thu Jul 19, 2007 12:00 pm
by Vitriol
I didnt really want the thread to go in the direction of voice chat but whatever lol.
Its certainly not something we need to worry about for quite some time. Teamspeak should suffice.
Posted:
Mon Jul 23, 2007 12:25 am
by JSunJShineR
Voice chat will help the game enormously in the fact that we plan on having more things such as raids, shrines will be hard you will need cooperation and you can't type fast enough sometimes or you have to type so much to implement the message for everyone to understand. It just seems like common sense to want to be able to communicate with your partners in a game quicker and easier. Certainly if we can figure out a way to put this into the game we can find a way to mute people. Oviously the game will start and it will be off because it is an option. If you can't stand minimal human interaction through voice chat than thats a problem. I have no intention of being a complete bum but it is an apparent facter when making a game and that should be implemented. I am sorry if I come off strong, my best regards to all.=)
-Jeff


{% extends "base.html" %} {% block title %}
Medieval catalogues > BENEDICTINES: THE SHORTER CATALOGUES > Norwich > Extracts from the obedientiary rolls, 1273-1317
{% endif %}17 identified entries found.
All data was derived from the List of Identifications by Professor Richard Sharpe.
{% if not printing %}
A key to codes used in the List is available (opens in new tab).{% endif %}


Specify below the details of your Tideflow install. You can also scan Tideflow's QR barcode.
{{flowUrl}}


--- layout: post status: publish published: true title: ! 'Sad Sad days.. ' author: display_name: iguy login: iguy email<EMAIL_ADDRESS>url: '' author_login: iguy author_email<EMAIL_ADDRESS>wordpress_id: 140 wordpress_url: http://itsjustanotherlayer.com/?p=140 date: !binary |- MjAwOS0wNC0wMyAxNDoyNzozMSAtMDUwMA== date_gmt: !binary |- MjAwOS0wNC0wMyAxNDoyNzozMSAtMDUwMA== categories: - Uncategorized tags: - ibm - java - rackable - sgi - sun - takeovers - x86 comments: [] ---
Sun to be bought by IBM for $7 billion. SGI bought by Rackable for $25 million.
The SGI purchase I can understand as Rackable wants to be a one stop shop for their customers. SGI has been on a downward spiral for years. Who needs to buy a super expensive custom OS/Hardware to do graphics processing or HPC when I can get commodity hardware and do just as well if not better?
The Sun purchase doesn't make much sense to me. IBM has no need/want for a new OS and it sure can't be for the sales force/contacts that Sun has. I can think two things that it "might" want. One is to expand their server hardware line to AMD though why? IBM is well known for their "better than Intel" line of Intel x86 chips and Sun is of the same quality generation in AMD terms. The other thing I can think of is that IBM wants to take full control of the Java Stack. They have a heavy investment in WebSphere and is one of their more profitable product lines so why not take control all the way down if you can?


Get your code under control
in a series of small, specific steps.
Then sign up on the mailing list for updates and information.
There you are, working late for the second night this week. Everyone else in the office has gone home. Most of the lights are out. Yesterday you were trying to copy a feature to a different section of the site, because marketing wanted their new client to see it there. Today, you have just finished tracking down a globals-related bug in an SQL query embedded in a page script. It revealed itself only after yesterday's feature addition. You had to search across dozens of files to find it. You commit the change, push it to the common repository, and update the bug report so that QA can check on it.
As you pack up to go home for the night, you are still frustrated and worried. Who knows what new bug this fix will reveal? The work should not be this hard.
You were so excited when you got the job. The interviews went well. You clearly knew more than almost everyone else there. The other developers seemed like they really needed your help and expertise. The managers gave you a new laptop and a new LCD screen so you could be as efficient as possible. It was the perfect setup. You were eager to get to work showing off your skills and abilities to make the application sing, and get the project back on schedule.
But then you checked out the code base. It was a mess. It had been architected over several years by multiple different lead developers, and it showed. There was no consistent pattern to any of the structure. The oldest core of the system was a collection of include files that ran several levels deep. Later, someone bolted on some class-oriented libraries, and third person decided to try a framework rewrite. All of it was done in different coding styles, with different naming conventions. The codebase is full of files that contain a mixed-up aggregagation of PHP, HTML, SQL, JS, and CSS. And the "tests," such as they were, consisted of the QA team running over the site once or twice a week and filing bug reports.
 It's humiliating. Each day has been a new frustration, a new "WTF?" moment replayed in a dozen different ways. You want very much to improve the codebase, so that you can impose some sense and reason onto it, but it is such an tangled mess of spaghetti that you don't even know where to start.
It seems hopeless. Overwhelmed and drowning in bad code that you inherited from earlier developers, you feel ready to give up.
But what if I told you it didn't have to be this way? What if I told you there was a specific series of small, incremental changes you could apply steadily over time to make your PHP code better and more modern, and make your working life easier and more enjoyable? Wouldn't you like to have a plan like that written down for you, distilled into an easy-to-follow list of instructions?
My name is Paul M. Jones and my book, Modernizing Legacy Applications in PHP, does exactly that. Using my conference talk It Was Like That When I Got Here as a starting point, I condense 15 years experience in fixing PHP codebases down to a series of small, specific steps toward modernizing your application.
As you apply these incremental fixes in order, each one building on the last, you will steadily transform your codebase from a spaghetti mess to an organized, modern, testable application, free of globals and mixed concerns. And your application will continue to run as each step is completed.
The book is available at https://leanpub.com/mlaphp. Every purchase includes free updates, so as the book gets revised with updated content, that content is also yours.
After you purchase the book, join the mailing list below to receive updates and information about the legacy applications. (Or sign up before you purchase, whichever you prefer!)
I promise, you'll never receive any spam or other unwanted messages on this list. Add your email today!


#travelgoals
Destination
About
My Travel Page
Let's explore the world together!
Discover Places
HIGHLIGHTS
Miami
USA
Munich
Germany
Barcelona
Spain


Freegal
If you love to download music and want to get it for free, the SAPL library’s music service is Freegal. You can download the Freegal app too. The service stands for “free and legal” and the fees are underwritten by the library. There are no ads on Freegal.
There are some key guidelines to note:
- the download limit is five songs per week.
- Freegal resets on Mondays, so you can turn to the app and get more songs.
- the primary source for Freegal is the Sony catalog, and the database updates daily.
- the Sony catalog is vast with a great variety of music. The catalog holds tens of thousands of albums and millions of songs. The catalog has over 28,000 music labels.


The Challenge
Springbox recently rebranded and launched a new website, complete with new offerings. They needed to get the word out — and grow brand awareness among both current and potential clients. What’s more, as champions of a fully evolved digital ecosystem, they needed a social presence that worked in tandem with the new site to generate interest and leads.
The Strategy
In order to build a fully flushed out social strategy, we audited Springbox’s social channels and did competitor research to find out what was working in the agency industry. We also did internal interviews and surveys in order to define a consistent social voice and tone. Based on our research we provided channel recommendations, content buckets and examples, and we outlined a voice that was professional, but playful — like Springbox itself.
To announce the launch, I designed and executed a paid social campaign to grow Springbox’s audience on Twitter and LinkedIn. I also managed the Springbox content calendar and oversaw all social and blog content creation.
The Results
Engagement rates increased, and we saw follower growth on both Twitter and LinkedIn, as well as a significant increase in traffic to the new website from social.


{include file="public/icon" /}
{include file="header/header" /}
Ferre
最好的时光 in
Heater
Thanks for your reading
The time line of the
Heater
{volist name="arti" id="art"}
{$art.title}
{$art.content}
{/volist}
{include file="footer/footer" /}
{include file="public/base-js" /}


Lets give Honour to our Farmers
Most of the world's poor, newrly 2.5 billion people, live off the land. These smallholder farmers survive by farming in small plots of land about the size of a football field. Their are 500 million farms that produce more than 70% of the global food supply, yet many people living on these farms are themselve struggling to survive. Our companies provide smallholder farmers with solutions that improve their productivity, by giving them access to markets and ultimately increase their incomes.
Our Farmers


Library list_samples
Require Import Nat.
Require Import PeanoNat.
Require Import ZArith.
Require Import Znumtheory.
Require Import BinInt.
Require Import Arith Psatz.
Open Scope nat_scope.
Lemmas 11-15 are Properties of Lists of Non-Negative Integers
Inductive natlist : Type :=
| nil
| cons (n : nat) (L : natlist).
Notation "x :: L" := (cons x L)
(at level 60, right associativity).
Notation "[ ]" := nil.
Notation "[ x ; .. ; y ]" := (cons x .. (cons y nil) ..).
The function repeats numbers. For example,
this should return the list [5;5;5;5;5;5;5]:
Compute (repeat 5 7).
Fixpoint repeat (n count : nat) : natlist :=
match count with
| O => nil
| S count' => n :: (repeat n count')
end.
match count with
| O => nil
| S count' => n :: (repeat n count')
end.
The function returns the length of the list. For example, this should return 5:
Compute (length [1;2;4;8;16]).
Fixpoint length (L:natlist) : nat :=
match L with
| nil => O
| h :: t => S (length t)
end.
match L with
| nil => O
| h :: t => S (length t)
end.
The function appends one list at the end of another. For example,
this should return [1;2;4;8;16;3;5]:
Compute (app [1;2;4;8;16] [3;5]).
Fixpoint app (L1 L2 : natlist) : natlist :=
match L1 with
| nil => L2
| h :: t => h :: (app t L2)
end.
match L1 with
| nil => L2
| h :: t => h :: (app t L2)
end.
Appending lists will be expressed as an infix operator ++
Notation "x ++ y" := (app x y)
(right associativity, at level 60).
(right associativity, at level 60).
The function to reverse a list. For example, (rev [1,2,3])
is [3,2,1]
Fixpoint rev (L:natlist) : natlist :=
match L with
| nil => nil
| h :: t => rev t ++ [h]
end.
match L with
| nil => nil
| h :: t => rev t ++ [h]
end.
The function returns the list of all natural numbers from 1 to n.
It is empty, if n=0
Fixpoint rangeTo(n:nat): natlist :=
match n with
| 0 => []
| (S n') => (rangeTo n') ++ [n]
end.
Fixpoint nonzeros (l:natlist) : natlist :=
match l with
| nil => nil
| 0 :: t => nonzeros(t)
| h :: t => h :: nonzeros(t)
end.
Example test_nonzeros:
nonzeros [0;1;0;2;3;0;0] = [1;2;3].
Proof.
simpl. reflexivity.
Qed.
Fixpoint oddmembers (l:natlist) : natlist :=
match l with
| nil => nil
| h :: t => if odd h
then h :: oddmembers(t)
else oddmembers(t)
end.
Example test_oddmembers:
oddmembers [0;1;0;2;3;0;0] = [1;3].
Proof. simpl. reflexivity. Qed.
Definition countoddmembers (l:natlist) : nat :=
length (oddmembers l).
Example test_countoddmembers1:
countoddmembers [1;0;3;1;4;5] = 4.
Proof. simpl. reflexivity. Qed.
Example test_countoddmembers2:
countoddmembers [0;2;4] = 0.
Proof. simpl. reflexivity. Qed.
Example test_countoddmembers3:
countoddmembers nil = 0.
Proof. simpl. reflexivity. Qed.
match n with
| 0 => []
| (S n') => (rangeTo n') ++ [n]
end.
Fixpoint nonzeros (l:natlist) : natlist :=
match l with
| nil => nil
| 0 :: t => nonzeros(t)
| h :: t => h :: nonzeros(t)
end.
Example test_nonzeros:
nonzeros [0;1;0;2;3;0;0] = [1;2;3].
Proof.
simpl. reflexivity.
Qed.
Fixpoint oddmembers (l:natlist) : natlist :=
match l with
| nil => nil
| h :: t => if odd h
then h :: oddmembers(t)
else oddmembers(t)
end.
Example test_oddmembers:
oddmembers [0;1;0;2;3;0;0] = [1;3].
Proof. simpl. reflexivity. Qed.
Definition countoddmembers (l:natlist) : nat :=
length (oddmembers l).
Example test_countoddmembers1:
countoddmembers [1;0;3;1;4;5] = 4.
Proof. simpl. reflexivity. Qed.
Example test_countoddmembers2:
countoddmembers [0;2;4] = 0.
Proof. simpl. reflexivity. Qed.
Example test_countoddmembers3:
countoddmembers nil = 0.
Proof. simpl. reflexivity. Qed.
Do not modify this line: sample2_11
Lemma concat_nil_r: forall L: natlist, L ++ [] = L.
Proof.
intros L.
induction L as [| n LL IHL].
simpl. reflexivity.
simpl.
rewrite IHL.
reflexivity.
Qed.
Lemma concat_h_tail_tail: forall (n:nat) (L1 L2: natlist),
(n::L1)++L2 = n::(L1++L2).
Proof.
intros n L1 L2.
induction L1 as [| m L1TAIL IH].
simpl. reflexivity.
simpl. reflexivity.
Qed.
Lemma concat_assoc:
forall L1 L2 L3: natlist, (L1 ++ L2) ++ L3 = L1 ++ L2 ++ L3.
Proof.
intros L1 L2 L3.
induction L1 as [| n L1TAIL IH].
simpl. reflexivity.
pose (concat_h_tail_tail n L1TAIL L2) as H2. rewrite H2.
simpl.
rewrite IH. reflexivity.
Qed.
Lemma sample2_11: forall L1 L2 : natlist,
rev (L1 ++ L2) = rev L2 ++ rev L1.
Proof.
intros L1 L2.
induction L1 as [| n L11 IHL1].
simpl.
pose (concat_nil_r (rev L2)) as H2. rewrite H2.
reflexivity.
simpl. rewrite IHL1.
pose (concat_assoc (rev L2) (rev L11) [n]) as H3.
exact H3.
Qed.
Do not modify this line: sample2_12
Lemma concat_single: forall (n:nat) (L:natlist),
n::L = [n] ++ L.
Proof.
intros n L.
induction L as [| m LTAIL IH].
simpl. reflexivity.
simpl. reflexivity.
Qed.
Lemma sample2_12: forall L : natlist,
rev (rev L) = L.
Proof.
intros L.
induction L as [| n LTAIL IH].
simpl. reflexivity.
pose (concat_single n LTAIL) as H1.
rewrite H1.
pose (sample2_11 [n] LTAIL) as H2.
rewrite H2.
pose (sample2_11 (rev LTAIL) (rev [n])) as H3.
rewrite H3.
rewrite IH. simpl. reflexivity.
Qed.
Do not modify this line: sample2_13
Lemma sample2_13: forall L1 L2 L3 L4 : natlist,
L1 ++ (L2 ++ (L3 ++ L4)) = ((L1 ++ L2) ++ L3) ++ L4.
Proof.
intros L1 L2 L3 L4.
pose concat_assoc as H1.
rewrite H1.
rewrite H1.
reflexivity.
Qed.
A longer proof can use associativity with special substitutions,
but this is longer.
See the Theorem 'rev_injective' from the Coq textbook
Lists: Working with Structured Data.
This lemma tells that reversing a list is an injection: different lists
must lead to different reversed lists.
Lemma sample2_13: forall L1 L2 L3 L4 : natlist, L1 ++ (L2 ++ (L3 ++ L4)) = ((L1 ++ L2) ++ L3) ++ L4. Proof. intros L1 L2 L3 L4. pose (concat_assoc L1 L2 L3) as H1. rewrite H1. pose (concat_assoc L1 (L2 ++ L3) L4) as H2. rewrite H2. pose (concat_assoc L2 L3 L4) as H3. rewrite H3. reflexivity. Qed.
Do not modify this line: sample2_14
Lemma list_refl: forall L: natlist, L = L.
Proof. reflexivity. Qed.
Lemma sample2_14: forall L1 L2 : natlist, rev L1 = rev L2 -> L1 = L2.
Proof.
intros L1 L2.
intros H.
pose (list_refl (rev (rev L1))) as H1.
rewrite H in H1 at 2.
pose (sample2_12 L1) as H2.
pose (sample2_12 L2) as H3.
rewrite H2 in H1.
rewrite H3 in H1.
exact H1.
Qed.
Do not modify this line: sample2_15
In an increasing sequence there are all positive integers from 1 to 2004; every number is written exactly once. We remove all numbers that are written in the positions n=1, n=4, n=7, n=10, and so on. From the remaining sequence we again remove all numbers in the positions n=1, n=4, n=7, n=10.
We repeat this procedure until there is only one number left. Which one is it?
Fixpoint sample15_rm_one_third (L: natlist) : natlist :=
match L with
| nil => nil
| h1 :: nil => nil
| h1 :: h2 :: nil => h2 :: nil
| (h1 :: h2 :: h3 :: t) => h2 :: h3 :: (sample15_rm_one_third t)
end.
match L with
| nil => nil
| h1 :: nil => nil
| h1 :: h2 :: nil => h2 :: nil
| (h1 :: h2 :: h3 :: t) => h2 :: h3 :: (sample15_rm_one_third t)
end.
These are 10 unit tests. Once the function is
defined correctly, each proof here can be replaced
by 'Proof. simpl. reflexivity. Qed' or similar.
Example sample15_test0: sample15_rm_one_third [] = [].
Proof. simpl. reflexivity. Qed.
Example sample15_test1: sample15_rm_one_third [1] = [].
Proof. simpl. reflexivity. Qed.
Example sample15_test2: sample15_rm_one_third [1;2] = [2].
Proof. simpl. reflexivity. Qed.
Example sample15_test3: sample15_rm_one_third [1;2;3] = [2;3].
Proof. simpl. reflexivity. Qed.
Example sample15_test4: sample15_rm_one_third [1;2;3;4] = [2;3].
Proof. simpl. reflexivity. Qed.
Example sample15_test5: sample15_rm_one_third [1;2;3;4;5] = [2;3;5].
Proof. simpl. reflexivity. Qed.
Example sample15_test6: sample15_rm_one_third [1;2;3;4;5;6] = [2;3;5;6].
Proof. simpl. reflexivity. Qed.
Example sample15_test7: sample15_rm_one_third [1;2;3;4;5;6;7] = [2;3;5;6].
Proof. simpl. reflexivity. Qed.
Example sample15_test8: sample15_rm_one_third [1;2;3;4;5;6;7;8] = [2;3;5;6;8].
Proof. simpl. reflexivity. Qed.
Example sample15_test9: sample15_rm_one_third [1;2;3;4;5;6;7;8;9] = [2;3;5;6;8;9].
Proof. simpl. reflexivity. Qed.
Proof. simpl. reflexivity. Qed.
Example sample15_test1: sample15_rm_one_third [1] = [].
Proof. simpl. reflexivity. Qed.
Example sample15_test2: sample15_rm_one_third [1;2] = [2].
Proof. simpl. reflexivity. Qed.
Example sample15_test3: sample15_rm_one_third [1;2;3] = [2;3].
Proof. simpl. reflexivity. Qed.
Example sample15_test4: sample15_rm_one_third [1;2;3;4] = [2;3].
Proof. simpl. reflexivity. Qed.
Example sample15_test5: sample15_rm_one_third [1;2;3;4;5] = [2;3;5].
Proof. simpl. reflexivity. Qed.
Example sample15_test6: sample15_rm_one_third [1;2;3;4;5;6] = [2;3;5;6].
Proof. simpl. reflexivity. Qed.
Example sample15_test7: sample15_rm_one_third [1;2;3;4;5;6;7] = [2;3;5;6].
Proof. simpl. reflexivity. Qed.
Example sample15_test8: sample15_rm_one_third [1;2;3;4;5;6;7;8] = [2;3;5;6;8].
Proof. simpl. reflexivity. Qed.
Example sample15_test9: sample15_rm_one_third [1;2;3;4;5;6;7;8;9] = [2;3;5;6;8;9].
Proof. simpl. reflexivity. Qed.
This function is supposed to return the last number that
remains, if we apply 'sample15_rm_one_third' until
the last number remains.
Fixpoint recursive_remove (j:nat) (k:nat) (L:natlist) (M:natlist): nat :=
match k with
| 0 =>
match M with
| nil => 0
| MHead :: MTail => MHead
end
| S k' =>
match L with
| nil =>
match M with
| nil => (recursive_remove 0 k' [] [])
| MHead::nil => (recursive_remove 0 k' [] [MHead])
| MHead::MTail => (recursive_remove 1 k' (MHead::MTail) [])
end
| LHead::LTail =>
match j with
| 1 => (recursive_remove 2 k' LTail M)
| 2 => (recursive_remove 3 k' LTail (M++[LHead]))
| _ => (recursive_remove 1 k' LTail (M++[LHead]))
end
end
end.
Definition sample15_rm_until_last (L: natlist) : nat :=
match L with
| nil => 0
| LHead::nil => LHead
| _ => recursive_remove 1 (3*(length L)) L []
end.
Example sample15_test10: sample15_rm_until_last [] = 0.
Proof. simpl. reflexivity. Qed.
Example sample15_test11: sample15_rm_until_last [1] = 1.
Proof. simpl. reflexivity. Qed.
Example sample15_test12: sample15_rm_until_last [1;2] = 2.
Proof. simpl. reflexivity. Qed.
Example sample15_test13: sample15_rm_until_last [1;2;3] = 3.
Proof. simpl. reflexivity. Qed.
Example sample15_test14: sample15_rm_until_last [1;2;3;4] = 3.
Proof. simpl. reflexivity. Qed.
Example sample15_test15: sample15_rm_until_last [1;2;3;4;5] = 5.
Proof. simpl. reflexivity. Qed.
The following lemma may cause Coq to crash, so it was replaced
by a simple 'Compute' call instead of a proper testcase:
Lemma sample2_15: (sample15_rm_until_last (rangeTo 2004)) = 1598. Proof. simpl. reflexivity. Qed.
Compute (sample15_rm_until_last (rangeTo 2004)).
Close Scope nat_scope.


Binding Classes
bold
italic
The quick brown fox jumps over the lazy dog.
The five boxing wizards jump quickly.


You are sitting in your isolated Antarctic work station monitoring the size of the atmospheric ozone hole. Truth be told, this doesn't occupy a whole lot of your attention, and you are without much enthusiasm twiddling the dial on your short-wave radio, hoping to pick up something to get you to the next hour. You're about to settle into a Chilean weather report when the radio suddenly stops working -- just static.
Then through the clicking and squealing you hear quite distinctly:
"Greetings, carbon-based creature!"
The surprising part is that the voice is a dead-on match for Mr. Rogers.
First contact! You grab your microphone. What can you say now, at perhaps THE critical juncture in human history? Amazingly, you can still think logically, and you consider that if "carbon-based" is worthy of alien comment, then ....
"Greetings," you respond, "non-carbon-based creature!"
"Very good!" chuckles Mr. Rogers.
Now what? Should you try to reach the Strategic Air Command to warn about flying saucers soon to hover over Washington? You decide to take instead the historic path towards friendly encounter.
"How is it going on Alpha Centauri?" A wild guess, you admit, but who knows?
"I am sorry," the alien responds. "Please provide the missing antecedent of the impersonal pronoun you used and I will be able to describe its mechanism of locomotion."
Hmmmmm. This is going to be more difficult than you thought.
"Never mind... How are things on your end?"
"Anterior or posterior?"
"...???."
Commentary
As you can see, English may not be the language of choice for a first encounter with ETs. You may consider this an insight of little practical value, but no, we face a similar problem all the time, even now: How do you communicate with computers?
Note that this is a more difficult problem than the one you faced in the Antarctic. The alien, one would suspect, accepted that you were conscious being and could use that fact to try to figure out what you mean. Computers - at least at present - have no internal model for your mind, and without one, understanding natural human languages is impossible.
And yet, we must communicate with computers, because we need them to do what we can't do by ourselves: direct complex manufacturing processes, coordinate sprawling communication systems, analyze huge sets of biological data. You might respond, "Why do I have to communicate with a computer? I don't communicate with my toaster.. I just put in the bread and push the button. " That would be fine if we could build a machine for every task at hand. But there are too many tasks, tasks whose processes must be continuously modified. Instead we have built a general machine - the digital computer - and are left with the problem of how to tell it what we want it to do.
We need a well-defined, formal language.
To some extent, English is a formal language. It has forms. For example:
It is also recursive - forms can lie within forms - leading to the possibility of endless variation. For example:
Nonetheless, English is a mess. To talk to a computer, we need something much more regular and unambiguous. Let's start small, building a language that ought to provide the best chance of allowing humans to speak to computers. It will have the following properties:
From this groundwork, we'll build a language through which we can talk arithmetic to the computer. If we can't do even that, we're doomed.
Let's do it.
Before you begin the tour:
This tour requires you to be in "BioBIKE" mode (particularly in define-function part). Please run the following test.>>(biobike-mode?)If Nil is returned, you need to enter:
>>(biobike-mode)Please enter the sticks-world. (There are few things you'll need that are only accessible in this world.)
>>(enter sticks-world)
The language we'll build will have two possible forms:
FORM TYPE 1: Thing(What did I just say?)
Try typing anything that pops into your head (and press Enter). If you've got writer's block, they try this:
>>I am Sam
Unknown asdfasdf
That's because you didn't type in a valid THING. OK - we can't avoid it -- what is a thing? According to the rules of the language, a thing may consist of any of the following:
>>"I am Sam"
>>*
>>true
>>Multiword symbol?and then this:
>>Multiword-symbol?
The error message will tell you what set of characters BioBIKE considers to constitute a single symbol.
FORM TYPE 2: Function (Do what I just said)
Functions are always of the form:
They:
What number and kinds of things or functions follow the name of a function depends on the nature of the function. A command that doesn't fit this form is not a valid function (of course that doesn't mean that everything that does fit the form is a valid function).
>>SPELL fish
>>(SPELL fish)
BioBIKE recognized that SPELL was the name of a function, because it is the first symbol after an opening parenthesis. But it is not a function BioBIKE understands. The second message was:Warning: While compiling these undefined functions were referenced:
SPELL.
Attempt to take the value of the unbound variable `FISH'
This one you've seen before. FISH isn't a valid thing. And it certainly isn't a function.
>>(SPELL "fish")
Now BioBIKE recognized "fish" to be a thing, but it complains that it never heard of the function named SPELL before.
>>(SPLIT "fish")
That's probably something like what you may have intended by (SPELL "fish")
Try this (put it in the big window, hereafter called the Program Box):
>>(DEFINE-FUNCTION Spell (word) >> (SPLIT word) >> )
>>(SPELL "fish")
The newly defined function SPELL took the thing it was given (represented internally by the symbol word) and gave it to the function SPLIT it into individual letters. These individual letters were returned to SPELL, which returned them to you.
Any function, whether it is automatically provided or you define it yourself, returns the value of the last form in the function and that value replaces the function itself. We'll see this in action momentarily.
Let's begin to define a language through which we can speak arithmetic to a computer. Our starting point is that the computer already knows one and only one predefined mathematical concept: ONE-MORE-THAN.
>>"|"Call the thing you got a stick. The outcome should not be a surprise.
>>(ONE-MORE-THAN *)
(Recall that the asterisk supplies the previous result returned by BioBIKE). You've just
written a valid function, because the form:
>>(ONE-MORE-THAN (ONE-MORE-THAN (ONE-MORE-THAN "|")))
Addition
Using the function "ONE-MORE-THAN", we can define a function that performs addition of two groups of sticks. Suppose we have two bundles of sticks:
We want to add these two bundles together, but the computer only knows how to add one stick at a time.
>>(ONE-MORE-THAN (ONE-MORE-THAN (ONE-MORE-THAN (ONE-MORE-THAN "|||"))))
This works though it's rather tedious to type ONE-MORE-THAN so many times.
But you get
the idea that
is broken down to:
The concept of addition is that each stick in the second bundle is added to the first bundle until all sticks are gone. Keeping this notion in mind, we will now try to define a function "ADD".
First, we will take a stepwise approach to understand the logic of defining a function called ADD.
>> (DEFINE bundle1 as "|||")
>> (DEFINE bundle2 as "||||")
Each successive iteration, the result is incremented by one stick. How many times should we perform the ONE-MORE-THAN operation? Exactly the same number as the number of sticks in bundle2.
This operation can be automated in a LOOP. In a loop, you set a statement
once, and the task is carried out repeatedly until the condition is met.
Let's try a simple loop.
>> (FOR-EACH stick in bundle2 >> (DISPLAY-LINE stick))You see all of the sticks in bundle2 displayed.
>> (FOR-EACH stick IN bundle2 >> INITIALIZE result = bundle1 >> (DISPLAY-LINE (ONE-MORE-THAN result)))The above may not work the way you expected – it just gives 1 + bundle1 sticks several times… because the result isn't UPDATED. To update:
>>(FOR-EACH stick IN bundle2 >> INITIALIZE result = bundle1 >> (ASSIGN result = (ONE-MORE-THAN result)) >> (DISPLAY-LINE result))This result shows that each turn in the loop returns the result that is one more than the previous result.
>>(DEFINE-FUNCTION ADD >> REQUIRED (bundle1 (AND) bundle2) >> INITIALIZE result = bundle1 >> BODY >> (LOOP FOR stick in bundle2 >> (DEFINE result AS (ONE-MORE-THAN result))) >> (RETURN-FROM Add result))
We just created a function called "ADD". Try:
>> (ADD "|||" AND "||||")
You've taught the computer how to do addition based on the predefined function ONE-MORE-THAN. Can you apply the same logic to define different arithmetic functions? Is it possible to define a function called subtraction with minimal modification to ADD?
Consider:
What is the nature of this function?
How do you explain subtraction in terms of our stick language, in the same way we explained addition above?
What missing concept do you need in order to define "subtract"?
1a. Extra Challenge!
Although the missing concept has been provide for you (if you can guess its name), You could also write a function yourself that doew the job, relying only on ONE-MORE-THAN plus logic. If you want to go this route, complete the following:
(DEFINE-FUNCTION my-function REQUIRED Fill-in INITIALIZE result = "" BODY (FOR-EACH UNTIL (EQUAL (Fill-in . . .) Fill-in) (DEFINE result AS Fill-in) ) (RETURN-FROM my-function result))
Using the mystery function supplied to you (or that you've written), and the following skeletal program, develop the function SUBTRACT:
>>(DEFINE-FUNCTION SUBTRACT >> REQUIRED (YOUR-ANSWER-HERE) >> INITIALIZE result = YOUR-ANSWER-HERE >> BODY >> (LOOP FOR stick IN YOUR-ANSWER-HERE >> (DEFINE result AS (YOUR-ANSWER-HERE))) >> (RETURN-FROM YOUR-ANSWER-HERE))
Press 'Do it' button, and you'll see that the program is now copied in your program box. You can make modification there to make it work.
Questions:
Question 1: Break multiplication down into operations that you've already taught the computer.
Develop a strategy by which a function might use these operations to understand multiplication.
Question 2: Develop a function MULTIPLY.
Question 3: Do the same for DIVIDE.


I have two passions: Coding and Photography! I love both for the same reason. They fall in that space where art and technology blend together. All photographs on this page are my own.
Below are a few of my web developer projects. Please visit my GitHub page to see more.
Full stack web application to help organize group orders for events such as lunch runs in the workplace.
- A group project. GitHub link
Technologies: React, React-router-dom, MongoDB, Mongoose, Express.js, Axios, Bootstrap, CSS
aMUSEme is an inspirational site that is meant to help creative people express themselves and find music, articles, and other artistic outlets to better the soul.
- A group project. GitHub link
Searches and displays animated gifs using the Giphy API. Click on the images to start and stop the animation.
Liri is a Node.js application that runs a search of concerts, songs, and movies based on search terms entered on the command line.
Bamazon is a student project to create an Amazon-like storefront using Node.js to update a product information database in MySQL.


--- layout: post status: publish published: true title: Console2 and x64 author: display_name: Tomas Restrepo login: tomasr email<EMAIL_ADDRESS>url: http://winterdom.com/ author_login: tomasr author_email<EMAIL_ADDRESS>author_url: http://winterdom.com/ wordpress_id: 548 wordpress_url: http://winterdom.com/2008/09/console2andx64 date: '2008-09-18 06:58:48 +0000' date_gmt: '2008-09-18 06:58:48 +0000' categories: - Tools - C++ tags: [] comments: - id: 369 author: Ben Hoffstein author_email<EMAIL_ADDRESS>author_url: http://hoffstein.myvidoop.com/ date: '2008-09-19 07:35:56 +0000' date_gmt: '2008-09-19 07:35:56 +0000' content: | That's great. I have been very eager to use Console2 on my Vista x64 machine. Any chance you'd be willing to share the binary somewhere? - id: 370 author: Tomas Restrepo author_email<EMAIL_ADDRESS>author_url: http://winterdom.com/ date: '2008-09-19 08:08:23 +0000' date_gmt: '2008-09-19 08:08:23 +0000' content: | I don't want to get in trouble for redistributing it publicly; I'd be much happier if the author managed to work around the issue (I may try when I have a bit more time to prepare a proper fix and share it). However, send me an email and I'll send you a copy. - id: 371 author: Steven Harman author_email<EMAIL_ADDRESS>author_url: http://stevenharman.net date: '2008-09-19 22:18:36 +0000' date_gmt: '2008-09-19 22:18:36 +0000' content: | Tomas, I think the license would actually allow you to redistribute the modified code and binaries... and it might also be a good idea to submit a bug report (and your hack as a possible patch) at the Console2 site. Just a suggestion - b/c I'd love to get ahold of a working copy of Console2 for x64 :) - id: 372 author: Jason West author_email<EMAIL_ADDRESS>author_url: http://blog.wezbiz.net date: '2008-10-14 07:48:51 +0000' date_gmt: '2008-10-14 07:48:51 +0000' content: | Same here. Have Vista now and would love to get Console2 running on it. Any chance you could post the bin for download? If not, then see if you could submit your work back to the project at SourceForge.net so that they may publish it for download. - id: 373 author: Tomas Restrepo author_email<EMAIL_ADDRESS>author_url: http://winterdom.com/ date: '2008-10-14 17:21:19 +0000' date_gmt: '2008-10-14 17:21:19 +0000' content: | Jason: I'm not going to post it; but feel free to send me an email and I'll send you a copy of my compiled binaries. - id: 374 author: tradsud author_email<EMAIL_ADDRESS>author_url: http://www.groke.org/blog date: '2008-11-05 13:10:57 +0000' date_gmt: '2008-11-05 13:10:57 +0000' content: | Thomas, thank you! I've used Console for years, and with my new machine was severely missing it. With your post I was able to get it up and running again. Thanks for taking the time to share! I've also posted the compiled exe on my blog if anyone else want's to take advantage of it: http://groke.org/blog/?p=75 - id: 1550 author: Upgrade and Zenburn the Console Window « Thoughtful Code author_email: '' author_url: http://thoughtfulcode.wordpress.com/2010/08/08/upgrade-and-zenburn-the-console-window/ date: '2010-08-08 19:51:54 +0000' date_gmt: '2010-08-08 19:51:54 +0000' content: "[...] by CSRSS while providing a richer user environment. I gave up on this thing when I started using Vista x64 because it was broken. It has matured a lot since then and the latest beta works great with Windows 7 [...]" ---
I recently mentioned that version 2.00b140 of the great Console utility had come out. Eddie Velasquez commented on that post that, unfortunately, Console didn't work correctly on Windows x64.
I had the opportunity to verify this during the last week. Console2 runs, but all text drawn on the console is invisible, which makes it a bit hard to read :-). I looked around the web, and although a few people mentioned seeing the same problem, no one offered any solutions. So I decided to take a look.
I installed Visual C++ 2008 on my x64 machine, downloaded the Console2 source code package and went hunting around for all dependencies needed to actually build it, which took a couple of hours. Off the top of my head, you need:
After a bit of tweaking the project files, I was able to build an x86 version of the code and started looking around the code to see where the problem might be. I checked a few things, like:
After a few hours of tinkering, I was able to narrow it down to one issue: the use of the AlphaBlend() function when blitting between the off-screen and on-screen surfaces. In fact, I'm fairly confident that the issue Console2 is running into is the same one described on this newsgroup post. Unfortunately, that didn't seem to point to a good workaround for the issue.
Now, my GDI programming isn't very fresh on my mind, and frankly, I didn't want to sit around for a long time trying to get this fixed. However, I was able to make a quick change to the code that would make it work. The changes are setting up the BlendFunction for AlphaBlend slightly different.
The change I did was around line 1979, changing the setup before AlphaBlend like this:
blendFn.BlendOp = AC_SRC_OVER;
blendFn.BlendFlags = 0;
blendFn.SourceConstantAlpha = 255;
blendFn.AlphaFormat = AC_SRC_OVER;
Now, to be honest, this is just a hack, but it does the trick for now, using ClearType for font rendering and even alpha transparency on the entire window. I was not able (at least not in my quick look at the code) to fix the code path that gets executed when you're using an image as the console background, since that actually does require full alpha-blending to render the right output.
So it's not a great fix, but it means I can use Console2 on my x64 box now, which is good enough for me at this point. YMMV.


JavaScript is disabled on your browser.
Skip navigation links
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
Prev Letter
Next Letter
Frames
No Frames
All Classes
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
R
S
T
U
V
Y
I
ImplicitTuple
- Class in
org.yaml.snakeyaml.events
The implicit flag of a scalar event is a pair of boolean values that indicate if the tag may be omitted when the scalar is emitted in a plain and non-plain style correspondingly.
ImplicitTuple(boolean, boolean)
- Constructor for class org.yaml.snakeyaml.events.
ImplicitTuple
init()
- Method in class org.yaml.snakeyaml.reader.
UnicodeReader
Read-ahead four bytes and check for BOM marks.
INT
- Static variable in class org.yaml.snakeyaml.nodes.
Tag
INT
- Static variable in class org.yaml.snakeyaml.resolver.
Resolver
is(Event.ID)
- Method in class org.yaml.snakeyaml.events.
AliasEvent
is(Event.ID)
- Method in class org.yaml.snakeyaml.events.
DocumentEndEvent
is(Event.ID)
- Method in class org.yaml.snakeyaml.events.
DocumentStartEvent
is(Event.ID)
- Method in class org.yaml.snakeyaml.events.
Event
is(Event.ID)
- Method in class org.yaml.snakeyaml.events.
MappingEndEvent
is(Event.ID)
- Method in class org.yaml.snakeyaml.events.
MappingStartEvent
is(Event.ID)
- Method in class org.yaml.snakeyaml.events.
ScalarEvent
is(Event.ID)
- Method in class org.yaml.snakeyaml.events.
SequenceEndEvent
is(Event.ID)
- Method in class org.yaml.snakeyaml.events.
SequenceStartEvent
is(Event.ID)
- Method in class org.yaml.snakeyaml.events.
StreamEndEvent
is(Event.ID)
- Method in class org.yaml.snakeyaml.events.
StreamStartEvent
isAllowReadOnlyProperties()
- Method in class org.yaml.snakeyaml.
DumperOptions
Report whether read-only JavaBean properties (the ones without setters) should be included in the YAML document
isAllowUnicode()
- Method in class org.yaml.snakeyaml.
DumperOptions
isCanonical()
- Method in class org.yaml.snakeyaml.
DumperOptions
isCompatible(Class<?>)
- Method in class org.yaml.snakeyaml.nodes.
Tag
Java has more then 1 class compatible with a language-independent tag (!!int, !!float, !!timestamp etc)
isEmpty()
- Method in class org.yaml.snakeyaml.util.
ArrayStack
isExplicitEnd()
- Method in class org.yaml.snakeyaml.
DumperOptions
isExplicitPropertyUtils()
- Method in class org.yaml.snakeyaml.constructor.
BaseConstructor
isExplicitPropertyUtils()
- Method in class org.yaml.snakeyaml.representer.
BaseRepresenter
isExplicitStart()
- Method in class org.yaml.snakeyaml.
DumperOptions
isMerged()
- Method in class org.yaml.snakeyaml.nodes.
MappingNode
isPrettyFlow()
- Method in class org.yaml.snakeyaml.
DumperOptions
isPrintable(char)
- Static method in class org.yaml.snakeyaml.reader.
StreamReader
isReadable()
- Method in class org.yaml.snakeyaml.introspector.
MethodProperty
isReadable()
- Method in class org.yaml.snakeyaml.introspector.
Property
isResolved()
- Method in class org.yaml.snakeyaml.nodes.
Node
Indicates if the tag was added by
Resolver
.
isTwoStepsConstruction()
- Method in class org.yaml.snakeyaml.nodes.
Node
Indicates if this node must be constructed in two steps.
isUseGlobalTag()
- Method in class org.yaml.snakeyaml.
JavaBeanDumper
Deprecated.
isWritable()
- Method in class org.yaml.snakeyaml.introspector.
MethodProperty
isWritable()
- Method in class org.yaml.snakeyaml.introspector.
Property
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
R
S
T
U
V
Y
Skip navigation links
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
Prev Letter
Next Letter
Frames
No Frames
All Classes