database design – Is it a good idea to split an auditable table into two tables based on the update frequency?

I’m currently designing a database schema for a small microservice which handles products.

The service contains a simple REST API which allows users to perform basic management of products and an another API which is used to perform operations which consume these products. The maximum amount of consumes per product is limited with an explicitly defined consumables count. When this limit is reached, the product cannot be consumed anymore. Each product typically contains about 1,000 – 1,000,000 consumables, while a single operation may take 1 – 10 consumables at a time.

The frequency of the management operations is quite low, but the rate of the consuming operations is very high.

At the moment, the schema puts all product information into a single table. This table also contains information which must be audited into a snapshot based history table on each INSERT, UPDATE and DELETE operation. This is currently done with DB triggers, which know how to add rows into the history table along with the additional audit information. Each consumable use also adds a new row into consumables table with some additional information related to how it was consumed.

Here’s a simplified example about how these tables are currently organized.

------------------------
| product              |
------------------------
| + id                 |
| + name               |
| + is_enabled         |
| + consumable_limit   |
| + consumable_counter |
| ...10 omitted fields |
------------------------

------------------------
| product_history      |
------------------------
| + id                 |
| + product_id         |
| + time               |
| + user_id            |
| + history_type       |
| + name               |
| + is_enabled         |
| + consumable_limit   |
| + consumable_counter |
| ...10 omitted fields |
------------------------

------------------------
| operations           |
------------------------
| + id                 |
| + product_id         |
| + consumable_idx     |
| ...10 omitted fields |
------------------------

In the above diagram, I’ve omitted some fields to keep things more simple. The thing that keeps me wondering here is that the consumable_counter in the product table gets rapidly updated with consuming operations, which may further flood the product_history table. Would it be better move the consumable counter into an another table where it would not trigger the a full snapshot of the product table row each time the consumable_counter is being updated? Somehow, I feel like it could be ideal as the consumable_counter is the only column in the product table which is being updated with a high rate. A full snapshot on each counter increment somehow feels a bit overkill.

Edit

The consumable_counter acts as a counter of how many times the corresponding product has been used. When it reaches the consumable_limit, the product cannot be consumed any more.

object oriented – How good is this python tkinter placeholder class

I made a placeholder for entry widgets from tkinter, so i was wondering how good it is, i just started learning python a bit before, so please do correct me if im wrong or if i missed something, or some easy steps or where it looses the efficiency.

Code:

import tkinter as tk
from tkinter import ttk

class PlaceholderEntry(tk.Entry):
    '''
    Custom modern Placeholder Entry box, takes positional argument master and placeholdern
    Use acquire() for getting output from entry widgetn
    Use shove() for inserting into entry widgetn
    Use remove() for deleting from entry widgetn
    '''

    def __init__(self, master, placeholder, **kwargs):
        # style for ttk widget
        self.s = ttk.Style()
        self.s.configure('my.TEntry')

        # init entry box
        ttk.Entry.__init__(self, master, style='my.TEntry', **kwargs)
        self.text = placeholder
        self.__has_placeholder = False # placeholder flag

        # add placeholder if box empty
        self._add()

        # bindings of the widget
        self.bind('<FocusIn>', self._clear)
        self.bind('<FocusOut>', self._add)
        self.bind_all('<Key>', self._normal)
        self.bind_all('<Button-1>', self._cursor)

    def _clear(self, *args): # method to remove the placeholder
        if self.get() == self.text and self.__has_placeholder:  # remove placeholder when focus gain
            self.delete(0, tk.END)
            self.s.configure('my.TEntry', foreground='black',
                             font=(0, 0, 'normal'))
            self.__has_placeholder = False #set flag to false

    def _add(self, *args): # method to add placeholder
        if self.get() == '' and not self.__has_placeholder:  # if no text add placeholder
            self.s.configure('my.TEntry', foreground='grey',
                             font=(0, 0, 'bold'))
            self.insert(0, self.text)  # insert placeholder
            self.icursor(0)  # move insertion cursor to start of entrybox
            self.__has_placeholder = True #set flag to true

    def _normal(self, *args): #method to set the text to normal properties
        self.s.configure('my.TEntry', foreground='black',
                         font=(0, 0, 'normal'))  # set normal font
        self._add()  # if empty add placeholder
        if self.get() == self.text and self.__has_placeholder:  # clear the placeholder if starts typing
            self.bind('<Key>', self._clear)
            self.icursor(-1)  # keep insertion cursor to the end

    def acquire(self):  # custom method to get the text
        if self.get() == self.text and self.__has_placeholder:
            return None
        else:
            return self.get()

    def shove(self, index, string):  # custom method to insert into entry
        self._clear()
        self.insert(index, string)

    def remove(self, first, last):  # custom method to remove from entry
        if self.get() != self.text:
            self.delete(first, last)
            self._add()
        elif self.ret() == self.text and not self.__has_placeholder:
            self.delete(first, last)
            self._add()

    def _cursor(self, *args):  # method to not allow user to move cursor when placeholder exists
        if self.get() == self.text and self.__has_placeholder:
            self.icursor(0)

