background preloader

Lethe

Facebook Twitter

Postmortem: Llopis and Friginal's Casey's Contraptions. 4. Not Enough Unit-Testing Noel is a big fan of unit testing and test-driven development (TDD). Those are some techniques we used in past projects to very good effect and something we definitely wanted to carry into Casey's Contraptions as well. The goal was never to have 100 percent unit-test coverage or write every single line of code through TDD, but to write only the tests that would benefit the project.

That usually meant some code that a lot of other code relied on (the game item management), or something complicated (toolbox interaction), or something prone to breaking (rope manipulation). In the end, we slipped to the side of not having as many unit tests as we would have liked. We should have taken the time when those problems started appearing to start writing some tests and slowly refactor the code as we fixed the bugs and added new features. 5.

The pricing model is something we went back and forth about several times during development. . - Release date: May 19, 2011 (iPad). Network switch. A network switch (sometimes known as a switching hub) is a computer networking device that is used to connect devices together on a computer network by performing a form of packet switching. A switch is considered more advanced than a hub because a switch will only send a message to the device that needs or requests it, rather than broadcasting the same message out of each of its ports.[1] Overview[edit] A switch is a device used on a computer network to physically connect devices together. Multiple cables can be connected to a switch to enable networked devices to communicate with each other. Switches manage the flow of data across a network by only transmitting a received message to the device for which the message was intended.

Network design[edit] An Ethernet switch operates at the data link layer of the OSI model to create a separate collision domain for each switch port. Applications[edit] Microsegmentation[edit] Role of switches in a network[edit] Layer-specific functionality[edit] Ethernet hub. 4-port Ethernet hub Some hubs may also come with a BNC and/or Attachment Unit Interface (AUI) connector to allow connection to legacy 10BASE2 or 10BASE5 network segments. The availability of low-priced network switches has largely rendered hubs obsolete but they are still seen in 20th century installations and more specialized applications. Technical information[edit] A network hub is an unsophisticated device in comparison with, for example, a switch. A hub does not examine or manage any of the traffic that comes through it: any packet entering any port is rebroadcast on all other ports.[2] Effectively, it is barely aware of frames or packets and mostly operates on raw bits or symbols.

Consequently, due to the larger collision domains, packet collisions are more frequent in networks connected using hubs than in networks connected using more sophisticated devices.[1] Dual-speed hub[edit] Uses[edit] Historically, the main reason for purchasing hubs rather than switches was their price. Data buffer. Applications[edit] Buffers are often used in conjunction with I/O to hardware, such as disk drives, sending or receiving data to or from a network, or playing sound on a speaker. A line to a rollercoaster in an amusement park shares many similarities. People who ride the coaster come in at an unknown and often variable pace, but the roller coaster will be able to load people in bursts (as a coaster arrives and is loaded).

The queue area acts as a buffer—a temporary space where those wishing to ride wait until the ride is available. Buffers are usually used in a FIFO (first in, first out) method, outputting data in the order it arrived. Telecommunication buffer[edit] A buffer routine or storage medium used in telecommunications compensates for a difference in rate of flow of data, or time of occurrence of events, when transferring data from one device to another.

Buffers are used for many purposes, including: Buffer versus cache[edit] A cache often also acts as a buffer, and vice versa. Input/output. In computing, input/output or I/O (or informally, io or IO) is the communication between an information processing system (such as a computer) and the outside world, possibly a human or another information processing system. Inputs are the signals or data received by the system, and outputs are the signals or data sent from it. The term can also be used as part of an action; to "perform I/O" is to perform an input or output operation. I/O devices are used by a person (or other system) to communicate with a computer. For instance, a keyboard or a mouse may be an input device for a computer, while monitors and printers are considered output devices for a computer.

