I struggled with Basic and VB because of their "natural language" crap. I find logic easier to express in a mathematical sense. C/C++/Java/C# are "easier" for me because they allow me to express my ideas without "translating" them into English first.
2048bit?!.. weak weak public key encryptions. use a 256bit symmetric encryption:P
1 r3@lly HATE M2rry h@d 2 L177l3 L4mb
might take a bit to break that.
37 characters, uses upper and lower cast, numbers, and special chars. 72 possible chars, raised to 37 spaces leave you with 5.2638362183252302021313518106337e+68 possibilities. a 256bit key has 1.1579208923731619542357098500869e+77 total possibilities, but you have to cut it in half atleast. if you had 10 billion processors doing 10 billion comparisons per second, it would take 3.6717430630808027468154168254912e+46 millennia. but hey, if you find a weak link in the password and reduce the effectiveness by 100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 your 10,000,000 petamips(assuming 100 instructions per calculation) super computer could break it in 367 years.
My cousin took an encryption class at his uni,which is top 10 in the world for computer engineering/stem cell research/anything science, and his teacher said something along these lines. If you had a 256bit encryption and assumed it was perfect, which means reducing it's effectiveness by 1 bit since you have a 50% chance to find the key in the first half, and assume the lowest amount of energy physically possible to represent a 1 or 0 bit, and ignored all other actual work required to test the key, it would take more energy to flip that bit enough times to break the average key than there is usable energy in the known universe.
not sure how true that is, but coming from a teacher in a top tier uni, that sure sounds impressive.
This really doesn't sound like it could be that far off. Quick google returns an estimated 7x10^22 stars in the known universe. 2^256 divided by 7x10^22 equals 1.6541727033902313631938712144098e+54. I'm not sure what unit of energy it takes to "flip a bit", but you have 1.6541727033902313631938712144098e+54 worth of those units per star. So I would assume it's atleast safe to say it would take more energy to break a perfect 256bit key than there is usable energy in all of the stars in the universe.
I think "brute forcing" the person would work better than brute forcing the password/key
To add to everyone else's post about bacteria everywhere. There is bacteria in regular soil that not only is unaffected by our strongest antibiotics, but they can actually metabolize the antibiotics for energy. OMG!!! antibiotic resistant bacteria!! Yeah, trillions(or more) of these live in your backyard.
If you're that worried about your job, keep an eye out for another decent job and jump on that. 15 years of experience working for an unappreciative company is not what you should be doing. I've heard nothing but horror stories about outsourcing programmers. You get EXACTLY what you pay for.
Typically outsourced programs could be done by fewer and more educated people, be easier to manage, fewer bugs, and run faster.
You also make the assumption that gravity makes black holes. I'm not too versed in math, but logic in general is easy
#1. Gravity's attractive force will never be stronger than the electrostatic forces that hold the particles apart. One word.. FUSION and I'm not talking about DBZ.
#2. Black holes are formed by super nova explosions that can release more energy in one second than if you broke our entire sun down into pure energy. This is NOT gravity, this is an explosive force. Simple "for every action there is an opposite and equal reaction" logic
#3. Accretion discs. The gravitation forces in the discs is enough to cause fusion, which already exceeds the electrostatic force. Now, as you approach this object that you claim isn't a black hole, the gravitational forces increase by magnitudes. At some point the gravitational force is going to many many many times greater than the electrostatic force.Even if matter doesn't actually get pulled into the "massive" object, it may get accelerated near the speed of light, shoot out of one of the poles and dump excess energy as x-rays.
So, in order to disprove black holes, you'll have to disprove speed of light gravitational forces, which are already happening. Not to mention your statement of "Gravity's attractive force will never be stronger than the electrostatic forces that hold the particles apart" is wrong with the simple idea of fusion. And the gravitational force in Accretion discs is already strong enough to over come electrostatic forces, not to mention how many magnitudes over gravity will increase as you get closer to these massive objects.
I don't know a whole lot about blackholes/etc, but it was my understanding that you need somewhere around 30 solar masses to even attempt to create a blackhole. Whatever the number really is, I'm fairly confidant that I remember that our sun could not become a blackhole with it's current mass atleast via normal solar evolution.
Thanks for pointing out my ignorance. Since my original post was about how I saw stating that a modern system doesn't actually have a hard time displaying "HD" flash videos. So I went and downloaded my "pixel perfect" video, and it was ~800x~500 with 5600kbit/sec encoding. Yes, this does look very nice even with not really "pixel perfect"
Anyway, you came along and somehow completely missed the context of my post of CPU usage. Your eye sight may be good but your reading comprehension is not something to be impressed with.
And to go along with how a modern system runs just fine on HD, my comp displayed that 2012 1080p video at only 9-10% cpu.
actually, it was downloading ~730KB/sec and still had to buffer because my download was capped. I would assume it was actually an 800KB/sec stream because of the pauses which puts it at 6400kb/sec, assume 320kb/sec for audio, so ~6000kb/sec. That's higher than required for blueray divx encode
HD flash videos use about 3-4% of my CPU. corei7 920. Talking about full screen video streams that eat up 700KB(bytes)/sec and look pixel perfect on my 1920x1080 screen. The biggest issues I have with flash are crappy adds that peg one of my logical CPUs.
"Run" probably the double standard version of it. If the user downloads an exe from a pr0n site then runs it, it's Window's fault. If a Linux user downloads a script off the web that has "rm -rf", it's the user's fault.
What this "test" comes down to is they ran some virii/malware and they found out some malware tries to run as admin and some malware only runs as the current user. OMG! I told Windows to run a program and it listened to me!! Shame shame MS. Next time make Windows not listen to me because I'm too stupid to use a computer.
Car analogy: Your car should know when you hit the gas, you really should have hit the breaks and the car should have automatically slammed on the breaks for you when hit the gas because you're too stupid to operate a car.
I don't know about you, but I have lovely process explorer app from sysinternals. Nice program. When watching TV/etc, I keep it up and I watch my IO/Network/Memory/CPU usage. Because I know every program that loads with windows and I know what to expect from every executable/service running. I know when/why they use a resource. If a service/whatever is reading the HD or using CPU time or network, if it doesn't have a reason, it's a dead process.
But I also have 5 virus/malware scanners, but only Windows Defender actively protects. I do daily quick scans and weekly full scans. Haven't had a virus/malware since DOS(about 15 years).. was a stupid virus to. It's sole purpose was to eat just enough conventional memory to make most exe's unable to load since back then all running drivers/exes had to fit in 640k
The difference is most other clients will throttle to best give *your* connection low latency. uTorrent is facing the other end of the problem. If a hop between you and the seeder is getting congested, uToerrent will throttle down as to help not overload that hop, Even if your connection is fine. The problem with P2P is that it eats up a very large portion of available bandwidth. If an ISP as a whole is getting bogged down, the downloaders will back off and try not to overload that ISP/Hop.
I know there's a lot of ideas out there for appliances/etc that get info from the power grid and help reduce peak demand.
One of the ideas was for hybrid cars that when you leave them plugged in to charge up, if the grid suddenly has more demand, eg peak hours, that your car would dump some of it's stored power back into the grid.
So you got some people staying home, traveling, car plugged in at work and the wind turbines have some excess power that can't be used, so the cars charge up. Then later in the day, peak power hits and all those plugged in hybrids help put a bit more power back into the grid.
According to the article that wrong about this, it said the power company would have to have some way to track you personally, but would actually give you monetary compensation.
I could see these types of ideas being applied to battery banks for IT. Imagine a large secondary UPS that would communicate with the grid and would charge itself when the grid said it had excess power from Wind Turbines/etc and this power would be provided at no cost. Then, later in the day when peak hours hit, the UPS would feed ma'b 10% of the needed load for your computers for a few hours and not only "hopefully" save you money in the long run, but help reduce grid load during peak.
This does add losses since now you may be taking power and storing it, but isn't that overall better than not using the power at all and losing 100% because there isn't demand right when the wind peaks?
Laptops also cost about 2xs as much desktops and the DS costs slightly less than the WII. Unlike the laptop, the DS has a whole separate hardware set than the WII, so it's not like they can copy/paste the WII into the DS like they can Desktops into laptops
The nice thing about Win7/Vista is that all the versions of the OS are decided by the key used. This means I can take my copy of Win7/Vista OEM install it on my mom's comp and use her key and it'll downgrade itself to whatever her key is. Since her HP doesn't come with a vanilla copy of windows, just a restore disc that includes all the crapware pre-installed, this is nice.
My old Uni IT job, we just had an image we dropped on a new machine. Image it, start it up, walk away for 30min, come back, name machine, machine is now connected to Active directory with newest Windows Patches from our WSUS and crapware free.
That's like saying that we should get rid of the x86 instruction set and just use the micro ops. A layer of abstraction helps and is required for a standard to work.
Obviously there are many different ideas of "performance"
Keyboard drivers. I've had many different keyboards and they all seem to use the same default MS drivers, they all work within seconds of plugging into my USB and ALL the features/extra buttons seem to work. My guess is that Ms has a large generic driver that compatible with a lot of different setups and enabled/disables features as detected.
OS getting slower/etc. Seems to me that Vista had fewer 'pauses' when working with the UI than XP. This helps with perceived performance. Glad I only got Vista once SP1 came out, I hear Pre-SP1 sucked.
Using more RAM. Vista/7 will use any free memory, up to 20% free, to cache data to help speed up performance. Vista/7 will dynamically unallocate cache if you get lower than 20% free memory. When I look at my memory usage I see 2.5GB used. 20 tabs of Chrome, Visual Studio open, WoW eating 1.5GB ram, bunch of desktop gadgets, and I still have 1.5GB of my 4GB free.
Pure CPU "performance" via number crunching. I have a Corei7 920(2.66ghz). I run a few distrubuted number crunches to help cure the world. The theoretical MAX for an i7 is 2 flops per cycle but since a program can only issue one OP at a time, these two Floating point instructions must be issued via hyper-threading, otherwise you're limited to 1 FLOP per cycle. Guess how many FLOPs I'm getting per logical CPU.... 2.66 billion FLOPs average. That means I'm getting EXACTLY the theoretical max. I have a few SSE crunchers and they are a TON faster than even that. Same benchmark claims over 7billion ints/sec per logical CPU, but I'm guessing that's MMX? Either way, 14billion ints/sec per physical core is crazy fast. Since actual number crunching is not limited by the OS in anyway, not even -1%, the only "low" performance must be in IO functions.
HD performance. I have some 2GB+ videos I like to manipulate so I sometimes make a copy of on of those files for back-up purposes. Now, I have a $1k dell that I bought at best buy. This is NOT a high end machine. Some crappy 7200 rpm HD. When making copies of these large video files, I average ~75-80MB/sec or under 30seconds for a 2GB file. That's not copying from one HD to another, that copying from one place to another on the SAME HD. I don't know about you, but 80MB/sec reading is fast, but copying... that's crazy. On a similar system with a 7200 rpm drive, I'm getting 30MB/sec in XP. Obviously my new system should be some faster, but almost 3xs faster for a same RPM drive? Both systems are under 5% kernel cpu time during the copy.
I'm getting 45-50FPS compressing 1920x1080 with 2pass xvid 1.22 set to the highest quality settings and that's only using 40% of my cpu
So in a nutshell, my computer is crunching numbers at it's theoretical limit, it's copying files about the theoretical limit of the HD, I get great FPS in games, Win7 UI is more responsive than previous MS OS's. What's this "low" performance? Do you expect to get greater than the theoretical max? Ma'b you machine is old and you need to buy a $1k Dell like I did.
That's because you only need to buy a single copy of Snow Leopard to install it on any Mac. OMG! you just figured out the MS sells an OS and Mac sells hardware, imagine that.
If you actually read up on how CPU's work, how cache works, then Parallel programming is easy. I'm mostly self-taught . My first few multi-threaded attempts had weird issues, but then I got past the logic errors. My next big issue was having too many locks. Once I got past that, I realized if you just break everything up into objects and each object designed from the get-go to be built for parallel processing, then it's cake.
My biggest disadvantage to being self-taught is not knowing predefined cases to common problems which results in reinventing the wheel and/or being slightly suboptimal.
Knowing how cpu's work can make a big difference since some low level commands are inherently safe from being preempted, like incrementing an integer. But someone may use a 64bit integer and it works fine on their 64bit machine, but on a 32-bit machine a 64int isn't just a simple instruction, it's multiple instructions and can be preempted. Stuff like that.
I struggled with Basic and VB because of their "natural language" crap. I find logic easier to express in a mathematical sense. C/C++/Java/C# are "easier" for me because they allow me to express my ideas without "translating" them into English first.
I think he was aiming more for the "If you boss doesn't know what you do, you won't be around for long"
2048bit?!.. weak weak public key encryptions. use a 256bit symmetric encryption :P
1 r3@lly HATE M2rry h@d 2 L177l3 L4mb
might take a bit to break that.
37 characters, uses upper and lower cast, numbers, and special chars. 72 possible chars, raised to 37 spaces leave you with 5.2638362183252302021313518106337e+68 possibilities. a 256bit key has 1.1579208923731619542357098500869e+77 total possibilities, but you have to cut it in half atleast. if you had 10 billion processors doing 10 billion comparisons per second, it would take 3.6717430630808027468154168254912e+46 millennia. but hey, if you find a weak link in the password and reduce the effectiveness by 100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 your 10,000,000 petamips(assuming 100 instructions per calculation) super computer could break it in 367 years.
My cousin took an encryption class at his uni,which is top 10 in the world for computer engineering/stem cell research/anything science, and his teacher said something along these lines. If you had a 256bit encryption and assumed it was perfect, which means reducing it's effectiveness by 1 bit since you have a 50% chance to find the key in the first half, and assume the lowest amount of energy physically possible to represent a 1 or 0 bit, and ignored all other actual work required to test the key, it would take more energy to flip that bit enough times to break the average key than there is usable energy in the known universe.
not sure how true that is, but coming from a teacher in a top tier uni, that sure sounds impressive.
This really doesn't sound like it could be that far off. Quick google returns an estimated 7x10^22 stars in the known universe.
2^256 divided by 7x10^22 equals 1.6541727033902313631938712144098e+54. I'm not sure what unit of energy it takes to "flip a bit", but you have 1.6541727033902313631938712144098e+54 worth of those units per star. So I would assume it's atleast safe to say it would take more energy to break a perfect 256bit key than there is usable energy in all of the stars in the universe.
I think "brute forcing" the person would work better than brute forcing the password/key
To add to everyone else's post about bacteria everywhere. There is bacteria in regular soil that not only is unaffected by our strongest antibiotics, but they can actually metabolize the antibiotics for energy. OMG!!! antibiotic resistant bacteria!! Yeah, trillions(or more) of these live in your backyard.
If you're that worried about your job, keep an eye out for another decent job and jump on that. 15 years of experience working for an unappreciative company is not what you should be doing. I've heard nothing but horror stories about outsourcing programmers. You get EXACTLY what you pay for.
Typically outsourced programs could be done by fewer and more educated people, be easier to manage, fewer bugs, and run faster.
You also make the assumption that gravity makes black holes. I'm not too versed in math, but logic in general is easy
#1. Gravity's attractive force will never be stronger than the electrostatic forces that hold the particles apart. One word.. FUSION and I'm not talking about DBZ.
#2. Black holes are formed by super nova explosions that can release more energy in one second than if you broke our entire sun down into pure energy. This is NOT gravity, this is an explosive force. Simple "for every action there is an opposite and equal reaction" logic
#3. Accretion discs. The gravitation forces in the discs is enough to cause fusion, which already exceeds the electrostatic force. Now, as you approach this object that you claim isn't a black hole, the gravitational forces increase by magnitudes. At some point the gravitational force is going to many many many times greater than the electrostatic force.Even if matter doesn't actually get pulled into the "massive" object, it may get accelerated near the speed of light, shoot out of one of the poles and dump excess energy as x-rays.
So, in order to disprove black holes, you'll have to disprove speed of light gravitational forces, which are already happening. Not to mention your statement of "Gravity's attractive force will never be stronger than the electrostatic forces that hold the particles apart" is wrong with the simple idea of fusion. And the gravitational force in Accretion discs is already strong enough to over come electrostatic forces, not to mention how many magnitudes over gravity will increase as you get closer to these massive objects.
I don't know a whole lot about blackholes/etc, but it was my understanding that you need somewhere around 30 solar masses to even attempt to create a blackhole. Whatever the number really is, I'm fairly confidant that I remember that our sun could not become a blackhole with it's current mass atleast via normal solar evolution.
Don't worry, once IPv6 hits, IPs will be given out based on location. Don't like Russia, ban one subnet and you're good.
Thanks for pointing out my ignorance. Since my original post was about how I saw stating that a modern system doesn't actually have a hard time displaying "HD" flash videos. So I went and downloaded my "pixel perfect" video, and it was ~800x~500 with 5600kbit/sec encoding. Yes, this does look very nice even with not really "pixel perfect"
Anyway, you came along and somehow completely missed the context of my post of CPU usage. Your eye sight may be good but your reading comprehension is not something to be impressed with.
And to go along with how a modern system runs just fine on HD, my comp displayed that 2012 1080p video at only 9-10% cpu.
ok.. had to go add flashgot and download the video to get it's stats
Length 2:03
h-res 890
v-res 502
datarate 5494kbits
total bitrate 5619kbits
59fps
audio 125kbits
audio sample 48khz
downloaded MP4 file size 82.5MB
ok. so it's not a 19x10 res, but it looks quite nice even at 8x5 when at 5500kbits
actually, it was downloading ~730KB/sec and still had to buffer because my download was capped. I would assume it was actually an 800KB/sec stream because of the pauses which puts it at 6400kb/sec, assume 320kb/sec for audio, so ~6000kb/sec. That's higher than required for blueray divx encode
HD flash videos use about 3-4% of my CPU. corei7 920. Talking about full screen video streams that eat up 700KB(bytes)/sec and look pixel perfect on my 1920x1080 screen. The biggest issues I have with flash are crappy adds that peg one of my logical CPUs.
"Run" probably the double standard version of it. If the user downloads an exe from a pr0n site then runs it, it's Window's fault. If a Linux user downloads a script off the web that has "rm -rf", it's the user's fault.
What this "test" comes down to is they ran some virii/malware and they found out some malware tries to run as admin and some malware only runs as the current user. OMG! I told Windows to run a program and it listened to me!! Shame shame MS. Next time make Windows not listen to me because I'm too stupid to use a computer.
Car analogy: Your car should know when you hit the gas, you really should have hit the breaks and the car should have automatically slammed on the breaks for you when hit the gas because you're too stupid to operate a car.
Best explication I've seen
"As part of driver training basic instruction on the mechanical operation of a car should be mandatory"
Need to stop stupid people from breeding in general
I don't know about you, but I have lovely process explorer app from sysinternals. Nice program. When watching TV/etc, I keep it up and I watch my IO/Network/Memory/CPU usage. Because I know every program that loads with windows and I know what to expect from every executable/service running. I know when/why they use a resource. If a service/whatever is reading the HD or using CPU time or network, if it doesn't have a reason, it's a dead process.
But I also have 5 virus/malware scanners, but only Windows Defender actively protects. I do daily quick scans and weekly full scans. Haven't had a virus/malware since DOS(about 15 years).. was a stupid virus to. It's sole purpose was to eat just enough conventional memory to make most exe's unable to load since back then all running drivers/exes had to fit in 640k
The difference is most other clients will throttle to best give *your* connection low latency. uTorrent is facing the other end of the problem. If a hop between you and the seeder is getting congested, uToerrent will throttle down as to help not overload that hop, Even if your connection is fine. The problem with P2P is that it eats up a very large portion of available bandwidth. If an ISP as a whole is getting bogged down, the downloaders will back off and try not to overload that ISP/Hop.
This is where a "smart" power grid could help.
I know there's a lot of ideas out there for appliances/etc that get info from the power grid and help reduce peak demand.
One of the ideas was for hybrid cars that when you leave them plugged in to charge up, if the grid suddenly has more demand, eg peak hours, that your car would dump some of it's stored power back into the grid.
So you got some people staying home, traveling, car plugged in at work and the wind turbines have some excess power that can't be used, so the cars charge up. Then later in the day, peak power hits and all those plugged in hybrids help put a bit more power back into the grid.
According to the article that wrong about this, it said the power company would have to have some way to track you personally, but would actually give you monetary compensation.
I could see these types of ideas being applied to battery banks for IT. Imagine a large secondary UPS that would communicate with the grid and would charge itself when the grid said it had excess power from Wind Turbines/etc and this power would be provided at no cost. Then, later in the day when peak hours hit, the UPS would feed ma'b 10% of the needed load for your computers for a few hours and not only "hopefully" save you money in the long run, but help reduce grid load during peak.
This does add losses since now you may be taking power and storing it, but isn't that overall better than not using the power at all and losing 100% because there isn't demand right when the wind peaks?
Laptops also cost about 2xs as much desktops and the DS costs slightly less than the WII. Unlike the laptop, the DS has a whole separate hardware set than the WII, so it's not like they can copy/paste the WII into the DS like they can Desktops into laptops
The nice thing about Win7/Vista is that all the versions of the OS are decided by the key used. This means I can take my copy of Win7/Vista OEM install it on my mom's comp and use her key and it'll downgrade itself to whatever her key is. Since her HP doesn't come with a vanilla copy of windows, just a restore disc that includes all the crapware pre-installed, this is nice.
My old Uni IT job, we just had an image we dropped on a new machine. Image it, start it up, walk away for 30min, come back, name machine, machine is now connected to Active directory with newest Windows Patches from our WSUS and crapware free.
Doesn't that defeat the purpose of standards?
That's like saying that we should get rid of the x86 instruction set and just use the micro ops. A layer of abstraction helps and is required for a standard to work.
Obviously there are many different ideas of "performance"
Keyboard drivers. I've had many different keyboards and they all seem to use the same default MS drivers, they all work within seconds of plugging into my USB and ALL the features/extra buttons seem to work. My guess is that Ms has a large generic driver that compatible with a lot of different setups and enabled/disables features as detected.
OS getting slower/etc. Seems to me that Vista had fewer 'pauses' when working with the UI than XP. This helps with perceived performance. Glad I only got Vista once SP1 came out, I hear Pre-SP1 sucked.
Using more RAM. Vista/7 will use any free memory, up to 20% free, to cache data to help speed up performance. Vista/7 will dynamically unallocate cache if you get lower than 20% free memory. When I look at my memory usage I see 2.5GB used. 20 tabs of Chrome, Visual Studio open, WoW eating 1.5GB ram, bunch of desktop gadgets, and I still have 1.5GB of my 4GB free.
Pure CPU "performance" via number crunching. I have a Corei7 920(2.66ghz). I run a few distrubuted number crunches to help cure the world. The theoretical MAX for an i7 is 2 flops per cycle but since a program can only issue one OP at a time, these two Floating point instructions must be issued via hyper-threading, otherwise you're limited to 1 FLOP per cycle. Guess how many FLOPs I'm getting per logical CPU.... 2.66 billion FLOPs average. That means I'm getting EXACTLY the theoretical max. I have a few SSE crunchers and they are a TON faster than even that. Same benchmark claims over 7billion ints/sec per logical CPU, but I'm guessing that's MMX? Either way, 14billion ints/sec per physical core is crazy fast. Since actual number crunching is not limited by the OS in anyway, not even -1%, the only "low" performance must be in IO functions.
HD performance. I have some 2GB+ videos I like to manipulate so I sometimes make a copy of on of those files for back-up purposes. Now, I have a $1k dell that I bought at best buy. This is NOT a high end machine. Some crappy 7200 rpm HD. When making copies of these large video files, I average ~75-80MB/sec or under 30seconds for a 2GB file. That's not copying from one HD to another, that copying from one place to another on the SAME HD. I don't know about you, but 80MB/sec reading is fast, but copying... that's crazy. On a similar system with a 7200 rpm drive, I'm getting 30MB/sec in XP. Obviously my new system should be some faster, but almost 3xs faster for a same RPM drive? Both systems are under 5% kernel cpu time during the copy.
I'm getting 45-50FPS compressing 1920x1080 with 2pass xvid 1.22 set to the highest quality settings and that's only using 40% of my cpu
So in a nutshell, my computer is crunching numbers at it's theoretical limit, it's copying files about the theoretical limit of the HD, I get great FPS in games, Win7 UI is more responsive than previous MS OS's. What's this "low" performance? Do you expect to get greater than the theoretical max? Ma'b you machine is old and you need to buy a $1k Dell like I did.
That's because you only need to buy a single copy of Snow Leopard to install it on any Mac. OMG! you just figured out the MS sells an OS and Mac sells hardware, imagine that.
If you actually read up on how CPU's work, how cache works, then Parallel programming is easy. I'm mostly self-taught . My first few multi-threaded attempts had weird issues, but then I got past the logic errors. My next big issue was having too many locks. Once I got past that, I realized if you just break everything up into objects and each object designed from the get-go to be built for parallel processing, then it's cake.
My biggest disadvantage to being self-taught is not knowing predefined cases to common problems which results in reinventing the wheel and/or being slightly suboptimal.
Knowing how cpu's work can make a big difference since some low level commands are inherently safe from being preempted, like incrementing an integer. But someone may use a 64bit integer and it works fine on their 64bit machine, but on a 32-bit machine a 64int isn't just a simple instruction, it's multiple instructions and can be preempted. Stuff like that.