#usage of class
if __name__ == '__main__':
    root = tk.Tk()
    e = PlaceholderEntry(root,placeholder='Type something here...')
    e.pack(padx=10,pady=10)
    root.mainloop()

All suggestion are welcomed, thanks 😀

controllers – Is it a good idea to analyze and compensate for gamepad joystick deadzones?

For example, the player may want to be able to aim precisely in a top down shooter. However, if the player is using a junky controller that has axis-independent deadzones, they will not be able to aim just a few degrees off of top, bottom, left, or right due to deadzones. Is it a good idea to jump through hoops to sense this limitation and compensate for it? Are there any best practices for that?

Here is an example of what I mean by axis independent deadzones:

enter image description here

The red area represents the deadzone. The horizontal red area would give y=0, and the vertical red area would give x = 0.

I imagine that I could find these deadzones if I ask the user to calibrate their gamepad and do a sweep along the perimeter of the joystick. Then I could compensate for them by squashing all values between 0 and (1 or -1) into that grey quadrant. That said, I can see some issues arising with the player performing the calibration sloppily or too quickly, or otherwise sensing the deadzones inaccurately.

Is this a bad idea? Should the player just get a better controller?

[DICHVUSOCKS.US] 13h15 PM UPDATE 24/24- Good Socks


Payment Instantly perfectmoney,bitcoin,wmtransfer,DASH,ETH(Please click Buy Socks)
Update Tools Client Dichvusocks.us http://dichvusocks.us/tools.php Link check socks http://check.dichvusocks.us/
LIVE | 98.143.145.228:7009 | 0.49 | California | 90014 | ns1.elopi.com | United States | Blacklist: No | Checked at https://dichvusocks.us
LIVE | 216.45.60.106:7009 | 0.49 | California | 90014 | ns1.elopi.com | United States | Blacklist: No | Checked at https://dichvusocks.us
LIVE | 157.230.13.183:49984 | 0.28 | Unknow | Unknow | | Unknow | Blacklist: No | Checked at https://dichvusocks.us
LIVE | 198.12.151.247:4870 | 3.23 | Unknow | Unknow | ip-198-12-157-28.ip.secureserver.net | United States | Blacklist: Yes | Checked at https://dichvusocks.us
LIVE | 69.163.164.52:2155 | 0.61 | California | 92821 | kingeider.dreamhost.com | United States | Blacklist: Yes | Checked at https://dichvusocks.us
LIVE | 104.238.97.215:46524 | 5.61 | Unknow | Unknow | GoDaddy.com, LLC | United States | Blacklist: No | Checked at https://dichvusocks.us
LIVE | 64.118.87.61:62787 | 0.3 | Unknow | Unknow | drive110.123servers.com | United States | Blacklist: No | Checked at https://dichvusocks.us
LIVE | 162.243.210.52:40738 | 0.27 | New York | 10011 | yncu.co-gug2012.com | United States | Blacklist: Yes | Checked at https://dichvusocks.us
LIVE | 98.143.146.243:7009 | 0.48 | California | 90014 | ns1.elopi.com | United States | Blacklist: No | Checked at https://dichvusocks.us
LIVE | 98.143.146.245:7009 | 0.5 | California | 90014 | ns1.elopi.com | United States | Blacklist: No | Checked at https://dichvusocks.us
LIVE | 67.215.242.133:7009 | 0.47 | California | 90014 | ns1.elopi.com | United States | Blacklist: No | Checked at https://dichvusocks.us
LIVE | 104.238.97.215:58146 | 4.22 | Unknow | Unknow | ip-104-238-97-215.ip.secureserver.net | Unknow | Blacklist: Yes | Checked at https://dichvusocks.us
LIVE | 67.215.238.139:7009 | 0.49 | California | 90014 | ns1.elopi.com | United States | Blacklist: No | Checked at https://dichvusocks.us
LIVE | 107.170.42.147:29767 | 3.58 | Unknow | Unknow | | Unknow | Blacklist: No | Checked at https://dichvusocks.us
LIVE | 216.45.49.19:7009 | 0.47 | California | 90014 | ns1.elopi.com | United States | Blacklist: No | Checked at https://dichvusocks.us
LIVE | 104.238.111.150:4210 | 3.21 | Unknow | Unknow | ip-104-238-111-150.ip.secureserver.net | United States | Blacklist: Yes | Checked at https://dichvusocks.us
LIVE | 104.238.97.215:53771 | 5.23 | Unknow | Unknow | ip-104-238-97-215.ip.secureserver.net | Unknow | Blacklist: Yes | Checked at https://dichvusocks.us
LIVE | 69.163.161.134:2155 | 0.61 | California | 92821 | kingeider.dreamhost.com | United States | Blacklist: Yes | Checked at https://dichvusocks.us