Devices for communication between computers, such as modems and network cards, typically serve for both input and output. Note that the designation of a device as either input or output depends on the perspective. Interface[edit] An I/O interface is required whenever the I/O device is driven by the processor. Channel I/O[edit] I/O scheduling. Purpose[edit] I/O schedulers can have many purposes depending on the goal of the I/O scheduler. Some common ones are: Implementation[edit] I/O Scheduling usually has to work with hard disks which share the property that there is long access time for requests which are far away from the current position of the disk head (this operation is called a seek). To minimize the effect this has on system performance, most I/O schedulers implement a variant of the elevator algorithm which re-orders the incoming randomly ordered requests into the order in which they will be found on the disk. Common disk I/O scheduling disciplines[edit] See also[edit] References[edit] Operating Systems: Three Easy Pieces, by Remzi H.

FIFO. A priority queue is neither FIFO or LIFO but may adopt similar behaviour temporarily or by default. Queueing theory encompasses these methods for processing data structures, as well as interactions between strict-FIFO queues. Computer science[edit] Data structure[edit] Head or tail first[edit] Controversy over the terms "head" and "tail" exists in reference to FIFO queues. To many people, items should enter a queue at the tail, remain in the queue until they reach the head and leave the queue from there. This point of view is justified by analogy with queues of people waiting for some kind of service and parallels the use of "front" and "back" in the above example. Pipes[edit] In computing environments that support the pipes and filters model for interprocess communication, a FIFO is another name for a named pipe.

Disk scheduling[edit] Disk controllers can use the FIFO as a disk scheduling algorithm to determine the order to service disk I/O requests. Communications and networking[edit] First-come, first-served. First-come, first-served (FCFS) – sometimes first-in, first-served and first-come, first choice – is a service policy whereby the requests of customers or clients are attended to in the order that they arrived, without other biases or preferences. The policy can be employed when processing sales orders, in determining restaurant seating, on a taxi stand, etc. In Western society, it is the standard policy for the processing of most queues in which people wait for a service.

Festival seating (also known as general seating and stadium seating) is seating done on an FCFS basis. (See The Who concert disaster for details on a December 1979 disaster involving "festival seating" at a concert by The Who in Cincinnati, Ohio at the Riverfront Coliseum.) The practice is also common among some airlines which do not permit seat reservations either in advance or at check-in. Example[edit] Grammar[edit] The phrase is often but erroneously stated as "first come, first serve" (instead of "served").

LIFO (computing) LIFO is an acronym that stands for last in, first out. In computer science and queueing theory this refers to the way items stored in some types of data structures are processed. By definition, in a LIFO structured linear list, elements can be added or taken off from only one end, called the "top".[1] A LIFO structure can be illustrated with the example of a stack of trays. The last tray to be placed on top is also the first to be taken off the top. Stack structures in computing are extremely fundamental and important. It is fair to say that without the ability to organize data by order rearrangement, including links to executable code, computers would not be the flexible tools they are today, and exist solely as expensive special purpose calculators like the ENIAC of World War II having limited abilities and scope of application.[3] Jump up ^ Lipschutz, Seymour (1986).

Elevator algorithm. The elevator algorithm (also SCAN) is a disk scheduling algorithm to determine the motion of the disk's arm and head in servicing read and write requests. This algorithm is named after the behavior of a building elevator, where the elevator continues to travel in its current direction (up or down) until empty, stopping only to let individuals off or to pick up new individuals heading in the same direction.

Description[edit] When a new request arrives while the drive is idle, the initial arm/head movement will be in the direction of the cylinder where the data is stored, either in or out. As additional requests arrive, requests are serviced only in the current direction of arm movement until the arm reaches the edge of the disk. When this happens, the direction of the arm reverses, and the requests that were remaining in the opposite direction are serviced, and so on.[1] Variations[edit] Other variations include: Example[edit] Seek 1: 50 − 35 = 15Seek 2: 75 − 50 = 25Seek 3: 100 − 75 = 25. Cylinder (disk drive) Cylinder-head-sector, also known as CHS, was an early method for giving addresses to each physical block of data on a hard disk drive.

In the case of floppy drives, for which the same exact diskette medium can be truly low-level formatted to different capacities, this is still true. Though CHS values no longer have a direct physical relationship to the data stored on disks, virtual CHS values (which can be translated by disk electronics or software) are still being used by many utility programs.

