-
Posts
1903 -
Joined
-
Last visited
Content Type
Profiles
Forums
Events
Posts posted by fiveworlds
-
-
Actually modern journals have mention 7 bases maybe even 8 but they are still undergoing a lot of research (https://www.sciencedaily.com/releases/2011/07/110721142408.htm)
The named bases are as follows
5-hydroxymethylcytosine
5-Methylcytosine
5-formylcytosine
5-carboxylcytosine
Basically just marginally different versions of cytosine.
0 -
Quote
WebGL can be used for 3D plotting onto the canvas but I have not used that myself.
Yeah I'm the same WebGL takes years to learn it isn't something you just pick up overnight all the maths tends to be difficult.
0 -
Quote
If people don't report bugs, to software developers, they will remain.
I reported it straight away but have yet to hear back from them and it has been a good few days. This isn't the first computer that has had problems with drivers I just find it frustrating that they haven't properly tested software which could make my computer completely unusable.
0 -
Just the other day my computer "decided that it wouldn't wake up from sleep mode anymore" this happened as a result of a bad intel graphics driver automatic update. So I had to search for an old driver that would work on my system. The problem is that no games will play on the driver that I found because it is over 2 years old. Is intel legally allowed to automatically update me to a driver that is obviously completely untested on my computer? Surely they could make the update software know that a driver will not work on my chipset.
0 -
Quote
But I am not sure if you can do it on a phone
JavaScript is actually the most supported programming language for phones. Even old phones used to use a scaled down version of JavaScript.
0 -
Quote
bin packing algorithms maximize the number of items given the constraint in the sum of volumes.
It is basically a knapsack problem only you are minimizing the cost. Which should just require changing > to <
https://en.wikipedia.org/wiki/Knapsack_problem
0 -
So I sometimes do freelance programming work and I got an email last night I am kind of worried about. Whoever it is wants to hire a black-hat hacker to hack a university for $1000 which I definitely wouldn't do but I don't want whoever this student is finding somebody who might do not so nice things to them.
0 -
Quote
For a 'normal' wireless printer to work with only one single PC; is a wireless router needed ?
No you should just be able to connect to the printer. But you say the printer doesn't normally support wireless.
QuoteA printer that works fine wired trough USB has been added a generic adapter at its USB jack that allows Wireless
So the printer isn't normally configured to use the USB jack as a Wi-Fi adapter meaning the printer might require additional software in order to run the Wi-Fi adapter. Are you sure the generic adapter supports a mobile hotspot?? There is a specific type of adapter you can get called a wireless print server https://www.lifewire.com/wireless-product-equipment-818274
0 -
What bin packing algorithms have you studied??
0 -
Quote
The Java Math.hypot(x,y) function will calculate this without overflow. (Again, not relevant to performance.)
So you can get it running then? Cool.
- So take a list of cities and then create a new list.
- Add 3 cities to the new list because the first 3 cities can be put anywhere
- Then for each city in the list of cities find the position in the new list which results in the lowest change in distance using the cumulative distance formula
This should run in O(n) since for each new city you only need n checks to find the position it fits best.
0 -
Quote
Square roots shouldn’t be an issue for a problem that small. Excel handles calculations of distances in loops with 30 city’s, most involving irrational numbers, without any lag and Excel is not exactly known for it’s efficiency.
There is workarounds like this example from jsfromhell.com but they tend to be slow.
BigNumber = function(n, p, r){ var o = this, i; if(n instanceof BigNumber){ for(i in {precision: 0, roundType: 0, _s: 0, _f: 0}) o[i] = n[i]; o._d = n._d.slice(); return; } o.precision = isNaN(p = Math.abs(p)) ? BigNumber.defaultPrecision : p; o.roundType = isNaN(r = Math.abs(r)) ? BigNumber.defaultRoundType : r; o._s = (n += "").charAt(0) == "-"; o._f = ((n = n.replace(/[^\d.]/g, "").split(".", 2))[0] = n[0].replace(/^0+/, "") || "0").length; for(i = (n = o._d = (n.join("") || "0").split("")).length; i; n[--i] = +n[i]); o.round(); }; with({$: BigNumber, o: BigNumber.prototype}){ $.ROUND_HALF_EVEN = ($.ROUND_HALF_DOWN = ($.ROUND_HALF_UP = ($.ROUND_FLOOR = ($.ROUND_CEIL = ($.ROUND_DOWN = ($.ROUND_UP = 0) + 1) + 1) + 1) + 1) + 1) + 1; $.defaultPrecision = 40; $.defaultRoundType = $.ROUND_HALF_UP; o.add = function(n){ if(this._s != (n = new BigNumber(n))._s) return n._s ^= 1, this.subtract(n); var o = new BigNumber(this), a = o._d, b = n._d, la = o._f, lb = n._f, n = Math.max(la, lb), i, r; la != lb && ((lb = la - lb) > 0 ? o._zeroes(b, lb, 1) : o._zeroes(a, -lb, 1)); i = (la = a.length) == (lb = b.length) ? a.length : ((lb = la - lb) > 0 ? o._zeroes(b, lb) : o._zeroes(a, -lb)).length; for(r = 0; i; r = (a[--i] = a[i] + b[i] + r) / 10 >>> 0, a[i] %= 10); return r && ++n && a.unshift(r), o._f = n, o.round(); }; o.subtract = function(n){ if(this._s != (n = new BigNumber(n))._s) return n._s ^= 1, this.add(n); var o = new BigNumber(this), c = o.abs().compare(n.abs()) + 1, a = c ? o : n, b = c ? n : o, la = a._f, lb = b._f, d = la, i, j; a = a._d, b = b._d, la != lb && ((lb = la - lb) > 0 ? o._zeroes(b, lb, 1) : o._zeroes(a, -lb, 1)); for(i = (la = a.length) == (lb = b.length) ? a.length : ((lb = la - lb) > 0 ? o._zeroes(b, lb) : o._zeroes(a, -lb)).length; i;){ if(a[--i] < b[i]){ for(j = i; j && !a[--j]; a[j] = 9); --a[j], a[i] += 10; } b[i] = a[i] - b[i]; } return c || (o._s ^= 1), o._f = d, o._d = b, o.round(); }; o.multiply = function(n){ var o = new BigNumber(this), r = o._d.length >= (n = new BigNumber(n))._d.length, a = (r ? o : n)._d, b = (r ? n : o)._d, la = a.length, lb = b.length, x = new BigNumber, i, j, s; for(i = lb; i; r && s.unshift(r), x.set(x.add(new BigNumber(s.join(""))))) for(s = (new Array(lb - --i)).join("0").split(""), r = 0, j = la; j; r += a[--j] * b[i], s.unshift(r % 10), r = (r / 10) >>> 0); return o._s = o._s != n._s, o._f = ((r = la + lb - o._f - n._f) >= (j = (o._d = x._d).length) ? this._zeroes(o._d, r - j + 1, 1).length : j) - r, o.round(); }; o.divide = function(n){ if((n = new BigNumber(n)) == "0") throw new Error("Division by 0"); else if(this == "0") return new BigNumber; var o = new BigNumber(this), a = o._d, b = n._d, la = a.length - o._f, lb = b.length - n._f, r = new BigNumber, i = 0, j, s, l, f = 1, c = 0, e = 0; r._s = o._s != n._s, r.precision = Math.max(o.precision, n.precision), r._f = +r._d.pop(), la != lb && o._zeroes(la > lb ? b : a, Math.abs(la - lb)); n._f = b.length, b = n, b._s = false, b = b.round(); for(n = new BigNumber; a[0] == "0"; a.shift()); out: do{ for(l = c = 0, n == "0" && (n._d = [], n._f = 0); i < a.length && n.compare(b) == -1; ++i){ (l = i + 1 == a.length, (!f && ++c > 1 || (e = l && n == "0" && a[i] == "0"))) && (r._f == r._d.length && ++r._f, r._d.push(0)); (a[i] == "0" && n == "0") || (n._d.push(a[i]), ++n._f); if(e) break out; if((l && n.compare(b) == -1 && (r._f == r._d.length && ++r._f, 1)) || (l = 0)) while(r._d.push(0), n._d.push(0), ++n._f, n.compare(b) == -1); } if(f = 0, n.compare(b) == -1 && !(l = 0)) while(l ? r._d.push(0) : l = 1, n._d.push(0), ++n._f, n.compare(b) == -1); for(s = new BigNumber, j = 0; n.compare(y = s.add(b)) + 1 && ++j; s.set(y)); n.set(n.subtract(s)), !l && r._f == r._d.length && ++r._f, r._d.push(j); } while((i < a.length || n != "0") && (r._d.length - r._f) <= r.precision); return r.round(); }; o.mod = function(n){ return this.subtract(this.divide(n).intPart().multiply(n)); }; o.pow = function(n){ var o = new BigNumber(this), i; if((n = (new BigNumber(n)).intPart()) == 0) return o.set(1); for(i = Math.abs(n); --i; o.set(o.multiply(this))); return n < 0 ? o.set((new BigNumber(1)).divide(o)) : o; }; o.set = function(n){ return this.constructor(n), this; }; o.compare = function(n){ var a = this, la = this._f, b = new BigNumber(n), lb = b._f, r = [-1, 1], i, l; if(a._s != b._s) return a._s ? -1 : 1; if(la != lb) return r[(la > lb) ^ a._s]; for(la = (a = a._d).length, lb = (b = b._d).length, i = -1, l = Math.min(la, lb); ++i < l;) if(a[i] != b[i]) return r[(a[i] > b[i]) ^ a._s]; return la != lb ? r[(la > lb) ^ a._s] : 0; }; o.negate = function(){ var n = new BigNumber(this); return n._s ^= 1, n; }; o.abs = function(){ var n = new BigNumber(this); return n._s = 0, n; }; o.intPart = function(){ return new BigNumber((this._s ? "-" : "") + (this._d.slice(0, this._f).join("") || "0")); }; o.valueOf = o.toString = function(){ var o = this; return (o._s ? "-" : "") + (o._d.slice(0, o._f).join("") || "0") + (o._f != o._d.length ? "." + o._d.slice(o._f).join("") : ""); }; o._zeroes = function(n, l, t){ var s = ["push", "unshift"][t || 0]; for(++l; --l; n[s](0)); return n; }; o.round = function(){ if("_rounding" in this) return this; var $ = BigNumber, r = this.roundType, b = this._d, d, p, n, x; for(this._rounding = true; this._f > 1 && !b[0]; --this._f, b.shift()); for(d = this._f, p = this.precision + d, n = b[p]; b.length > d && !b[b.length -1]; b.pop()); x = (this._s ? "-" : "") + (p - d ? "0." + this._zeroes([], p - d - 1).join("") : "") + 1; if(b.length > p){ n && (r == $.DOWN ? false : r == $.UP ? true : r == $.CEIL ? !this._s : r == $.FLOOR ? this._s : r == $.HALF_UP ? n >= 5 : r == $.HALF_DOWN ? n > 5 : r == $.HALF_EVEN ? n >= 5 && b[p - 1] & 1 : false) && this.add(x); b.splice(p, b.length - p); } return delete this._rounding, this; }; }
I wonder if you can get away with not using square roots at all. For comparing two distances by hand you can do.
root((x1-x2)^2 * (y1-y2)^2) = root((x3-x4)^2 * (y3-y4)^2)
then the roots cancel. So you get
(x1-x2)^2 + (y1-y2)^2 = (x3-x4)^2 + (y3-y4)^2
but here you have 4 distances so it is
root((x1-x2)^2 + (y1-y2)^2) + root((x1-x3)^2 + (y1-y3)^2) = root((x4-x5)^2 + (y4-y5)^2) + root((x4-x6)^2 + (y4-y6)^2)
which becomes
root((x1-x2)^2 + (y1-y2)^2) + root((x1-x3)^2 + (y1-y3)^2) / root((x4-x5)^2 + (y4-y5)^2) + root((x4-x6)^2 + (y4-y6)^2) = c
where we need to find if c is positive or negative.
maybe it is still possible to cancel the roots but it is a bit harder.
0 -
Quote
Could you possibly include comment statements?
I can. Since this is better explained in Java I wrote it in java. First we create the class to run the actual program. Here I generate a few cities and add them to the list of cities.
package mycode.tsp; ///// // Runs the program and generates the list of cities ///// public class MyMain { public static double coordinates[] = {10,20,30}; public static Cities cities; public static void main(String[] args) { City city = new City("Washington",coordinates); System.out.println(city.name + " --> " + city.coords[0] + "," + city.coords[1] + "," + city.coords[2]); cities = new Cities(10); cities.addCity(city); coordinates[0] = 30; coordinates[1] = 40; coordinates[2] = 50; city = new City("Paris",coordinates); cities.addCity(city); coordinates[0] = 60; coordinates[1] = 80; coordinates[2] = 30; city = new City("Berlin",coordinates); cities.addCity(city); coordinates[0] = 20; coordinates[1] = 100; coordinates[2] = 70; city = new City("New York",coordinates); cities.addCity(city); coordinates[0] = 30; coordinates[1] = 45; coordinates[2] = 50; city = new City("Hong Kong",coordinates); cities.addCity(city); for (int k = 0; k < cities.cities.size(); k++){ System.out.println(cities.cities.get(k).name); } } }
Next is the city Object which contains information about each city like name and position etc.
package mycode.tsp; ///// // The city object which contains the name and position of the city. ///// public class City { public String name; public double coords[] = new double[3]; public City(String name, double[] coordinates){ this.name = name; this.coords = coordinates; } }
Then there is the class that does all the actual calculation.
package mycode.tsp; import java.util.ArrayList; ///// // The cities object which is the list containing all the cities ///// public class Cities { public static ArrayList<City> cities; public static int size; public City temp; public static int index = -1; public boolean swapped; public int i; public static double coodinates[], coodinates2[], distance4, distance2; /// // Create the object /// public Cities(int size){ cities = new ArrayList<City>(); this.size = size; } public void addCity(City city){ if(cities.size() > 1){ swapped = true; while (swapped){ distance4 = cumulativeDistance( cities.get(cities.size()-1), cities.get(0), cities.get(1), city ); System.out.println("test " + city.name + " "+distance4); /// // The first Problem /// cities.add(city); } } else { cities.add(city); } } /// // Cumulative Distance Formula /// private double cumulativeDistance(City left,City middle,City right,City middle2){ return loopedDistance(left, middle,right) - loopedDistance(left, middle2, right); } /// // Looped Distance Formula /// private double loopedDistance(City left,City middle,City right){ return distance(left.coords, middle.coords)+distance(right.coords, middle.coords); } /// // Euclidean Distance Formula /// private double distance(double coordinates[], double coordinates2[]){ double distance3 = 0; int t = 0; while (t < 3){ distance3 = distance3 + Math.pow((coordinates[t] - coordinates2[t]), 2); t++; } return Math.sqrt(distance3); } }
The first problem is that when I try to get the cumulative distance then the result is.
Berlin Cumulative Distance --> 0.0
New York Cumulative Distance --> 0.0
Hong Kong Cumulative Distance --> 0.0This is because the computer handles square roots badly. So then you would have to work out a way of finding the cumulative distance quickly (that is to say in polynomial time) since the rest is basically just bubble sort.
I would imagine the fastest way of solving the square root problem is to design a rom chip which maps integers to their square root then send data from java to the chip and get the result.
0 -
-
Quote
Alternatively, if we could literally move the cities with some mimum distance to each other in ofrder to design the shortest path it would always require the cities to be located on equidistant points of a circle to form a symetrical polygon:
Hmm I suppose that might work.
<script> var cities = [[0,0],[30,40],[100,50]]; var distances = []; var temp = [,]; var newTempCumulativeDistance; var newTempCumulativeDistance2; var tempCumulativeDistance; var tempCumulativeDistance2; function distanceFormula(x1,y1,x2,y2){ return Math.sqrt((x2-x1)+(y2-y1)) } for(var i = 0; i < cities.length - 1; i++){ distances[i] = distanceFormula(cities[i][0],cities[i][1],cities[i+1][0],cities[i+1][1]); } distances[distances.length] = distanceFormula(cities[0][0],cities[0][1],cities[cities.length-1][0],cities[cities.length-1][1]); tempCumulativeDistance = distances[0] + distances[distances.length - 1]; for(var t = 1; t < cities.length - 1; i++){ newTempCumulativeDistance = distanceFormula(cities[t][0],cities[t][1],cities[cities.length-1][0],cities[cities.length-1][1]) + distanceFormula(cities[t][0],cities[t][1],cities[1][0],cities[1][1]); newTempCumulativeDistance2 = newTempCumulativeDistance + distanceFormula(cities[0][0],cities[0][1],cities[t-1][0],cities[t-1][1]) + distanceFormula(cities[0][0],cities[0][1],cities[t+1][0],cities[t+1][1]); tempCumulativeDistance2 = distances[t] + distances[t-1] + tempCumulativeDistance; if(newTempCumulativeDistance2 < tempCumulativeDistance2){ temp[0] = cities[0][0]; temp[1] = cities[0][1]; cities[0][0] = cities[t][0]; cities[0][1] = cities[t][1]; cities[t][0] = temp[0]; cities[t][1] = temp[1]; temp[0] = distances[0]; temp[1] = distances[distances.length - 1]; distances[0] = newTempCumulativeDistance; distances[1] = newTempCumulativeDistance2; distances[t] = temp[0]; distances[t+1] = temp[1]; tempCumulativeDistance = distances[i] + distances[i - 1]; } } for(var i = 1; i < cities.length - 1; i++){ tempCumulativeDistance = distances[i] + distances[i - 1]; for(var t = i; t < cities.length - 1; i++){ newTempCumulativeDistance = distanceFormula(cities[t][0],cities[t][1], cities[i-1][0],cities[i-1][1]) + distanceFormula(cities[t][0],cities[t][1],cities[i+1][0],cities[i+1][1]); newTempCumulativeDistance2 = newTempCumulativeDistance + distanceFormula(cities[i][0],cities[i][1],cities[t-1][0],cities[t-1][1]) + distanceFormula(cities[i][0],cities[i][1],cities[t+1][0],cities[t+1][1]); tempCumulativeDistance2 = distances[t] + distances[t-1] + tempCumulativeDistance; if(newTempCumulativeDistance2 < tempCumulativeDistance2){ temp[0] = cities[i][0]; temp[1] = cities[i][1]; cities[i][0] = cities[t][0]; cities[i][1] = cities[t][1]; cities[t][0] = temp[0]; cities[t][1] = temp[1]; temp[0] = distances[i]; temp[1] = distances[i - 1]; distances[0] = newTempCumulativeDistance; distances[1] = newTempCumulativeDistance2; distances[t] = temp[0]; distances[t+1] = temp[1]; tempCumulativeDistance = distances[i] + distances[i - 1]; } } } console.log(distances.reduce(function(pv, cv) { return pv + cv; }, 0)); </script>
0 -
Quote
my own website
For websites there is w3schools
Quotebut i'm also interested in programming games
For games there is Handmade Hero. Be warned it is over 1000 hours long.
0 -
What would you like to learn?
1 -
Quote
Good reply fiveworlds, +1 , but will the manufacturer actually cooperate?
Only if the phone is under warranty and even then they'll try to tell you it was the apps you installed so they don't bear responsibility to fix it. All the firmware would be available for people like me to fix phones but it isn't. They want people going back to the manufacturer and buying new phones. Apple used to brick people's phones if you replaced a button but they got sued so I imagine they don't do that anymore. https://www.theguardian.com/technology/2016/feb/12/seattle-law-firm-files-first-lawsuit-against-apple-over-iphone-error-53
0 -
To be 100% sure your phone is free of viruses you will need to send it back to the manufacturer and get their firmware reinstalled. Phone drivers tend to be device specific so I can't just give you an arbitrary firmware in the hope it will work.
Sometimes manufacturer firmware can be found on their website if the phone was very buggy. For instance the Samsung galaxy S8 firmware can be found here https://www.samsung.com/us/support/owners/product/galaxy-s8-unlocked#downloads
Note that region is important two phones with the same model number but manufactured for different phone carriers and countries will tend to have different firmware.
1 -
Quote
-If the forum firmware allows starcounting-
Forum software not firmware and yeah I imagine that it could count the number of stars for topics by a user with a specific username with a database query.
0 -
I'm currently playing Warframe
0 -
It is working for me now.
0 -
Quote
I think you can buy ready made systems based on this.
Yeah you can they are called network attached storage or NAS plenty of manufacturer's make them including ones with dvd re-write. http://www.lg.com/us/burners-drives/lg-N2R1DD2-network-attached-storage
0 -
Quote
It seems they can easily break even RSA nowadays with help of an acoustic microphone.
Yes it is an interesting article another way is to just decrypt the RSA algorithm stored on the computer.
Quotebut also make smartphone completely invulnerable to hackers
Smartphones are only vulnerable to hackers if there is a problem with the software or hardware that allows them to do so. Encryption tends to have little to do with real hacking. You can also tell which version of RSA encryption was used by packet sniffing.
Secure Socket Layer SSLv2 Record Layer: Client Hello Length: 103 Handshake Message Type: Client Hello (1) Version: SSL 3.0 (0x0300) Cipher Spec Length: 78 Session ID Length: 0 Challenge Length: 16 Cipher Specs (26 specs) Cipher Spec: SSL2_RC4_128_WITH_MD5 (0x010080) [ more Cipher Specs deleted ] Challenge
As you can see from the above they are using ssl version 3 implementing SSL2_RC4_128_WITH_MD5 encryption. That encryption algorithm is on your computer but you can just look it up. The researchers using the microphones only decrypted RSA on a computer that knew the private decryption key. They can't use a computer that doesn't know the private decryption key to decrypt the message in the same way so RSA 4000+ is still a fairly safe encryption to use.
0 -
Quote
One of my current assignments involves me finding someone currently working in the computer sciences field.
Computer Science is a very broad field it is like saying you work in chemistry or medicine. Generally everybody in computer science is specialised into a particular area. Specializations include:
- Software Developer
- Database Administrator
- Data Warehousing
- Data Architect
- Technical Support
- Scrum Master
- Network Administrator
- Network Architect
- Network Engineer
- Wireless Network Engineer
- Network Security Engineer
- Telecommunications Manager
- Datacentre Design
- Computer Hardware Engineer
- Computer Systems Analyst
- Business Systems Analyst
- Web Developer
- Front End Developer
- Back End Developer
- Ecommerce Analyst
- Dev Ops
- Computer Security
- Operating Systems
- Hypervisors and Virtualisation
- Broadcasting
- Pen Tester
- Project Manager
- Data Modelling
- IT Manager
- Ux/Ui Designer
- Game Development
- Environment engineering
- Building Modelling (CAD etc)
- etc
QuoteWhat education did you take in order for you to acquire your job (Degrees, University, Other extra-curricular programs)
Most of the higher paid jobs $2,000,000.00+ require a university level qualification in a related field such as computer science, electrical engineering, network engineering etc. Technical support tends not to require a degree but supporting documentation may be required such as evidence you did specific online tutorials etc.
QuoteWhat does your typical day look like? (What does your work involve you doing. How long do you work. What kinds of problems/tasks do you encounter?)
Depends on wheter I am working remote or not. Since I work as a freelance consultant at the moment much of my work is remote and highly varied. Generally I do network architecture designing scalable networks for my customers. Often this includes designing the wired telephone systems and email systems for an office, configuring public ip addresses, managing servers, setting up windows networking like you would most likely have in school. Often the client has a specific design or system they would like to have implemented for instance asterisk, opendigitalradio, plesk etc. My current contract involves designing a dab multiplex for the state radio broadcaster. The system was required to generate a 20Kw radio signal minimum and contained in a box that could be mass produced.
My brother on the other hand is a software developer works in a factory office full time but can work from home when he is not required in the office which is most of the time. His office runs an agile work environment with perforce for version control and docker for builds. They design enterprise storage solutions for large companies which usually cost $1,000,000 minimum. He has to do all remote work from his work laptop. Generally his work includes being online when the technical support team emails him about an issue a customer is having then he would have to solve the issue and email the technical support team with his solution. He sometimes gets specific projects to work on where he would be working with the international team which would require him to go into the office to have a meeting in the conference call room with people from America, India, China, Ireland etc.
Quotealong with some personal information: name, email - just as proof that you really do work in the computer sciences field and that you are not made up for the sake of the assignment!
I don't see how you would need my name since most high school students don't know what perforce, docker etc are. My brother works for Dell Technologies.
0
Artificial Neural Networks for Kids
in Computer Science
Posted
I'd rather use
https://software.intel.com/en-us/ai-academy/students
They have tutorials on a lot of the major frameworks.