dichvusocks
Reviewed by dichvusocks on
.
(DICHVUSOCKS.US) 13h15 PM UPDATE 24/24- Good Socks
Payment Instantly perfectmoney,bitcoin,wmtransfer,DASH,ETH(Please click Buy Socks)
Update Tools Client Dichvusocks.us http://dichvusocks.us/tools.php Link check socks http://check.dichvusocks.us/
LIVE | 98.143.145.228:7009 | 0.49 | California | 90014 | ns1.elopi.com | United States | Blacklist: No | Checked at https://dichvusocks.us
LIVE | 216.45.60.106:7009 | 0.49 | California | 90014 | ns1.elopi.com | United States | Blacklist: No | Checked at https://dichvusocks.us
LIVE |

Rating: 5



.(tagsToTranslate)13h15(t)DICHVOCKS(t)socks(t)update(t)unknow(t)blacklist(t)https://dichvusocks.us(t)live(t)checked(t)states(t)united(t)california(t)90014(t)ns1.elopi.com(t)0.49(t)0.61(t)92821(t)ip-104-238-97-215.ip.secureserver.net(t)0.47(t)kingeider.dreamhost.com(t)98.143.146.2437009(t)162.243.210.5240738(t)0.48(t)yncu.co-gug2012.com(t)10011(t)york(t)drive110.123servers.com(t)0.27(t)(dichvusocks.us)(t)64.118.87.6162787(t)98.143.146.2457009(t)0.5(t)67.215.242.1337009(t)104.238.97.21558146(t)4.22(t)67.215.238.1397009(t)107.170.42.14729767(t)3.58(t)216.45.49.197009(t)104.238.111.1504210(t)3.21(t)ip-104-238-111-150.ip.secureserver.net(t)104.238.97.21553771(t)5.23(t)0.3(t)3.23(t)llc(t)http://dichvusocks.us/tools.php(t)24/24-(t)good

[Vn5socks.net] Auto update 24/7 – Good socks 12h45 PM


