LINUX.ORG.RU

Сообщения kramh

 

Посоветуйте большой проект, который является эталоном кодинга

Просто надо у кого-то знания перенимать.
Что скажете о https://github.com/tensorflow/tensorflow ?

 ,

kramh
()

Перевод из hex в dec очень сильно грузит процессор.

Python 3.5.2 [GCC 5.4.0 20160609]

data = open('input.tar.gz', 'rb').read()                  #Открыть              
data_hex = data.hex()                                     #Перевести в нормальный hex вид                             
data_dec = int(data_hex, 16)                              #Перевести в dec
output = open('output.txt', 'wt').write(str(data_dec))    #Записать в файл
input.tar.gz весит 1.1 МБ. 1 ядро работает около 4 минут для выполнения кода.

Почему требуется так много выч.ресурсов? Как я понимаю, дело здесь в 3 строчке — но разве на это нужно так много ресурсов? Хотелось бы понять, почему так происходит и как можно ускорить выполнение.

UPD. «The process python3 (with pid 3609) is using approximately 11.0 MB of memory. It is using 11.0 MB privately, and a further 2.6 MB that is, or could be, shared with other programs.» — размер со временем растет.

 

kramh
()

С каким языком программирования на уровне Junior-Middle будет легче найти работу в России/Украине?

Многие советуют Java, говоря что даже Junior без резюме нарасхват, но мне больше импонируют C++ и Python(к Java ненависти не испытываю). Выбор между этими 2 вариантами(Java;C++ и Python).

Скорее всего, за то время что у меня есть(2 года до ухода в армию), я смогу Java подтянуть до Middle, а на C++ и Python так и буду где-то в самом начале.

Не нужно говорить: «что больше нравится, то и учи». Хотелось бы сразу после армии начать работать, а не сидеть в офисе(в лучшем случае), параллельно поднимая скиллы C++ и Python в связи с отсутствием спроса на программистов невысокой квалификации.

Очевидно, с моими потребностями нужно учить Java, если считать что спрос на Java-программистов без опыта выше. Но действительно ли это так? Еще я слышал, что Java медленно развивается, и Oracle всякие разные иски подает. Не умирает ли Java уже сейчас?

 ,

kramh
()

Вопрос про DNS и делегирование

Почему, например, «ВКонтакте» не оставил делегирование домена для NS сервера зоны «com»? Я понимаю, что для уменьшения нагрузки. Но есть ли какая-то черта, после которой NS зоны «com» говорит: «Хватит! Делай свой NS сервер. Из-за тебя на меня слишком большая нагрузка»

Или каждый домен обязан иметь свой NS, а NS зоны «com» просто говорит к какому обращаться, не храня записей «домен-ip»?

 , ,

kramh
()

Какова вероятость существования крит.уявзимости в ядре, о котором знает лишь определенный круг лиц?

Я не имею понятия как происходит поиск уязвимостей, но, как я понимаю, если кто-то наткнулся и рассказал о ней публично, то её прикрыли с громким заголовком «найдена критическая уязвимость<...>» но если наткнулись, и рассказали лишь узкому кругу лиц, например, за определенную плату.

Выходит, что вероятность существования какой-то подобной уязвимости очень высока. Верно?

 ,

kramh
()

Есть ли либа, которая позволяет двигать указатель мыши, клики(ПКМ, ЛКМ), и использовать колесико?

Или же набор либ.

 ,

kramh
()

Возможно ли как-то зашифровать данные при передаче по http?

 

kramh
()

Посоветуйте высокоскоростной ( >150 мбит/сек) VPS в Европе.

Почему-то везде пишут системные требования машины, но про ширину канала забывают. >150мбит/сек - скорость загрузки, я от неё отталкиваюсь и высчитываю скорость отдачи.

Будет предпочтительней, если это будут страны типа Германии, UK, Нидерландов, Франции и т.п.

 

kramh
()

Не выходит залогиниться на ЛОРе с помощью скрипта

Не могу понять, почему не выходит залогиниться. Перерыл кучу статей, протестил много подобных вариаций, но везде результат один: None. Остановился, на мой взгляд, на наиболее близком к решению.

from http.cookiejar import CookieJar
import urllib.request, urllib.parse
import re


cookie = CookieJar()
cookie_handler = urllib.request.HTTPCookieProcessor(cookie)

req = urllib.request.build_opener(cookie_handler)
req.add_header = [('User-Agent','Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.11) Gecko/20101012 Firefox/3.6.11')]
urllib.request.install_opener(req)

params = bytes(urllib.parse.urlencode({'nick':'kramh', 'passwd':'******'}), 'utf-8')
resp = req.open('http://linux.org.ru/index.jsp', params)

page = str(resp.read(), 'utf-8')

parse = re.search(r'kramh', page)
print(parse)

 , ,

kramh
()

Доступ по индексу после парсинга с re дает результат, отличающийся от запроса

import urllib.request
import re


url = 'http://www.vk.com'

request = urllib.request.urlopen(url)
response = request.read()
parse = re.search(r'android', str(response))  

print(parse)
print(response[parse.start():parse.end()])
_________
Output:

<_sre.SRE_Match object; span=(3138, 3145), match='android'>
b'wrap"><'

 ,

kramh
()

Дилемма с переменными

В общем, есть у меня класс, в котором происходит относительно много мат. операций. И вследствие этого, имеется большое количество переменных. Сама суть скрипта в этих мат. операциях и заключается, поэтому к ним извне класса точно не будет надобности обращаться, в случае, если они будут глобальными.

Так вот, вопрос: с точки зрения производительности, имеет смысл делать все эти переменные локальными или оставлять их глобальными?

 , , ,

kramh
()

Каким образом антивирус распознает зловред, прогнанный через обфускатор?

Например, кто-то сделает скрытый вирус, который тихо сидит до того момента, пока пользователь по какой-то причине не отключит антивирус, а потом «пускаться в пляс»?

P.S. Я не планирую ничего делать, проосто интересны принципы работы антивирусов.

 

kramh
()

Не получается создать label в слоте. Испровобовал все

Код проверял очень тщательно.

  
import sys
from PyQt4 import QtGui, QtCore


class Lbl(QtGui.QWidget):
    
    def __init__(self):
        super(Lbl, self).__init__()
        
        self.initUI()
            
    def initUI(self):       
        self.resize(200, 200)
        
        self.btn = QtGui.QPushButton('btn', self)
        self.btn.clicked.connect(self.count)

    def count(self): 
        self.label = QtGui.QLabel('carecarecarecare', self)
        self.label.move(100, 100)
        self.label.resize(100, 100)
        
app = QtGui.QApplication(sys.argv)
lbl = Lbl()
lbl.show()
sys.exit(app.exec_())

 

kramh
()

Программная симуляция нажатия QPushButton без реального.

        self.btn = QtGui.QPushButton('Result', self)
        self.btn.setGeometry(92.5, 75, 50, 25)
        self.btn.clicked.connect(self.count) 
        
    def count(self): 
        res = str((float(self.a.text())) + (float(self.b.text())))
        self.c.setText(res)
        
    def keyPressEvent(self, event):
    
        if event.key() == QtCore.Qt.Key_Enter or QtCore.Qt.Key_Return:
            self.count()
        elif event.key() == QtCore.Qt.Key_Escape:
            self.close()

В данном случае при нажатии enter происходит взаимодействие с самим слотом, а как сделать так, чтобы при нажатии enter было взаимодействие с btn, которая затем уже подключается к слоту.

Например, в tkiner это реализуется через invoke. А в qt не смог разобрать, ибо большая часть qt кода на c++, и фиг поймешь что там написано. Вроде как это можно еще сделать через перемещение мыши и через клик программно. Но может как напрямую можно?

 

kramh
()

Не могу сложить 2 числа как int, они складываются как str. Конвертировать не получается.

import sys
from PyQt4 import QtGui
from PyQt4 import QtCore


class Program(QtGui.QWidget):
    
    def __init__(self):
        super(Program, self).__init__()
        
        
        self.initUI()
   
    def initUI(self):            
        
        self.setWindowIcon(QtGui.QIcon('icon'))
        self.setWindowTitle('Mini Calculator')
        self.setFixedSize(235,100)
        self.move(0, 0)
        
        
        lbl2 = QtGui.QLabel('+', self)      
        lbl2.move(87.5, 35)
        
        lbl3 = QtGui.QLabel('=', self)
        lbl3.move(137.5, 35)
    
        
        self.a = QtGui.QLineEdit(self)
        self.a.setGeometry(50, 35, 25, 25)
        
        self.b = QtGui.QLineEdit(self)
        self.b.setGeometry(105, 35, 25, 25)
        
        self.c = QtGui.QLineEdit(self)
        self.c.setGeometry(150, 35, 25, 25)
        
        self.btn = QtGui.QPushButton('Result', self)
        self.btn.setGeometry(92.5, 75, 50, 25)
        self.btn.clicked.connect(self.count) 
        
    def count(self): 
        result = self.a.text() + self.b.text()
        self.c.setText(result)  
        
app = QtGui.QApplication(sys.argv)
program = Program()
program.show()
sys.exit(app.exec_())

То есть пишу 2 и 2, выводит как 22.

И да, я гуглил. Несколько часов гуглил. Ничерта не нашел. Такое чувство, что кроме wiki.python.org/moin/PyQt ничего нет. Непонятно как вообще по qt искать информацию какую-то.

 ,

kramh
()

Не получается с кнопкой изменить содержание внутри QLineEdit с помощью setText

import sys
from PyQt4 import QtGui


class Program(QtGui.QWidget):
    
    def __init__(self):
        super(Program, self).__init__()
        
        
        self.initUI()
   
    def initUI(self):            
        
        self.setFixedSize(235,100)

        c = QtGui.QLineEdit(self)
        c.setGeometry(150, 35, 25, 25)
        
        
        btn = QtGui.QPushButton('Result', self)
        btn.setGeometry(92.5, 75, 50, 25)
        btn.clicked.connect(self.count)
        
        
    def count(self): 
        
        self.c.setText('dadada')

app = QtGui.QApplication(sys.argv)
program = Program()
program.show()
sys.exit(app.exec_())