Definitions[edit] CHS addressing is the process of identifying individual sectors on a disk by their position in a track, where the track is determined by the head and cylinder numbers. Tracks[edit] Cylinders[edit] A disk drive is a division of data in a disk drive, as used in the CHS addressing mode of a Fixed Block Architecture disk or the cylinder–head–record (CCHHR) addressing mode of a CKD disk. Sectors[edit] Blocks and clusters[edit] Heads[edit] CHS to LBA mapping[edit] Where is the LBA address, Voice over IP. Voice over Internet Protocol (VoIP) is a methodology and group of technologies for the delivery of voice communications and multimedia sessions over Internet Protocol (IP) networks, such as the Internet. Other terms commonly associated with VoIP are IP telephony, Internet telephony, voice over broadband (VoBB), broadband telephony, IP communications, and broadband phone service.

The term Internet telephony specifically refers to the provisioning of communications services (voice, fax, SMS, voice-messaging) over the public Internet, rather than via the public switched telephone network (PSTN). The steps and principles involved in originating VoIP telephone calls are similar to traditional digital telephony and involve signaling, channel setup, digitization of the analog voice signals, and encoding. Early providers of voice over IP services offered business models and technical solutions that mirrored the architecture of the legacy telephone network. Pronunciation[edit] Protocols[edit] Collision domain. Only one device in the collision domain may transmit at any one time, and the other devices in the domain listen to the network in order to avoid data collisions. Because only one device may be transmitting at any one time, total network bandwidth is shared among all devices. Collisions also decrease network efficiency on a collision domain; if two devices transmit simultaneously, a collision occurs, and both devices must retransmit at a later time.

Since data bits are propagated at a finite speed, simultaneously is to be defined in terms of the size of the collision domain and the minimum packet size allowed. A smaller packet size or a larger dimension would make it possible for a sender to finish sending the packet without the first bits of the message being able to reach the most remote node. So, that node could start sending as well, without a clue to the transmission already taking place and destroying the first packet. References[edit] External links[edit] Collision domain explained. Job Description - IT Business Consultant (1009377) Careers | Konica Minolta Business Solutions, U.S.A., Inc. Steps to becoming an IT consultant. Chip Camden, who has 20+ years of IT consulting experience under his belt, believes there's really only one requirement for becoming a consultant. Every other day or so I receive an email from a reader who asks, "please tell me what I need to do to become a consultant," as if there were some standard five-step process that magically bestows consultanthood upon anyone who checks off that list.

Sure, depending on your jurisdiction there might be business licensing requirements. Depending on your specialty, you might need to learn some things. But there is really only one requirement for becoming a consultant, and that requirement is shared by all successful business ventures: Provide a service for which people will pay you. Everything else is in furtherance of that goal.

Let's break it down a bit. Technical professionals, the true geeks anyway, often enjoy learning their trade -- and the more esoteric the better. But don't get discouraged if you don't. IT Consultants' Blog at TopITconsultant.com. Guidelines for formulating an RFP response. When a prospect presents you with a Request for Proposal (RFP), there are a number of factors to consider before you respond. IT consultant Chip Camden explains. Larger prospects, especially government agencies, often follow detailed policies and procedures for procuring suppliers, including consultants. Sometimes the procedure includes a document called Request for Proposal (RFP). An RFP announces to potential suppliers that a company has a need and is in search of someone to fill it. First, make sure you understand the process (not all entities follow the same flow). What is the deadline for responding? Find out what the prospect hopes to achieve with the RFP, so you can meet their expectations.

The project summary usually spells out the known requirements. How much do they know about what they're trying to achieve? Any information you can get out of the prospect will help, but often the RFP process stipulates limited contact in order to insure an equitable selection without favoritism. Customizable IT consultant sample contract.

Only novices daisy-chain switches. Do IT consultants have a right to reuse code? 10 ways to improve your client relationships. 10 personality traits of a highly effective independent consultant. How to determine your consulting fees. Synergy/DE - Products. Dibol - Home Page.