LIVE ~ 72.11.148.222:56533 | 0.218 | Los Angeles | CA | 90014 | United States | Checked at vn5socks.net
LIVE ~ 101.51.108.65:9999 | 0.162 | Unknown | Unknown | Unknown | Thailand | Checked at vn5socks.net
LIVE ~ 64.227.6.113:40001 | 0.251 | Atlanta | GA | 30303 | United States | Checked at vn5socks.net
LIVE ~ 167.172.159.177:40001 | 0.287 | Stevenage | F8 | Unknown | United Kingdom | Checked at vn5socks.net
LIVE ~ 220.126.225.249:10111 | 0.083 | Incheon | 12 | Unknown | Korea, Republic of | Checked at vn5socks.net
LIVE ~ 68.183.20.86:40001 | 0.272 | Granada Hills | CA | Unknown | United States | Checked at vn5socks.net
LIVE ~ 64.225.64.126:40001 | 0.318 | Atlanta | GA | 30303 | United States | Checked at vn5socks.net
LIVE ~ 58.253.154.109:1081 | 0.093 | Guangzhou | 30 | Unknown | China | Checked at vn5socks.net
LIVE ~ 181.129.7.202:6699 | 0.449 | Medell�n | 02 | Unknown | Colombia | Checked at vn5socks.net
LIVE ~ 47.49.12.165:37885 | 0.29 | Ottawa | ON | k1y4h7 | Canada | Checked at vn5socks.net
LIVE ~ 13.77.137.22:1081 | 0.241 | Norwalk | CT | 06850 | United States | Checked at vn5socks.net
LIVE ~ 142.93.202.166:40001 | 0.338 | Unknown | Unknown | Unknown | Canada | Checked at vn5socks.net
LIVE ~ 116.202.185.45:1181 | 0.299 | Mumbai | 16 | Unknown | India | Checked at vn5socks.net
LIVE ~ 206.189.158.28:29993 | 0.076 | San Mateo | CA | 94404 | United States | Checked at vn5socks.net
LIVE ~ 220.126.225.246:10166 | 0.165 | Incheon | 12 | Unknown | Korea, Republic of | Checked at vn5socks.net
LIVE ~ 68.183.20.134:40001 | 0.344 | Granada Hills | CA | Unknown | United States | Checked at vn5socks.net
LIVE ~ 173.254.222.162:1090 | 0.203 | Los Angeles | CA | 90014 | United States | Checked at vn5socks.net
LIVE ~ 108.61.75.207:9000 | 0.346 | Piscataway | NJ | 08854 | United States | Checked at vn5socks.net


FireHeaven
Reviewed by FireHeaven on
.
[Vn5socks.net] Auto update 24/7 – Good socks 12h45 PM
LIVE ~ 72.11.148.222:56533 | 0.218 | Los Angeles | CA | 90014 | United States | Checked at vn5socks.net
LIVE ~ 101.51.108.65:9999 | 0.162 | Unknown | Unknown | Unknown | Thailand | Checked at vn5socks.net
LIVE ~ 64.227.6.113:40001 | 0.251 | Atlanta | GA | 30303 | United States | Checked at vn5socks.net
LIVE ~ 167.172.159.177:40001 | 0.287 | Stevenage | F8 | Unknown | United Kingdom | Checked at vn5socks.net
LIVE ~ 220.126.225.249:10111 | 0.083 | Incheon | 12 |

Rating: 5



.

[Vn5socks.net] Auto update 24/7 – Good socks 10h40 PM