После нажатия, в консоле появляется надпись:

Traceback (most recent call last):
  File "so.py", line 28, in count
    self.c.setText('dadada')
AttributeError: 'Program' object has no attribute 'c'

 ,

kramh
()

Делаю калькулятор. Как реализовать, чтобы считало не когда нажимаю на button, а во процессе ввода?

Вот шаблон, кому интересно:

import sys
from PyQt4 import QtGui



class Program(QtGui.QWidget):
    
    def __init__(self):
        super(Program, self).__init__()
        
        
        self.main()
        self.labels()
        self.text()
      
    def main(self):                   
        self.setWindowTitle('Mini Calculator')
        self.setFixedSize(235,100)
        
    def labels(self):       
        lbl = QtGui.QLabel('+', self)
        lbl.move(87.5, 35)
        
        lbl2 = QtGui.QLabel('=', self)
        lbl2.move(137.5, 35)
    
    def text(self):
        a = QtGui.QLineEdit(self)
        a.setGeometry(50, 35, 25, 25)
        
        b = QtGui.QLineEdit(self)
        b.setGeometry(105, 35, 25, 25)
        
        c = QtGui.QLineEdit(self)
        c.setGeometry(150, 35, 25, 25)

        
        self.show()
        

app = QtGui.QApplication(sys.argv)
program = Program()
sys.exit(app.exec_())
Собственно, с кнопками я разобрался, там ничего сложного. А как сделать так, чтобы результат выводился мгновенно в процессе набора?

Есть идея вызвать системные часы и, например, прогонять 1 цикл на проверку каждые n миллисекунд. Теоретически, нагрузка на процессор должна быть минимальной, но Qt - мощный инструмент, и, мне кажется, это можно реализовать встроенными методами.

 , , ,

kramh
()

Вопрос по event в qt. Реализовал вопрос при выходе, как мне кажется, не самым лучшим образом.

import sys
from PyQt4 import QtGui, QtCore



class QuitButton(QtGui.QWidget):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)

        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Icon')

        button = QtGui.QPushButton('Close', self)
        button.setGeometry(10, 10, 60, 35)
        self.connect(button, QtCore.SIGNAL('clicked()'), self.CloseQuestion)
        

    def CloseQuestion(self):
        reply = QtGui.QMessageBox.question(self, 'Message',
            "Are you sure to quit?", QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)

        if reply == QtGui.QMessageBox.Yes:
            sys.exit(app.exec_())
        
    
    def closeEvent(self, event):
        reply = QtGui.QMessageBox.question(self, 'Message',
            "Are you sure to quit?", QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)

        if reply == QtGui.QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()


app = QtGui.QApplication(sys.argv)
qb = QuitButton()
qb.show()
sys.exit(app.exec_())

Метод «CloseQuestion»: после нажатия на кнопку «Close» спрашивает, точно ли я хочу выйти. Метод «closeEvent» делает, чтобы был вопрос при закрытии приложения из системы.

Я хотел подключить слот closeEvent, но не вышло, т.к. требует ввести аргумент «event». Я так понял, этот аргумент автоматически выдается при закрытии приложения из системы.

В общем, сделал отдельный слот. Можно ли было как-нибудь реализовать вариант выше? Например, ввести какой-то аргумент.

 , ,

kramh
()

Не появляется контекстная подсказка. Просто пустой виджет.

У меня при запуске кода появляется лишь пустой виджет. И с шрифтами игрался, и с их размерами - ничего. Можете у себя глянуть?

import sys
from PyQt4 import QtGui
from PyQt4 import QtCore


class Tooltip(QtGui.QWidget):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)

        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Tooltip')

        self.setToolTip('This is a <b>QWidget</b> widget')
        QtGui.QToolTip.setFont(QtGui.QFont('OldEnglish', 10))


app = QtGui.QApplication(sys.argv)
tooltip = Tooltip()
tooltip.show()
app.exec_()

Код взят отсюда: http://wiki.python.su/Документации/ВведениеВСредуPyQt4#A.2BBB8EPgRBBDwEPgRCBE...

 , ,

kramh
()

Не могу понять, зачем нужна геттеры?


class Person:
    
    __address = "n/a"
    __name = "n/a"
    __age = 0
    
    def set_name(self, n):
        self.__name = n
        
    def get_name(self):
        return self.__name
    
    def set_age(self, a):
        self.__age = a
        
    def get_age(self):
        return self.__age
    
    def set_address(self, a):
        self.__address = a
    
    def get_address(self):
        return self.__address

    def description_of_person(self):
        print("---------------------")
        print("| My name is ", self.__name)
        print("| I'm ", self.__age ,"years old.")
        print("| My address is ",self.__address)
        
person1 = Person()
person2 = Person()

person1.set_name('John')
person1.set_age(23)
person1.set_address('dom 13')

person2.set_name('Mike')
person2.set_age(16)
person2.set_address('dom 5')

person1.description_of_person()
person2.description_of_person()

Если убрать здесь все геттеры, это не повлияет на результат. Так к чему они?

 , ,

kramh
()

RSS подписка на новые темы