Fiber optic internet is the newest form of residential cable that is run either to your local distribution cabinet or to your house. Because the maximum bandwidth that can be put down a fiber cable it enables greater speeds along greater distances thanks to its physical properties (light).
A fiber optic cable can in some cases be used at 10Gbit/s but for residential its more likely 1Gbit/s or less.
Many ISPs will allow you to take advantage of fiber optic but limit the speeds for a reduction in price.
How Long Does it Take to Install Fiber?
Fiber optic cable will require physical replacement of the cable itself, if the ISP is installing fiber to your home they will need to set up and plan which route they will take to your property.
In most cases, they will be able to attach the new cable to the old media and pull it through to your property, but if they hit snags or can’t do that, it can take much longer.
A best-case scenario can be 10 minutes, a worst-case can be up to three months, especially if you have ordered fiber where it was not originally offered or you paid extra for installation. A typical installation can be 2 to 4 hours.
Will They Dig Up my Garden?
If you have ordered Fiber to the Home, they may require access to your property to install the Fiber, which may mean routing your cable from the street to a jack in your home.
If they need to install a brand new cable they will indeed need to bury the cable and will therefore, do some digging.
Is Fiber the Fastest Home Medium?
Yes, for residential installations fiber is the fastest. There also exists DOCSIS 3 and 3.1 which is also capable of 1Gbit/s speeds however it is not used as much.
If you do get fiber installed at your home, it may be a good idea to ensure you aren’t bottle-necking your connection by ensuring your router, any switches you have or the computer you are using is capable of the speeds you expect, and wherever possible use an Ethernet cable.
When a problem or solution requiring software is conceived it is essential that the software project is properly conveyed to the software house, agency or project staff creating the software. When constructing the document there are defined standards that the SRS may be structured to follow, such as IEEE Std 830-1998 which has been superseded by IEEE Std 29148-2011.
The document may also be written by the customer should the client choose to do so as it may provide more control of the specifications required in the project. Simply a Software Requirements Specification (SRS) could be titled ;
The introduction should indicate the expected behaviors of the software as clearly as possible detailing the processes, activities, interfaces, and tasks required by the software. The introduction can be muddied if the software is not already clearly conceptualized or thought out or is to be built onto existing software if the requirements are not understood by all parties. It may also be necessary to indicate the expected life cycle, phase-out period and maintenance required to maintain the performance and usability of the software. Users may also be considered.
An SRS document may state the purpose of the software which could be considered an ultimate end-goal of the resulting project and consider the project a failure if not met. It should conclude with affirming that this document specifies how the software should be designed, developed, tested and implemented where applicable. If the purpose is to improve the speed of current business processes then make it appear in the purpose section, if the purpose is to improve the usability of the current software used by staff then include it in the purpose section as well. If the software is also supposed to do something not included in the purpose or easily justified by this section, then it can be hard to justify why such a feature should exist in the project.
The scope of the document is to provide a description of what the document specification includes, such as use cases and requirements. Some of the program may be in multiple documents so the scope is necessary to reduce overlap between projects.
System Overview provides a description of the context, function and requirements of the software project.
References should indicate if the software is somewhat pre-existing, any references made in the document and references to appendixes should also be included too.
The overall description is the second section of the SRS document.
A product perspective is a detailed outlook of what the program should appear like to the users of the system, some software projects may be completely transparent to users, if so then the product perspective should outline the interfacing between other software components that make it so.
The overall description should not be vague, it should provide justification as to why the functions of the program are required.
The overall description should detail crucial cornerstones of the program and interfaces that exist with the hardware or software.
Some of the programs may be pre-existing which will require the project interface detailed and easily readable to be understood.
The Description should have six sections,
System Interfaces which the user may interact with the system or the system may interact with other systems.
User Interfaces which the users may interact with which may include the frequency of their usage and the intuitiveness of the design.
Hardware. Including the frequency of use of the hardware, considerations to the longevity of the hardware and ability to update or dispose of the hardware.
Software. Including external interfaces, naming conventions.
Communication and Telecom both in interfaces software to software and to the user.
Memory. Including minimum requirements.
Operations and processes that the program may perform real-time or batch, transaction or otherwise.
Adaptations and the ability to configure the system. For open source or high-security systems, this section may be larger than private or closed source software due to the need to ensure that it is secure or can be maintained or made depreciated quickly.
What are the limitations of the software?
What might the software fail to perform at?
What are the limitations of the programming language if selected?
How might this delay the project if risks arise?
What are the limitations of the users’ ability?
What training will need to take place in order to use the software effectively?
What does the software not do?
What happens if a user does not use the software as intended?
In most aspects of software engineering, there are simply parts of human nature and failure modes or edge cases that simply cannot always be mitigated, in such scenarios it is important to outline what steps your software has taken to make these issues not slow the productivity of the software and ensure that the system runs as intended part of this may be detailed in test cases written in the appropriate section.
Product Functions should as best as possible describe the function of the program and how the modules of the program if any will work together with the interfaces of the system to produce the software’s desired functions.
The aim of the section is to break down the large characteristics of the program into more readable and manageable sections that can be delegated out to a team or read to an individual clearly without much overlap to avoid confusing what the program is designed to accomplish and what each function does.
The functions should be organized and listed so that they may be read for the first time and understood effectively.
The section may include graphical sections or UML detailing how the program may operate.
The validity of the input.
Sequence diagrams or how the program may pass data between functions.
How the program accounts for abnormality.
Common input examples may be a good way of explaining the function to the reader and providing a sample of what the programmer should accomplish on each function.
When a user may use the system either from time to time (i.e. infrequently), once or many many times it is important to detail this information in the user characteristics section and account for this in the software, if the methods used to do something are contrived or confusing it could lead to increased mistakes or data mismanagement further down the line and increase the need for normalization or reconciliation of information.
It also may be applicable to detail why each user may need a function of the program.
The specific requirements should detail all of the requirements of the clients, the user and the software itself. It should provide suitable detail to enable the software to be written clearly and tested effectively. It should be stated for each requirement which user the requirement is for and if applicable that the test case corresponding to the requirement should be satisfied through cross-referencing other parts of the document.
The requirements should be clearly stated to prevent later mistakes or edge cases, poorly written requirements or poorly designed functions may cause the program to be unstable or possibly unsuitable for use. Proper error handling should be given to most aspects of the programs requirement and how it operates to meet the requirement.
Vagueness or Failings in test cases may allow for requirements to be deliberately misinterpreted, such as “The program must be fast and easy to use” may be considered easy to use for the programmer or tester, and therefore a suitable statement that the requirement is met, but not for the user who may not understand the inner workings of the software and therefore lack the knowledge to use the software effectively as much as the programmer testing the requirement, it may be a good idea to allow the users to try the functions using agile development and adapting the program accordingly.
The final part of the document should include the appendices and the index.
I have a long standing interest in monitoring my daily doings, I previously thought about putting a GPS tracker in my car, a good idea for both tracking my position and also checking to see if it has gone walkies (is stolen). I decided against doing this a while ago due to exams and lack of time to set the whole thing up. But I did decide to have a crack at this idea later with my phone.
The way I chose to go about this power hungry task was to use an app like IFTTT to record my position to a spreadsheet. But then I heard about owntracks, a purpose-built app for tracking your position. After setting up the owntracks server, MQTT and owntracks recorder. I now have a pretty good way of determining where I am at one time or another and have been using it for about 6 months.
My phone is a OnePlus 3 and as I said the app is fairly power hungry. Currently owntracks uses ~39% of my battery’s capacity based on 1 day 1 hour uptime. Although this seems fairly high I have accepted it as a fair compromise untill I can finish another GPS project I have in the works.
Here’s my experience of such a setup so far,
Battery usage increased significantly to a point where some users may not find it acceptable.
I had to turn off battery optimization and advanced battery optimization or else the app would stop.
The app does not always capture my location all of the time, sometimes it may be a few hours before it reports a significant change despite being in move monitoring mode or significant changes mode.
The performance and recording of positions in the app isn’t as good if the app does not have internet access all the time, so if data is switched off in my phone, the recording of the position isn’t as good as if it were on all the time, sometimes there can be large gaps where there was no internet access where it drops out.
My use case was for later analysis of the data, not realtime.
Owntracks recorder is not very featured but it does the job.
Many large businesses such as manufacturers or suppliers, factories or distribution centres have many Information Systems set up and designed to handle the large quantities of processes involved in conducting their function.
Large Information Systems
Some businesses are so large that their processes may require information systems to handle day-to-day business processes. One such example is order processing. Businesses with large order systems or large quantities of products to manufacture may only handle order processing through information systems.
One such information system used in a logistical setting is one that would be used to record inbound goods. Physical product businesses for example need to record incoming raw materials or ordered products to process them and turn them into a product. Without a centralised information system it can be very hard to keep track of stock levels, although maintaining the whereabouts of goods used by the business can be useful but in the real world some of these goods can go missing, be wasted, damaged or arrive having already being damaged. This is why information systems must be able to handle losses and inform stock keepers when the product is becoming depleted and must be re-ordered especially on systems that involve Kanban or Just in Time systems. This is one such example of where information systems must be able to handle all scenarios that an employee will encounter.
Examples of Business Information Systems
Business information systems have different requirements throughout the various departments;
Human Resources must be able to use information systems to handle processes such as,
Hiring and Job Roles.
Staff Records and Employee Contracts.
Holiday Management and Illness.
Attendance and Absenteeism.
Staff Disciplinary Records.
Senior Management may not always use information systems as their roles may be too strategic or sporadic to construct an information system, however they may have daily or even business cyclic tasks such as,
Monitoring performance of the business or business processes.
Maintaining customer relationships through relationship management software or CRM.
Assess generalised performance of a store or business through warehouse management software or employee performance.
Make strategic decisions about business processes by using sales data or reporting software.
Identify problems with processes or business cycles.
Generate Reports for Sales, Product Development or Manufacturers.
General Management may use information systems to,
Distribute work to employees.
Identify problems with processes or business cycles.
Monitor Employee clock-in times.
Monitor Employee processes or performance.
Record Paying Hours or Overtime.
Action directions from higher up.
Correct or Normalise Data on the System.
Query or edit the database.
Employees may use information systems to,
Action Jobs tasked to them.
Query a database.
Create orders for customers.
Some of the advantages of using an information system
It may aide the speed a process in a business can be completed as all of the data needed is centralised and managed in one place.
The information system may enable employees to manage large orders or information as a batch.
The information system may be able to prioritise important jobs on the system.
Mistakes could be identified by the system and prompt the user to rectify it.
The system may improve or identify bottlenecks in the business process.
The system may allow for customers to interact with it directly and therefore reduce the time it takes for a business to fulfill a customers desires.
The system may be compatible with other systems through an API which can link systems together.
Some of the disadvantages of using an information system
If the system is custom or highly specialised making changes to it can be hard or expensive or slow.
The information system may be slow which could frustrate users.
The system may not have all the features an employee desires or,
The system may not allow some of their users to change data that they need to change.
The information system may not be suited for its use case.
Employees may have preferred the previous method or may not be it savvy enough to use the system.
The system may be designed in such a way that mistakes become a problem.
The system may be abused by employees for gain. (clocking out early, marking work as completed when it isn’t)
If it breaks a business may not be able to function if they are reliant on it.
If it breaks it may corrupt data that may be unrecoverable.
Custom Information Systems
And there are many more examples of businesses using information systems. Many of them my abe trivial or bespoke, however there are programs designed to make information systems at a higher level than writing a program for them, One such example is Microsoft Access.
Many businesses will use Microsoft Access or custom programs to create their data and manage company process. Added advantages of using a custom program is that the company may use a single program (or a single database) for a large business process are,
Hey Thanks for checking out my project, or discovering it organically!
Whats the weather?
This page shows the output of my outdoor box DHT22 Temperature sensor, powered by two 100w solar panels it can sometimes run out of power, especially late at night on miserable days. The data is updated in 15-minute intervals based on three samples. The data is monitored and transmitted from an esp8266 to my web-server, which is then logged in a google spreadsheet and then published here, only the last 500 entries are kept in the chart, which makes the whole chart 15 hours long.
The data on this chart can be better viewed here -> Link
The data on this chart can be better viewed here -> Link
If you would like historical data, please contact me.
Many Businesses use IT to manage their accounts, documents and decision-making. It is, therefore important that Access Control be implemented in Organisations to prevent unwanted modification or prying eyes from being able to commit computer crimes, such as the ones outlined in the Computer Misuse Act. Using Access Control can prevent these people and operational staff from being able to modify information that otherwise is not their place to edit. Some common implementations of Access Control could be limiting the information available to a customer about Transaction Processing Systems or Management Information Systems not allowing Managers access to manufacturer prices.
Access Control in Strategic, Tactical and Operational Management
In order to implement these features a common method of maintaining strict control is through a permissions model, where it is outlined to the computer what permissions a login has access to, such that they are able (like a file system) to edit, read or write a file or piece of information. Here are some common examples of Access Control;
A Supermarket Employee is not able to alter the price of products.
A Manager is not able to create new users for a MIS (Management Information System).
A DSS (Decision Support System) is not able to commit to a higher level of privilege without presenting documentation proving that that decision is possible, a good example of this could be a bank requiring an account number to confirm that the account is active before allowing the employee to make changes or a support agent requiring a pin from a customer before being allowed to view the customers details.
The three levels of control is a common (but not de-facto) model for systems management, however often these levels of tasks can become obscured by other factors. These tasks can often be divided up among IT departments in formal organisations, such as ‘Ops’ and ‘Licencing’. The use of Access Control can be used to coordinate effective ICT teamwork on large projects and in other departments, such as accounting.
When you signup for a website. You enter your information (or data). You don’t always get it right and could miss a box or spell your own credentials wrong (garbage), this data in an ICT system is very important that it is minimised. There are numerous ways that this can be accomplished.
Data must be correct
In order to have an accurate IT solution, your data must be correct, otherwise users may find your solution hard to use. It is important that you minimise GIGO through thorough data validation.
Garbage in Garbage Out
When you enter data into an ICT system it is vital that your data is accurate, valid, and up to date. This can be accomplished though input validation. When you enter data, it should be of top quality it is vital that GIGO does not occur. GIGO is garbage in, garbage out, and refers colloquially to the fact that whatever you put into an ICT system, such as garbage, is what you will get out. This is because ICT systems are designed to preform the task that they were designed for, and doing tasks that aren’t what they are supposed to do, will inevitably produce garbage as computers work by logical process. An example of this would be putting an email address in a phone number box on contact information, and when ringing someone, the call does not connect, because it cannot ring an email address.
To stop this sort of thing from happening you must read instructions, follow tutorials and understand the implications of what you are doing, otherwise you could corrupt your data.
Data should be accurate, up-to-date, reliable, complete, correct, designed for purpose and when entered, it should be paramount that it follows these principles, otherwise your it solution could produce frustrating results that the user does not expect. Make sure your data is accourate by forcing users to enter it correctly.
When data is processed there are multiple methods of processing data, there are several types that all have individual Advantages and Disadvantages.
Batch, Interactive and Transaction Processing
Batch Processing is when data is processed in ‘batches’ (groups)
Batches mean that the process does not require human interaction, this allows the system to be automated and means that it can be left running for multiple sessions at a time, that could potentially last a long time, This type of process can also allow for custom processing ‘jobs’. Which means that the data can be suited to fit the needs of the user, for example, a bank wants to process a large quantity of bank statements, with a temporary notice at the top, they would be able to customize the ‘job’ to be processed with the new notice.
They can take a long time to process and may require multiple hours to complete, they may also require multiple retrys and query’s, so being able to compute data in batches means that all the necessary data can be consolidated for the job.
Batch processing also means that the data can be run at low points when there is little load on the system.
Using ‘big data’ can take a lot of computing power and can take a long time, and could still process GIGO. (garbage in, garbage out) Stopping batches may cause the system to corrupt the data involved and the system it is using may exhaust the resources of the machine, causing the process to fail.
Batch processing could include anomalies that may not have been accounted for, for example when someone had filled out their name on a form as ‘Mr Davies’ when the form only required ‘Davies’, the result could be that a letter that has been batch produced ‘Dear, Mr Mr Davies’.
The Batch process could mean that users receive incorrect information until their data has been processed.
Examples : Mail merge, Bank Statements, Mass Emails, Game World ‘chunks’, Video Rendering.
Interactive processing is when a system performs processes as it is being used.
When playing games, only the crucial information that requires being rendered or physics that need applying to objects need to be processed, allowing for a smoother gameplay. This may also be considered a disadvantage as it can break the immersion of the game when textures are rendered poorly or objects do not have their expected physics, such as objects that do not fall to the ground, or signs do not render their text fully and appear blurred.
Websites can check that reservations are not double booked as users place their orders, usernames can be checked for availability as they sign up, emails can be parsed for validity.
Websites such as dominoes can start to create an order, before the customer has even completed their order.
Video Viewers can set the quality of a video, or it can be done automatically, while the video is playing.
Interactive processing cannot take place on very taxing processes that require a lot of computation.
Interactive processing may not be possible until the process is completed
Interactive processing may mean that data could become corrupted, such as pausing a rendering video or deleting data that is open by other processes in place.
Online Shopping could offer discounted prices are out of date as the offer has expired, but was already added to the customers basket.
Examples : Online Shopping, Video Rendering, Video Live Streams, Booking Seats.
Transaction processing is mode one at a time.
Transaction processing is fast and efficient, and the data can be updated quickly and securely, booking a seat on a flight and in a cinema ensures that your seat is not double booked.
Effective for high traffic websites and concerts where there is high demand for a product.
Transaction processing means that customers do not withdraw funds they don’t own.
Transaction processing often means that the system can prevent two events happening at the same time.
Transaction Processing requires the transaction to be completed before it is accepted, therefore there can sometimes be considerable wait times before a transaction is complete.
Transaction processing means that the system must always be available during operating hours, therefore when a system goes down, there can sometimes be great repercussions.
Examples : Banking, Stock Control Systems, Booking Systems.
The use case for each type can vary, however most have set types that work best for the solution, so it is important to know which one is bet for a solution, or you could run into issues.
Data itself is valueless, however when provided with context, it becomes valued, a database contains lots of raw information, and therefore it would be extremely hard to interpret anything from it, for example here is a table from a database:
Without context, its information means nothing, it could mean anything. It is abstract, however when combined with some context, it becomes useful and can be useful.
Andrew has completed his homework
Andrew’s school house color
Andrew’s last test score
Andrew’s highest test score
Andrew is real
Now that we have provided this table with some context, it makes more sense, this is the difference between information and data. Information is data that has been given meaning. Although it is odd to keep data about a fictional Andrew, it is funny to think that within this website, data is stored that will contain Andrew’s table, and only when this page is read will it make sense what the purpose of this information is for.
Data is anything from numbers and letters to characters or metadata, it may be inputted into a computer through a form or another computer system.
Information is data with context, it makes sense. It becomes information once you are familiar with what it is referring to.
An ICT System is something that provides information, automation, data or computation to a user. Some examples of an ICT System are:
A School Website.
A video rendering server.
An online picture editor or gif creator.
A fire alarm system.
A sprinkler system.
ICT is visible everywhere and can be extremely beneficial to society, you reading this website is the result of hundreds of ICT systems being monitored by individuals called System Administrators or Sysadmin for short. Short of the simple systems that keep the website running, there is also the bigger picture systems, such as the time management servers, update servers for the OS of the website and your own computer, Record and bill systems checking that the server is paid for, Website analysis systems indexing this website on Google and other search engines, Security and Antivirus checking your router for bad traffic and even ISP systems, ensuring that your and this end of the connection is working, and if any of those systems were to fail, catastrophic consequences could occur.