LIVE ~ 95.174.67.50:18080 | 0.193 | Unknown | Unknown | Unknown | Russian Federation | Checked at vn5socks.net
LIVE ~ 64.225.64.126:40001 | 0.477 | Atlanta | GA | 30303 | United States | Checked at vn5socks.net
LIVE ~ 116.203.147.190:51327 | 0.332 | Unknown | Unknown | Unknown | India | Checked at vn5socks.net
LIVE ~ 167.172.159.177:40001 | 0.353 | Stevenage | F8 | Unknown | United Kingdom | Checked at vn5socks.net
LIVE ~ 157.230.7.119:40001 | 0.596 | Duluth | GA | 30097 | United States | Checked at vn5socks.net
LIVE ~ 72.11.148.222:56533 | 0.235 | Los Angeles | CA | 90014 | United States | Checked at vn5socks.net
LIVE ~ 64.227.6.113:40001 | 0.285 | Atlanta | GA | 30303 | United States | Checked at vn5socks.net
LIVE ~ 159.89.237.201:40001 | 0.293 | Vancouver | BC | v7y1j7 | Canada | Checked at vn5socks.net
LIVE ~ 64.225.45.240:40001 | 0.183 | Atlanta | GA | 30303 | United States | Checked at vn5socks.net
LIVE ~ 188.120.245.247:12432 | 0.257 | Moscow | 48 | Unknown | Russian Federation | Checked at vn5socks.net
LIVE ~ 101.51.108.65:9999 | 0.162 | Unknown | Unknown | Unknown | Thailand | Checked at vn5socks.net
LIVE ~ 181.129.7.202:6699 | 0.41 | Medell�n | 02 | Unknown | Colombia | Checked at vn5socks.net
LIVE ~ 220.126.225.249:10111 | 0.083 | Incheon | 12 | Unknown | Korea, Republic of | Checked at vn5socks.net
LIVE ~ 206.81.3.245:40001 | 0.312 | Oakland | CA | 94612 | United States | Checked at vn5socks.net
LIVE ~ 47.49.12.165:37885 | 0.34 | Ottawa | ON | k1y4h7 | Canada | Checked at vn5socks.net
LIVE ~ 216.144.228.130:15378 | 0.265 | Van Nuys | CA | 91411 | United States | Checked at vn5socks.net
LIVE ~ 142.93.202.166:40001 | 0.311 | Unknown | Unknown | Unknown | Canada | Checked at vn5socks.net
LIVE ~ 98.162.25.29:31679 | 0.327 | Unknown | Unknown | Unknown | United States | Checked at vn5socks.net


FireHeaven
Reviewed by FireHeaven on
.
[Vn5socks.net] Auto update 24/7 – Good socks 10h40 PM
LIVE ~ 95.174.67.50:18080 | 0.193 | Unknown | Unknown | Unknown | Russian Federation | Checked at vn5socks.net
LIVE ~ 64.225.64.126:40001 | 0.477 | Atlanta | GA | 30303 | United States | Checked at vn5socks.net
LIVE ~ 116.203.147.190:51327 | 0.332 | Unknown | Unknown | Unknown | India | Checked at vn5socks.net
LIVE ~ 167.172.159.177:40001 | 0.353 | Stevenage | F8 | Unknown | United Kingdom | Checked at vn5socks.net
LIVE ~ 157.230.7.119:40001 | 0.596 | Duluth | GA

Rating: 5



.

How can i change my life and become good at software engineering?

i have a question but it may seems weird or stupid to you but i will ask anyway. i am literally fucked up with my life. i dont want to go over my life because i dont want to bother anyone. i am also broke. one week ago i made a choice and obsessed with it. i will be a very very good at software engineering because i admire a lot to engineers and i want to earn a lot of money for my mother. i can work 13-15 hours a day(i worked at a wood company for 3 years like this) and also i’m searching about software engineering about 2 months but i quit my older job today and i want to start hard. i have a bit nolage about java, python, javascript, css html and c#. i developed a e-commerce app by now with js. can you show me a path to where can i achieve my goals on this journey?
note: im sorry if my question feels stupid or doesn’t fit the concept, you can delete it ofcourse. i just want to ask this in here because i just love being here.

[DICHVUSOCKS.US] 23h15 PM UPDATE 24/24- Good Socks


Payment Instantly perfectmoney,bitcoin,wmtransfer,DASH,ETH(Please click Buy Socks)
Update Tools Client Dichvusocks.us http://dichvusocks.us/tools.php Link check socks http://check.dichvusocks.us/
LIVE | 98.143.144.37:7009 | 0.49 | California | 90014 | ns1.elopi.com | United States | Blacklist: No | Checked at https://dichvusocks.us
LIVE | 69.163.161.95:2155 | 0.58 | California | 92821 | kingeider.dreamhost.com | United States | Blacklist: Yes | Checked at https://dichvusocks.us
LIVE | 67.215.237.36:7009 | 0.47 | California | 90014 | ns1.elopi.com | United States | Blacklist: No | Checked at https://dichvusocks.us
LIVE | 38.143.1.246:1115 | 1.04 | Texas | 77002 | 184.174.67.153.rdns.ColocationAmerica.com | United States | Blacklist: No | Checked at https://dichvusocks.us
LIVE | 97.74.134.60:64168 | 0.57 | Unknow | Unknow | ip-97-74-6-64.ip.secureserver.net | United States | Blacklist: Yes | Checked at https://dichvusocks.us
LIVE | 69.163.160.232:2155 | 0.57 | California | 92821 | kingeider.dreamhost.com | United States | Blacklist: Yes | Checked at https://dichvusocks.us
LIVE | 167.99.230.114:5577 | 2.86 | Unknow | Unknow | ns31251136.ip-54-38-81.eu | Unknow | Blacklist: Yes | Checked at https://dichvusocks.us
LIVE | 173.236.182.188:41136 | 1.23 | Unknow | Unknow | deckhand.dreamhost.com | United States | Blacklist: Yes | Checked at https://dichvusocks.us
LIVE | 69.163.167.169:2155 | 0.6 | California | 92821 | kingeider.dreamhost.com | United States | Blacklist: Yes | Checked at https://dichvusocks.us
LIVE | 67.215.232.158:7009 | 0.5 | California | 90014 | ns1.elopi.com | United States | Blacklist: No | Checked at https://dichvusocks.us
LIVE | 69.163.161.54:2155 | 0.57 | California | 92821 | kingeider.dreamhost.com | United States | Blacklist: Yes | Checked at https://dichvusocks.us
LIVE | 206.189.158.28:29993 | 0.94 | Unknow | Unknow | | Unknow | Blacklist: No | Checked at https://dichvusocks.us
LIVE | 98.143.147.150:7009 | 0.51 | California | 90014 | ns1.elopi.com | United States | Blacklist: No | Checked at https://dichvusocks.us
LIVE | 212.129.45.147:50290 | 0.18 | le-de-France | 94460 | i19-les02-ntr-176-186-161-133.sfr.lns.abo.bbox.fr | France | Blacklist: No | Checked at https://dichvusocks.us
LIVE | 116.202.185.45:1181 | 0.26 | Unknow | Unknow | static.45.185.202.116.clients.your-server.de | Germany | Blacklist: Yes | Checked at https://dichvusocks.us
LIVE | 98.143.145.229:7009 | 0.59 | California | 90014 | ns1.elopi.com | United States | Blacklist: No | Checked at https://dichvusocks.us
LIVE | 64.118.87.4:7052 | 4.6 | Unknow | Unknow | drive9900.trustyservers.com | United States | Blacklist: Yes | Checked at https://dichvusocks.us
LIVE | 69.163.160.170:2155 | 0.58 | California | 92821 | kingeider.dreamhost.com | United States | Blacklist: Yes | Checked at https://dichvusocks.us
LIVE | 98.143.147.147:7009 | 0.51 | California | 90014 | ns1.elopi.com | United States | Blacklist: No | Checked at https://dichvusocks.us


dichvusocks
Reviewed by dichvusocks on
.
(DICHVUSOCKS.US) 23h15 PM UPDATE 24/24- Good Socks
Payment Instantly perfectmoney,bitcoin,wmtransfer,DASH,ETH(Please click Buy Socks)
Update Tools Client Dichvusocks.us http://dichvusocks.us/tools.php Link check socks http://check.dichvusocks.us/
LIVE | 98.143.144.37:7009 | 0.49 | California | 90014 | ns1.elopi.com | United States | Blacklist: No | Checked at https://dichvusocks.us
LIVE | 69.163.161.95:2155 | 0.58 | California | 92821 | kingeider.dreamhost.com | United States | Blacklist: Yes | Checked at https://dichvusocks.us
LIVE |

Rating: 5



.(tagsToTranslate)checked(t)blacklist(t)https://dichvusocks.us(t)live(t)states(t)united(t)unknow(t)california(t)ns1.elopi.com(t)90014(t)kingeider.dreamhost.com(t)92821(t)0.57(t)socks(t)0.51(t)update(t)0.58(t)1.23(t)0.5(t)deckhand.dreamhost.com(t)69.163.161.542155(t)69.163.167.1692155(t)0.6(t)67.215.232.1587009(t)0.94(t)206.189.158.2829993(t)98.143.147.1507009(t)(dichvusocks.us)(t)ns31251136.ip-54-38-81.eu(t)germany(t)69.163.160.1702155(t)drive9900.trustyservers.com(t)4.6(t)64.118.87.47052(t)0.59(t)98.143.145.2297009(t)static.45.185.202.116.clients.your-server.de(t)212.129.45.14750290(t)0.26(t)116.202.185.451181(t)france(t)i19-les02-ntr-176-186-161-133.sfr.lns.abo.bbox.fr(t)94460(t)le-de-france(t)0.18(t)173.236.182.18841136(t)1.04(t)2.86(t)check(t)24/24-

swissns.ch Cheap SSD Shared Hosting| Good Uptime| 24/7 Live Support Care! | NewProxyLists

At swissns GmbH, we strive to drive innovation and excellence in service in our core markets with the focus being on security, infrastructure and big data. We know just where we want to go, and we are getting there! At swissns GmbH, we are working to make IT more secure. swissns GmbH offers a comprehensive range of IT and security related solutions and services that allow organizations to fully realize their aspirations for a safe and secure network and data infrastructure. swissns GmbH was formed in 2013. Alexander Baltazzis is the CEO and Managing Director of the company, with 20+ years experience in the IT, Telecommunications, ISP and Security Industry.

We have integrated our Plesk Panels with our clientarea allowing you to fully manage your hosting plan without leaving our site. On our Client area you will find all the tools you will need for the complete management of your Services and your communication with us.

===>> Use 20% discount promo code: 3FI43HBLRM when ordering! Valid till July 31st!

Check out our affordable Shared Hosting Accounts:

Linux Start Hosting
1GB SSD Storage
10GB Monthly Traffic
10 email accounts
1 mySQL Databases
CHF 4/MoORDER NOW

Linux Standard Hosting
10GB SSD Storage
30GB Monthly Traffic
100 email accounts
3 mySQL Databases
CHF 7/MoORDER NOW

Linux Advanced Hosting
30GB SSD Storage
100GB Monthly Traffic
300 email accounts
5 mySQL Databases
CHF 12/MoORDER NOW

Why Choose US:

Web Hosting Control Panel – We are using Parallels Plesk panel for our web hosting in order to provide our customers with a powerful yet simple management of our hosting services.
24/7 Live Support – Our support team is available for you 24/7 through our ticketing system, always there to help you with any questions or problems you may have.
Highly Scalable – Our services are highly scalable and upgrading is very simple through our platform. If you have any questions, our tech or sales team will be happy to assist you!

Contact Info:
swissns GmbH
Hofstrasse 1
6004 Luzern – Switzerland
+41 41 588 0270
[email protected]

Please contact us if you need any further information!

You can Like our Facebook Page: https://www.facebook.com/swissns.ch
Besides, you can follow us via Twitter Account: https://twitter.com/swissns

swissns GmbH Team

mathematics – How to make good combinations of xp tables and xp rewards?

Is there a known step by step to define mean xp reward formula/table to base specific challenges rewards and total xp table that set character level progression speed? Sounds complicated.

In addition, I see big xp tables with a lot of rounded digits with no beat missing, looks closely handwritten (just not). Is there a method or algorithm that builds and (perhaps) rounds to maximum with no kink?

For example, a character has about Hp=(8+2*Lv)², Atk=(4+Lv)² and Def=4+Lv. Damage is Attacker_Atk*sqrt( Attacker_Atk )/( sqrt( Attacker_Atk )+Target_Def ). If character defeats about LevelUpEnemies(Lv) enemies like self then character grows up. Initial level is 1 and final level is 10 (like WCIII).

How can I calculate (fair) rewards and total xp table to do this?