Jump to content

Search the Community

Showing results for tags 'programming'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • LTT Official
    • LTT Releases
    • Forum Information
    • WHALE LAN
    • LMG Sponsor Discussion
    • LTTStore.com Merch
  • The Hub
    • General Discussion
    • Tech News
    • Off Topic
  • The Workbench
    • New Builds and Planning
    • Troubleshooting
  • Computer Hardware
    • Graphics Cards
    • CPUs, Motherboards, and Memory
    • Power Supplies
    • Cooling
    • Cases and Mods
    • Peripherals
    • Audio
    • Storage Devices
    • Displays
    • Networking
    • Servers, NAS, and Home Lab
  • Software
    • Operating Systems
    • Programs, Apps and Websites
    • Programming
  • Video Games
    • PC Gaming
    • Mobile Gaming
    • Console Gaming
    • Looking For Group
  • Consumer Electronics
    • Laptops and Pre-Built Systems
    • Phones and Tablets
    • Home Theater Equipment
    • Photography and Videography
    • Hobby Electronics
  • Community
    • Folding@home, Boinc, and Coin Mining
    • Build Logs
    • Member Reviews
    • Guides and Tutorials
    • Hot Deals

Blogs

  • Growing up. An Aussie Thechy
  • Bleedman0xx's Den of Experimentation
  • Day by day life goes on...
  • Megadarkwood's Blog
  • Ssoele's Blog
  • Forum talk with Lil Chillbil
  • wng_kingsley7's Blog
  • [Game Dev Log] Unnamed FPS
  • Konker777's_Blog
  • IdeaStormer's Blog
  • gastew15's Blog
  • LoGiCalDrm's Thoughts
  • ericlee30's Blog
  • A day in the life of brownninja97
  • Slayr's room
  • looney's Blog
  • ASSASSIN's outpost
  • Bluejay0's Nest
  • EpicGeekonFire's Blog
  • rianjp16's PC parts list
  • TheSLSAMG's Garage
  • nsyedhasan's search for jiggabeets
  • TEC Blogs
  • Why i love / hate web development
  • Steam Controller
  • Vitalius' Blog
  • Wpirobotbuilder's Blog
  • Storage Blog
  • Material which is knowingly false and/or defamatory, inaccurate, abusive, vulgar, hateful, harassing, obscene, profane, sexually
  • Whaler_99's Happy Fun House Blog
  • Juurus' Blog
  • SkullAbyss' Blogs
  • Tea1337's Blog
  • Flyin' Flymaster | Theatrical Rigging
  • Personal PC/Storage/Infrastructure/Network
  • The Depths of Technology
  • WinNut's Train Barn
  • Zach.No.
  • Haralds55's Blog
  • amazing life
  • I Need help fast BUDGET $2200 (including mouse, keyboard etc)
  • R9 280x
  • R9 280x
  • R9 280x
  • Osmium's fabulous page of rants and stuff!
  • Brapson's Bag of Thoughts
  • First PC build. Any Suggestions?
  • Radiators
  • Alpha17x's Blog
  • ThatGammerKid's Blog
  • seabass9990's Rant and Pondering Blog
  • Jogostar's Blog
  • Matt Robinson Tech Views
  • terere93's Blog
  • terere93's Blog
  • MyBF4pc's Blog
  • Chris7013's Blog
  • Manuel99's Blog
  • SSOB Or nothing
  • DIY NAS
  • VPN Service
  • FocusBoxHero
  • The blog which is SeriuzBuzinez
  • Jason Jamelo's Blog
  • REXOR456's Blog
  • LeeToby's Blog
  • PC Build need help on whats needed
  • sharif's Blog
  • Alex_A90's Blog
  • mettler0618's Blog
  • SpurnOfHumanity's Blog
  • Jasecore's Blog
  • JAYJAYBEE303's blog
  • bwh5816's Blog
  • crappydog1050's Blog
  • crappydog1050's Blog
  • hard decision between amd fx 9590 or intel core i7 4770k?, please no fanboy
  • New 700$ Build Need Help First Time Builder.
  • Asesino Tom's Blog
  • TRIGUND's Blog
  • Volbet's Firehouse
  • Jake Taylor's Blog
  • Old truck is new again
  • Vince_DL's Blog
  • Does it love you back?
  • rippedj's Blog
  • antoainb's Rant n' Stuff Blog
  • spider monkey's Blog
  • Ynkeeblood9's Blog
  • Check my specs!
  • It's not original, but it'll do.
  • kriege's Blog
  • EmotionalSloth's Blog
  • Polandball Comics
  • Android on x86
  • help with a motherboard
  • phoenixgamer912's Blog
  • SaleemVFX's Blog
  • kingbf4's Blog
  • R4 Build Log
  • Helios79's Blog
  • DecryptedDrive
  • DecryptedDrive_LOCAL
  • r9 280x reference card
  • LawrenceBarnes's Blog
  • SpikeyMikey21's Blog
  • wolftoy's Blog
  • Tymakz's random thoughts!
  • uli
  • Minnesota Strong's Blog
  • The AMD Radeon R7 260X
  • Needalight's Blog
  • thetitanzorg130's Blog
  • A little help here
  • need help picking a keyboard
  • aken's Blog
  • SP.2 PRODUCTORY Blog
  • Switching to Linux Permanently
  • Q Talks About...
  • Ten Year old's build
  • miku126's Blog
  • Msxander99's Blog
  • LUCIFER's Blog
  • The Rabbit Hole
  • Corsair 250d Case window dimentions
  • PoonDad's Blog
  • O_O
  • thresh41's Blog
  • DildorTheDecent's Blog
  • Minibeast's Blog
  • Nikolas' Blog
  • tenmoleyhendens' Blog
  • Pebbleberries' Blog
  • Maxwit44's Blog
  • Mr.Sommer's Blog
  • AMD's Path to Being Debt Free and Successful
  • The Dude Speaks...
  • Automatic Intelligent Rig Assembler
  • ObeseWalrus' Blog
  • AlWinwood's Technology Blog
  • JonnysWeb Blog
  • USB DRIVE VS. SSD DRIVE
  • mvitkun's Blog
  • SgtRafsta's blog bout life
  • KareemGhanameh's Blog
  • my life sucks
  • Addlinny's Games and Tech
  • zadda1's First Blog
  • Killaknight's Blog
  • estil's Blog
  • MeNotAliveHD's Blog
  • dizmo's Blog
  • TrueOgre's Blog
  • AHappyDugong's Blog
  • New build! \o/
  • MrDucco's Blog
  • vintarq's Blog
  • Canopus72
  • SwagMoney557's Blog
  • Rants
  • Custom Modding My Custom PC | Grant_gwdigi_Tech
  • Alejandro31's Blog
  • supersaltyname's Blog
  • supersaltyname's Blog
  • ASUS Maximus VII Formula ROG Z97 and Gigabyte Z97X-GAMING G1 WIFI-BK Motherboard
  • My Week with Jarvis
  • ridge1002's Blog
  • djdwosk97's Blog
  • eagertolearn
  • JIT's Gaming and All Around Tech Blog
  • saif's Blog
  • techswede's Ramblings
  • Lanoi's Track
  • Macbook Pro Retina Review Over Time
  • Enigma's Blog
  • 4980HQ Experiments
  • s00cl0se's Blog
  • NovaFlux on Computers, idiots, and how shits so damn expensive
  • -Cole-'s Blog
  • A10Tech
  • I need help for a video editing/gaming/recording processor
  • M e T r i X's Blog
  • SLI compatibility
  • Victoria277's Blog
  • GhostWindGamer's Final Ranting Place
  • Build Log Blog
  • Intel Integrated Graphics Development: Pure Speculation
  • the unknown's Blog
  • ImOnTheComputer's Blog
  • Nvidia VS AMD: AMD's Advantage
  • zadda1's Blog
  • PaulCahilig's Blog
  • I need some help
  • My new pc isn't working
  • Failures of Ubuntu: An Enthusiast's and Programmer's Perspective
  • adenoidpeak66's Blog
  • I Need To Build Budget Gaming Pc
  • My Tech World and Reviews
  • I have my list of parts to do a PC. How do you rank it?
  • The ULTIMATE Watch_Dogs Optimisation
  • LukaP's Mac G5 CaseMod
  • Its not a blog just dont know how to post
  • I need Evolve Key please message me if you have one
  • tacodemauro's Blog
  • Syntaxvgm's Blog
  • Sho's Blog
  • a day in the life of a student
  • WoW is fun and finals are coming...
  • Welcome templete
  • Banana Milk's Blog
  • Guardian 75's Blog
  • Armitage's Blog
  • i need help with steam
  • Chronicles of the LHS Computer Club
  • R_Kaplan23's Blog
  • pantsRoptional's Blog
  • •[]•-PCMC ℂaℒℒ-ℊIrℒs Ѻ7Ѻ578IѺIѺ4 _=_ Ѻ976775824Ѻ Baner-PiMpri EscOrts Service-Hinjewadi, Dehu rOad Call Girls
  • AdoreMe's Blog
  • yeasin's Blog
  • HeathcliffGR's Blog
  • JScott03's Blog
  • heartleyj's Blog
  • Razer_Intel's Blog
  • Random drivel
  • ShaunHawkwright's Blog
  • ChameleonGuy's Help
  • hillbill549's Blog
  • Help With My Gaming PC Build?
  • G E E K A Z O I D
  • Where are the GTX 970/ 980 8GB Versions?
  • panozy's Blog
  • panozy's Blog
  • Dreamo's Blog
  • Nitz's Blog
  • intel ssd upgrade BSOD
  • Amethyst Castle
  • Buttertoast's Blog
  • I need help
  • Jobo's Blog
  • littlemanbigdreams' Blog
  • heatherheidi89's Blog
  • What Inspires Me
  • geoyul's Blog
  • Lays' Blog
  • domdom116's Blog
  • what new should i get?
  • tTrReEvVnOeRl909's Blog
  • jal12795's Blog
  • The Hermit's Corner
  • Persuasion Blog For class
  • Unfinished Pieces
  • vStatic Zer0's Blog
  • Nickzoom's Blog
  • Desert_Storm_'s Blog
  • Things Nowak Says
  • kamdevvashikaranmantrasBlog
  • blackmagicspe££ Blog
  • amin.a.nakhjavani's Blog
  • DxD~'s Blog
  • Anthony's Apartment
  • U can't take my Sweg
  • eestimees50000's Blog
  • Radeon HD 7770 GHz Edition w/ 300 W power supply?
  • I blogged
  • first pc build
  • shadakak's Blog
  • SSD and hard drive config?
  • Smokey Attempts: PC On The Wall (Drawer)
  • Smokey Attempts: The Red Mod
  • Smokey's Chronicles
  • darkreaver's Blog
  • Helionet's Blog
  • Current Events and General Overviews
  • Rexibous' Blog
  • creatureofthecave's Blog
  • reRoast
  • Project Retroid
  • Good android phones
  • tterbkcots' Blog
  • mustaphaist's Blog
  • 1823alex's Blog
  • KESS_217's Blog
  • zenithar's Blog
  • Toms' rants about Esports and CS:GO
  • Brother PC Build
  • Swndlr's CSGO Skin Showroom
  • Swndlr's CSGO Skin Showroom
  • jmad2011's Blog
  • Child's Play
  • Teknoligie
  • buum's Blog
  • Brad.Neil's Blog
  • Upgrade build
  • Kendo's Blog
  • adzzkasper101's Blog
  • Kavala Checkpoint
  • Tower Builds
  • is amd still good for editing
  • † Tech Tips Christian Fellowship †
  • krishi's Blog
  • Where I post so I don't spam my statuses
  • Prastupok's Rants and Thoughts on life and computers.
  • My PC Upgrade Blog
  • zeldafan19's Blog
  • bigirishman's Blog
  • SSL's Blog
  • knkritpillw's Blog
  • knkritpillw's Blog
  • HiddenTLR's Blog
  • Steve83990's Blog
  • qwertywarrior's Blogimm not allowed on offtopic so im gonna post here
  • MustafaNL's Blog
  • Cool idea for new office/super fun time
  • Cool idea for new office/super fun time
  • help me remember
  • FloRolf's incredible Blog
  • murz's blog
  • Nvidia GTX 660 ti wanted
  • Sarbartha's Blog
  • The Mechanical Experience
  • YeahLOLNo's Casual N00b Blog
  • Le boring life of Zach
  • Biferony's Blog
  • russell dahms2's Blog
  • Slim 24 Pro India
  • prashanth13's Blog
  • madtomzxc's Blog
  • Power Supply
  • orangemonster's gaming rig
  • need help GPU not working!
  • which GPU?
  • Speedierbug's Blog
  • Building My First Gaming PC
  • BIG BIG GIVEAWAY
  • jitflexx's Blog
  • Joysontp's Blog
  • ImTamTam's Blog
  • Backfishr's Blog
  • The Great Vessel Giveaway
  • normix123's Blog
  • Backfishr's Blog
  • Vessel giveaway
  • Durairaja's Blog
  • Molivas1998's Blog
  • CriminalReaper's Blog
  • Lukas Jonneryd's Blog
  • Big Giveaway
  • SidWiz's Blog
  • SidWiz's Blog
  • SidWiz's Blog
  • SidWiz's Blog
  • Tedjej's Blog
  • Robin Tharu's Blog
  • Sam_Walker's Blog
  • Sam_Walker's Blog
  • Shark Vader's Blog
  • Craig;Strachan's Blog
  • moodyjake16's Blog
  • GamingGab's Blog
  • giveaway
  • KappasUnite's Blog
  • gary123
  • Big Giveaway!!!!!!!!!!!!
  • Mat123's Blog
  • AugustG1's Blog
  • RaymondB's Blog
  • BIg Giveway
  • TobbeDeVall's Blog
  • westlee83's Blog
  • Stefan99's Blog
  • AwakenedIssues' Blog
  • Hypros' Blog
  • epilole's Blog
  • SuperiorAnion's Blog
  • Big Give Away
  • Kasper Friis Kristensen's Blog
  • Jimmy's Blog
  • TheDrunkenBear's Blog
  • StaticZebra1's Blog
  • StaticZebra1's Blog
  • Vessel Giveaway
  • LordSquire's Blog
  • Kabeltrommel's Blog
  • blacknight642's Blog
  • golgeter100's Blog
  • Autumn_Elephant's Blog
  • Linus giveaway
  • awesomepossum's Blog
  • navjeet321's Blog
  • navjeet321's Blog
  • linus give away on vessel
  • Linus giveaway
  • Uber giveaway
  • jmotl96's Blog
  • dildo_baggins' Blog
  • Silverstar233's Blog
  • Vesselll
  • Big Giveaway
  • YourComputerGeek's Blog
  • TMLK's Blog
  • Onka's Blog
  • xtianlegaspi's Blog
  • x4biddenxgrimmx's Blog
  • Smrda123's Blog
  • GooBado's Blog
  • PandaOwl2's Blog
  • Big Giveaway
  • Veljko's Blog
  • roarreduce's Blog
  • Vessel Giveaway
  • gamingbanta 1's Blog
  • Big Giveaway :D
  • Stef's Blog
  • Big Giveaway :-))))))
  • JaylChambersIII's Blog
  • Big giveaway!
  • Big giveaway!
  • Big Giveaway
  • All good things must come to an end
  • KimSH's Blog
  • big giveaway
  • Big giveaway
  • Aetherial's Realm of Things
  • Big givaway
  • Big Givaway
  • Best Computer Cases under, $80
  • Thebman712's Blog
  • mmuller2015's Blog
  • Maxdepalma's Blog
  • fishhydra1's Blog
  • safwanroslan's Blog
  • xXINDUSRTALXx's Blog
  • Justgotdunkedandrekt's Blog
  • maad's Blog
  • NoobDude's Blog
  • my mice issues
  • duileilome's Blog
  • mahrok's Blog
  • Slick's Blog
  • levidittrich's Blog
  • Editing program For gtx 900 series
  • Ctrl's Blog
  • TheGreatMage Gaming's Blog
  • HELLFOX's Blog
  • kingston ssdnow v300 120gb not recognized on windows
  • myrddinshadows' Blog
  • Gaming PC need it at ~$650-700
  • David Jones
  • mrousavy_'s Blog
  • IGeorge Blog
  • HexGamingYT's PC Case And Motherboard Blog
  • DudleyTM's Blog
  • saadkat6666's Blog
  • Maitrik's Blog
  • dustincarlton88's Blog
  • Pugs501's Blog
  • the ongoing build battle
  • Ellie's Hella Pooter Blog
  • Question
  • aylmao.moe
  • Strando123's Blog
  • dr_deconstruct's Blog
  • IronGamart's Blog
  • KBH's Blog
  • High Performance Computing For Dummies
  • Custom PC Build Guide
  • Guys Please Help!
  • ilias_ragkousis' Blog
  • Butters_420's Blog
  • JoeStoutatl's Blog
  • zappian's Blog
  • JurunceNK's Blog
  • Procesador
  • Fx 6300 With gtx 960 or r9 280x is best
  • ThatGuyWhoTwirlsHisPen's Blog
  • Moving to the PC Master Race
  • Tf2 spycrab raffle
  • f5alcon's Blog
  • Need Help With GPU Choice
  • What should I buy for video editing?
  • NDY777's Blog
  • dragonballz's Blog
  • Agent80085's Blog
  • Tech and Gadgets Archive
  • Tex63's Blog
  • help tips and tricks
  • killerfox1977's Blog
  • CoolaxGaming's LTT life
  • tnt's insane inside
  • Best builds around $600
  • Casper The Cat
  • Where did you get this?
  • Asus 24" VG248QE or BenQ XL2411Z
  • Life of a Techie
  • G33k 4 L1F3's Blog
  • Prof.TEACHER's Blog
  • RasenShuriken's Blog
  • Bazinga's Pc?
  • My $1000 Gaming Pc Build
  • A new way to watercool a pc? And an hybrid solution!
  • please help me
  • Can this pc run gta 5 at 60fps
  • Neater123's Blog
  • noor's Blog
  • Project Zoe
  • Medieval kingpin
  • 775 Monster
  • My life as 1 of 2 PC builders in the family
  • osx maverick virtual machine
  • Izaibo's Blog
  • Tharusha's Blog
  • Maricruz8500's Blog
  • First Water Cooling Build
  • Cryless' Blog
  • realtek decide to block 7.1 software playback
  • My Bookmarks
  • Sgt.Puggsly's Blog
  • Pepijnn2's Blog
  • Used GTX 970 vs GTX 980, Which should I get?
  • Suemael's Blog
  • My first gaming PC
  • zodiac
  • Where to Buy Asus NX90?
  • Building a 600€ gaming PC
  • HanselPutra370's Blog
  • Dis is confusing
  • TheNinjaElite's Blog
  • GameCast News Weekly
  • LukaP's Blog
  • Can my PSU handle this build? (Especially my GPU)
  • PepeSilvia's 1st Build research
  • NAR31K's Blog
  • UCGAMEPC's Blog
  • gundamboy123's Blog
  • razer product problem
  • Demetria's Blog
  • Dabobminable's Blog
  • Darth Morbis (Build and Showcase)
  • Need Help!
  • Michael26's Blog
  • souviksundargh2's Blog
  • jivan's Blog
  • deavmi's Blog
  • AgentEddie99's Blog
  • Tayer's Blog
  • xps 13 vs thinkpad t450s
  • Ram Upgrate???
  • Rashy's Blog
  • kalyan chand's Blog
  • illegallybrowned's Blog
  • Kay@'s Blog
  • Frost Ninja's Blog
  • Computer Case Project
  • Looks at my suit!
  • Soham Amin's Blog
  • samsterling's Blog
  • Project Cove
  • JakobRosell's Blog
  • Deadpool9011's Blog
  • ronickz's Blog
  • tebinsta's Blog
  • ElvanOng's Blog
  • Dispelling some R9 300 series confusion
  • john lorenzo patayon's Blog
  • The Bleeding Edge
  • STRMfrmXMN's whitelist of PSUs
  • AK Angel's Blog
  • TechXero's LTT Blog
  • Random things with a raspberry pi
  • The Development of Neon
  • Zeruel's Blog
  • Multithreaded Game Template Code
  • rivalrifle's Blog
  • Pc Blog
  • Raid Zero Danger?
  • WHEA_UNCORRECTABLE_ERROR
  • A wee bit if help needed
  • Can hear but when I talk into mic my friends can hear me with the SS 9h
  • Jlryan's Blog
  • +Core ? vs Faster Core ?
  • Harryoclegg484's Blog
  • JOEJOE20's Blog
  • Tommy-b-10's Server Build
  • Lowering the voltage
  • Cockpit Creation
  • Needing a good laptop for school under about 1000 euros or under
  • Taylor borie's Blog
  • is this pc good
  • Harry Sidhu's Blog
  • Brakes on Driverless Cars
  • Rohanm's Blog
  • Recommendations for water cooling
  • Herping And Derping With Zexen
  • Keven_Z's Blog
  • Polgara's Blog
  • ToastyCircle151's Blog
  • Patzemon's Blog
  • Elllie's Pooter blog with some sparkles and custard
  • joe henigan's Blog
  • OC→JoinLinusMediaGroup's Blog
  • desired70's Blog
  • The Adventure's of soaringchicken
  • Benchmark´s R7 260X
  • baxtmann's Blog
  • Bwahhh
  • mrpepo16's Blog
  • CupOfJoe's Blog
  • Jim-B's Blog
  • Are these parts decent with each other?
  • killerson69's Blog
  • Daddy-Oh's Blog
  • abhinav95's Blog
  • enrico2001's Blog
  • Help, Want to make my first Gaming PC
  • What is the differance between a 128 bit and a 256 bit graphics card?
  • *NEED HELP* NEW GAMING RIG 2015
  • Calvin10112's Blog
  • Fx 9590 Cooling
  • budget 3D modeling advise
  • Frosteler's Blog
  • AnnieSmith's Blog
  • Help with parts and bottlenecking
  • Atarexy's Blog
  • HELP ME PLEASE!!!!
  • Please help
  • SoloGamingG1's Blog
  • kamikaze_sarg's Blog
  • HELP!
  • JBPblogging
  • AVICII_USA's Blog
  • AlexAppleTips
  • albiedam32's Blog
  • Need completely over kill pc NOWWWW!!!!
  • first gaming pc build
  • ShayanLP's Blog
  • R4 Build #2
  • RAVE
  • The Rig Build
  • Epiceleon's Blog
  • Desertman's Blog
  • 9blazed-fury9's Blog
  • Enderking's Blog
  • Romario9113's Blog
  • PC Spec help
  • alexit95's Blog
  • ZonkyHD
  • Please help me i'm building my first pc and I need good part's for 1,500
  • URGENT
  • Best 2011-v3 motherboard
  • SirMonti's Blog
  • PC Issues
  • DevTechTips' Blog
  • Which headphones
  • Lyngaa's Blog
  • Moosecoop's Blog
  • ryangunter1's Blog
  • Kanye90's Blog
  • LocalGook's Blog
  • Blackis_007's
  • ilance101's Blog
  • Olafny's Blog
  • jakecurrier33's Blog
  • Should i buy this prebuild pc?
  • tleejr5349's Blog
  • Bobert1011's Blog
  • Voltage computer systems
  • Nandit_HAF's Blog
  • Good price for selling a computer...
  • Tony Z's first pc
  • James's Blog
  • The-Furrbles' Blog
  • danny8632's Blog
  • Help me with my Stoomtrooper?
  • Need help with CPU bottleneck
  • My Dream PC
  • My Gaming Rig Review
  • Drummaboy57's Blog
  • A techy blog
  • WIDE SCREENS UHH :3
  • Nettot's Blog
  • AbdulQadeer's Blog
  • Jake's Tech Selects
  • TheSkylord2104's Blog
  • PSU Upgrade?
  • Thoughts from Sunshine1868
  • handymanshandle's Blog of Blogginess
  • one fault about amd GPUs
  • For the Noobs
  • SmittyWerbenJagerManJensen's Blog
  • Shyamrao's Blog
  • Dell Inspiron 15r (5520)
  • Raman_Kumar_Kharche's Blog
  • Raman_Kumar_Kharche's Blog
  • BlueMagma1's Blog
  • THE BEAST
  • Open looped water cooling
  • BigKahuna's Blog
  • pcman365's Blog
  • LoafMan's Blog
  • WanderingX7's Blog
  • viper123's Blog
  • GeorgeJacobIsANerd's Blog
  • GeorgeJacobIsANerd's Blog
  • A random PC thoughts blog
  • Systool Overclocking Infectious
  • PatonFTW's Blog
  • Motherboard & Case upgrade!
  • JonnySel007's Blog
  • Noob looking to upgrade
  • Scrapyard Wars Ideas
  • VintageThief's Blog
  • MangoIce's Blog
  • a2j_'s Blog
  • Kanoire's Blog
  • Toysoldiers35's Blog
  • Flappie's Blog
  • Andria's Blog
  • x_xMDFKx_x's Blog
  • Guywhoneedshelp's Blog
  • 3drenderings123's Blog
  • New pc for under 750$
  • Hackintosh Under 5000 USD
  • Sekhon's Blog
  • B4USAWME's Blog
  • Computer turns on but no display output...
  • Please Help
  • Harry__Bird's Blog
  • Noob Builder
  • Love Minecraft Blog
  • AC Router Help
  • kiwicasper's Blog
  • Sound Card suggestions?
  • New Cars Review Blog
  • SteelHaddock's Blog
  • Honda dream of life
  • Gaming Monitor
  • Using Microsoft Edge
  • AurorasDestiny's Blog
  • AIO to Dsktop plan
  • Xboxfreak's Blog
  • redlimerock's Blog
  • Choosing a UPS battery backup
  • tibosuys_'s Blog
  • Windows on a laptop?
  • Gaming/Work-Horse PC
  • B1tKru5h3r (My workstation)
  • Ultraretrotech
  • cestigoy375's Blog
  • MrNeeds2know's Blog
  • Xenift's BuildVille
  • TELL US YOUR PC SPECS
  • LTT Audio Sub Recommended Audio Gear
  • arnab_razor's Blog
  • sonic72391's Blog
  • MrUnknownEMC's Christmas Giveaway
  • shadowbyte
  • HADA's Blog
  • GSTARR
  • Vicyo's Free Time
  • Cow House
  • Star Wars Movie Review
  • SteelHaddock's Blog 2
  • New Pc Startup issue
  • WDC's Blog
  • eoinmuirhead's Blog
  • I NEED HELP!!!
  • IKNOWIMBOSS' Blog
  • zakaria jouimaa's Blog
  • Corsair K30 Raptor Lighting Effects
  • Kevin2015's Blog
  • My Random Creations
  • Making video games (or at least trying
  • Mohammadhussain's Blog
  • BigJigglyPanda's Blog
  • odinpalen1234's Blog
  • optelic2003's Blog
  • thegamingmau5's Blog
  • CrapShackGaming's Blog
  • SnipeWay's Blog
  • Ashraf_Akon's Blog
  • Nestorrd91
  • WhOaMi-Gaming's Blog
  • LegoManPilotGaming's Blog
  • GreenJesus' Blog
  • smiddy305's Blog
  • Brutalizer's Blog
  • CameronWagers' Blog
  • Should i build a pc
  • Awesome Tech Site
  • Cool Tech Sites
  • ScarisRacer's Ramblings
  • advice on my pc
  • Jakub321's Blog
  • Weekly JaKobs
  • Help me Please
  • Vietnam Visa On Arrival
  • Solidice's Blog
  • Curious
  • LankyIvan's Blog
  • chris070163's Blog
  • heggy_1's Blog
  • RandomnessSlaya's Tech Talk.
  • Cheap PC Build
  • The epic $300 Build
  • GizmoDude52's Blog
  • Jahramika's Blog
  • CPYarger IT Services
  • The Blog of An Average Tech Geek
  • PCZAVRE BLOG
  • My system automatically just run down
  • Is eSports an actual sport? I definitely think so.
  • itsMilan Creations
  • Joonikko's Blog
  • VIDEO CARDS!! (help me god)
  • Windows 7 and 10 resources and commentary
  • Team Adam
  • Learning Russian
  • Yuan
  • Opinion of my PC Build
  • a home made NAS in a desk
  • CPU Overheating on startup
  • NEED HELP
  • Lerodz8
  • Help I'm building a computer and I don't know what drivers to Insta
  • Abdul Samad
  • Should I SLI? Or upgrade?
  • Modded PCS+ 390x
  • More Case Reviews?
  • Intel Nuc with dedicated graphics
  • JXZT
  • Setups
  • Suggestions for my New Gaming PC
  • The Nubby Ninja Blog
  • A PC THAT IS WORTH $1500
  • My first build will it work
  • HELP FOR SUPPORT MAXIMUM RAM LIMIT
  • gtx 960 preforming wierd
  • Build list-best for budget!
  • iamdarkyoshi's Random Stuff
  • The Truth About Beats
  • Alex
  • no post
  • Djole123 tries to Windows 95
  • Why You Shouldn't Blame Intel For the PC Performance Slowdown
  • Display Things
  • Deals
  • KRONIKL
  • DownToEarthTechtips Blog
  • Engineering log
  • Alan's Blog
  • Yurizaki's Tech Ramblings
  • Nathaniel S. Edwards
  • i5 6600k vs i7 6700k for gtx 1060
  • FrostByte: My personal rig
  • Important tips that will help you grow your business mind
  • Lovinglasvegas
  • My sort of scratch build of an ATX case.
  • PaintChips
  • Vernon Glick's Blog
  • My Hackintosh build
  • Test Blog
  • Miscellaneous
  • Life Status Update
  • Real Game Engine Code Optimization
  • Server and Networking Blog
  • Programming: You Think It, I'll Optimize It
  • LTT/Forum App schenanigans
  • Remix's Technology Blog
  • IGPU TEST-LAPTOP | SPANISH | ENGLISH | <3
  • QA Web Testing and software testing NEWS
  • Finally upgraded GPU!
  • Spicy Italian Discord Bot
  • Build Dictionary
  • Graphics Card
  • Lyft Stories: The Wild & Sad Tales of Washington's 'Finest' Passengers
  • $1000 Builds
  • Technology: PC vs Automobile
  • It's not a bug, it's a feature!
  • My Build
  • My Linux guide
  • Tech Dreamer's Thoughts Basket
  • An admittedly silly concept for a first build
  • Iphone productivity
  • Charter Email Technical Support Helpdesk 1800-721-0104
  • What if you are unable to install third party software? Just call us on Apple Tech Support Number +1-800-468-9074.
  • AOL Customer Care Number +1-844-502-0074
  • Victor
  • Apple tech Support number
  • Miscellaneous Data Resources for Everything
  • Harinder siwach
  • Just a student's blog :)
  • PCPartPicker Build's
  • Ooooo forgot about these! :P I'ma start one!
  • webdesigntrends
  • Max's Journal
  • Slowly Upgrading an ASUS cm1730
  • Zack's Power Hour Thinking Blog
  • coqueiphone
  • Finderding
  • Streaming PC on a Budget? (Parts list/ideas request)
  • Business & Personal Related Blog
  • Tech Media
  • My life is a nightmare and all I live for is computer hardware
  • Telecommunications
  • K65 RGB LUX HELP!
  • Problem i need to solve fast!
  • Nightwalker
  • king_gonzalez.23
  • Does this work out?
  • Nootrina
  • Help with power supply please.
  • Why MySQL is better than Couch DB?
  • HP Compaq 6000 Pro Case Help?
  • Most powerfull CPU in the world.
  • PortzJ's Pc Life
  • Peeps Games - Zombie Escape
  • Need help upgrade cpy
  • HTML File Explorer BLOG
  • i can't unpack ram or create custom kernel
  • Doc's Cafe
  • Chaching's Problem Between a GTX 1050 Ti or a RX 570
  • Revealing HELLO2 Video Communication Device
  • Putlocker.! The Walking Dead Season 8 Episode 14 Full Online Free
  • Topniun
  • Blog of a Broke PC Enthusiast
  • deep
  • Semicolon
  • Colson's Rants
  • Be Sure Before Choosing The Right Bangalore Escort Girl
  • How to Have Fun with World of Warcraft Cosplay
  • D13H4RD's tech cavern: My opinions on many things tech and gaming plus cars
  • Need tech help
  • Computer interoperabiliy is now aweful.
  • Laptop Temperature Problem
  • Brouilleur de telephone portable est essentiellement
  • Aol desktop gold download
  • Download the AOL Desktop Gold Software
  • Microsoft office word corrupted file recovery
  • Password Recovery in AOL Desktop Gold
  • Chalkie's Weight loss Blog
  • World Travel
  • Meerkat's Flight Training
  • Well so far i hate my life
  • Health & Beauty
  • TopHat's First (and Last) LTT Blog!
  • Why not?
  • The Frosty Fest accident launches for PS4
  • Antonio Conte can play his two assiduously the added way round
  • Speed still reigns absolute in Madden
  • A new way to hack Facebook account in seconds and has not been blocked yet
  • I don’t anticipate MLB the Actualization 18 has looked better
  • MLB The Actualization alternation will not be able
  • Ambition to see how they administer to Rocket League
  • blogs_blog_1143
  • The PC and Xbox One communities get an arrival of new talent
  • We see Rocket Accord as a agenda sport
  • Sox appear on Tuesday that Garcia was placed
  • Rocket League is on the border of its third ceremony
  • Exciting being advancing up for Rocket League admirers
  • It adeptness be the endure big riff we see on the bulk Rocket League theme
  • FIFA has become the advertence bold in football simulators
  • There's something acutely acceptable about rocketing into the sky
  • There's something acutely acceptable about rocketing into the sky
  • Sterling Shepard is one of those ardent Madden admirers
  • What is the best 3DS homebrew app?
  • Accept such a bang with MLB The Appearance 18
  • Rocket League's gameplay translates aloft acutely able-bodied as a result
  • Rocket League's gameplay translates aloft acutely able-bodied as a result
  • Their Rocket League action is deceptively simple
  • We still do not apperceive a specific absolution date
  • Who ambition to accomplish something in FIFA 19
  • Frick Accolade for broadcasters in a commemoration at Doubleday Field
  • Our best admonition at this moment in your FUT career
  • Dự án chung cư nam rạch chiếc quận 2
  • Yahoo Customer Service Number to Recover Hacked Yahoo Email Account
  • movies
  • Yahoo Customer Service Helpline Number 24/7 For Instant Support
  • EVGA PSU roundup.
  • bestonlineoffersuk
  • PC Build Price Minimization
  • Stuck in bios cant boot to window icon.
  • Orbital's Pizza Adventures and Other Things
  • Gayathri
  • Random Stuff
  • What is a Body Mist, and How It is Used?
  • LTT Folding Month 2018!!!
  • Brandon
  • Gtx 750 ti - black screen after launch game
  • Techno Headz - Resolve Issues
  • Problem with opening Port Forwarding
  • Finn's Tech Blog
  • halp me
  • NEW TO THE PC WORLD.
  • Need EXP GDC complete set up.
  • Techhikers
  • Arika's random stuff
  • Caden Britton
  • Iphone Update 12.1.1 Needs fixing
  • Yurizaki's Programming Guides
  • No boot no debug no post
  • q&a/ama
  • Random Blogs, Probably about Cases
  • Jtalk's Blogs
  • test
  • Disjointed
  • poupee silicone
  • pkbazaar
  • Grizzly Coolers Reviews By Size
  • BioFluxe slim
  • Healthy mindsets in the age of information.
  • I have 2 problems with my PC
  • Asher's Blog
  • Custom Desk PC Build Log
  • Ask Me Anything
  • Canada Permanent Resident
  • Best immigration consultants in Delhi Ncr for Canada & Australia PR
  • Best immigration consultants in Delhi Ncr for Canada & Australia PR
  • Best Hong Kong Immigration Visa Consultants in Delhi
  • Best Australia Immigration Consultant Services In Delhi
  • CANADA IMMIGRATION
  • AUSTRALIA IMMIGRATION
  • AUSTRALIA SKILLED WORKER VISA
  • SKILLED INDEPENDENT VISA (SUBCLASS 189)
  • Drake101
  • technical support services
  • khaled adel
  • Shane
  • Corneltuttle
  • Game Dump Questions
  • Used Parts Flipping
  • employees Monitring
  • Инфа
  • del 11
  • Graphic Designing Tips
  • Tech & Designing Tips
  • Black Friday
  • TOMOT Computer Speakers for TV/PC/Laptops/Desktop
  • Gordon Mware Digital
  • Summer Folding Sprint! 2019
  • Toolopedia
  • An Idiots Guide to Everything Nerdy
  • Buy Best Anet A8 3D Printer
  • PCB Assembly- An Essential Technology for the Fourth Industrial Revolution
  • Altium Designer Basic Tutorial
  • Turnkey PCB Assembly Products and Services
  • IoT security and ways of securing IoT
  • extreem018
  • Download Aol Desktop Gold
  • n-droidrom
  • Does ram affect gpu load
  • Aol Customer Support NUmber
  • Crunchy's Gaming Blog
  • Xiauj's first time experiencing Linux on the UDOO BOLT V8 (Ryzen-SBC) as a First-Time-User/Linux-Noob!
  • QuickBooks Customer Care Number
  • TurboTax Customer Care
  • yueshan
  • Earthlink Password Reset
  • Do You Need Fashion Advice? It's Right Here!
  • Gordon Mware Tech Tips
  • Monitor MicroReviews
  • Display Adaptor/Refresh Rate fix
  • Sowon's Switches Reviews
  • Advice For Gathering Information For An Auto Injury Case
  • blues or brown switches
  • samsung galaxy s5 battery
  • Gordon Mware Tech Tips
  • D.I.Y OTG Cable
  • Folding Month 2019
  • (888)572–7379 Recover a forgotten Aol username & password
  • ourtime login - pof login - plenty fish pof login
  • xKyric's Ongoing Search for Price to Performance Hardware
  • del 22
  • Sub $1000 Gaming Rig, 3D Mark: 8557! First Build Ever!
  • Test
  • The use of carnations FloraSpring aims to increase digestion
  • Sowon's Album & Song Reviews
  •  Have you heard about this amazing money making website?
  • L7 COCO
  • We Buy Houses Nationwide USA
  • ZheYingChin
  • Arising issue in Sync Arlo Camera
  • pc games issue
  • pc games issue
  • Upgrading PC
  • Epic Games Free Games List Updated July 1st
  • Health insurance Assoc Is Surely Best For Everyone In Many Opinions
  • Hostsailor
  • Work At Home
  • Low-end abundance
  • TheHealthRadar
  • SchoolFork
  • NetworkProfile.org
  • LTT COVID-19 Folding Event Blog
  • Behind the Forum
  • This is a test
  • YouTube CPM blog
  • My Journey in Morrowind
  • Quantum | A Brief History of Quantum
  • Reality News | Your Daily Briefing
  • Summer Folding Sprint! 2020
  • Interesting Toy Robotics
  • Cloaked’s Indie Game Dev Blog!
  • Air cooling test
  • operation badger: The Log to End All Other Logs (of mine of this build)
  • Portal 1 themed custom case planning and build blog
  • DGBuildsPCs Tech Blog
  • Samsung Galaxy A 41 mini review
  • Folding Month 2020
  • Pens, inks & more
  • Help with RGB Hub controller
  • sub68 random
  • A Dive Into Custom Keyboards & Mechanical Switches (2021)
  • Compiling hell
  • Browser Expriences
  • Mid-Week Madness Folding Sprint
  • whatever you want it to me
  • Playstation 3 Slim (Model CECH-2504A) Restoration and Upgrade Project
  • Random humor
  • Marlyland Area Rail-Rebooted
  • RX480 PCB Powder Toy Art Project
  • Project Winterfell
  • "Summer" Folding Sprint 2021
  • LBNL news
  • What is
  • XKGB
  • Folding Month 2021
  • WHIM
  • Bloons TD 5 world record attempt
  • dava4444
  • Linusified default wallpapers
  • My Take On the State of Computing
  • AudiTTFan's Blog
  • IPD
  • AluminiumTech News
  • Vishera's Blog
  • Summer Folding Sprint 2022
  • Thrasher_565 hub links build logs
  • Mod pack for beamng.drive
  • Interactive Stream
  • Interactive Stream
  • Folding Month V
  • some computer stuff
  • Summer Folding Sprint 2023
  • Art of the week
  • Macify
  • A Programmer's guide to Tech and Life
  • Igor
  • Folding Month VI
  • Grants Electronics
  • automation reboot
  • TGif Gamer on LTT
  • LIVING WITH A Z FOLD 3
  • Дача

Calendars

  • Community Calendar

Categories

  • Music

Product Groups

  • Subscriptions
  • Review Items
  • Shipping

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Discord


Steam


Origin


UPlay


Battle.net


PlayStation Network


Xbox Live


Twitch.tv


Twitter


Heatware


GitHub


Website URL


Location


Interests


Biography


Occupation


Member title


Other

  1. Hi, I've taken the 'poor guy" approach and I've made a docker image to backup a remote MySQL/MariaDB server into a remote git repository (ie. GitLab, GitHub, etc). I'd like to listen to your opinion on this form of backup, potential security threats, optimization tips, etc And, its free and open source. I'm open to Pull/Merge requests: https://gitlab.com/franciscocb/mariadb-git-backup-docker
  2. Anyone got any got concentration tips for when they're programming/coding? So far I've narrowed it down to Go to sleep no later than 10:30pm If working on an area you know thoroughly (and don't need to think about), listen to instrumental music If working on a different area you will need more problem solving elements, don't listen to music If people are chatting around you then listening to music may be better however being totally isolated is probably best. Changing up my scenery seems to help. If I'm particularly struggling with a piece of work I'll take my laptop away from my desk to the downstairs main table, it's not got the full tech setup but mentally it helps me. No more than 2 coffees in a 4ish hour period, I may physically be very awake if I have more but I would basically be a zombie mentally after that; I don't know why. If you're really stuck on a problem, try rubber duck debugging where you explain your problem to something, your methodical approach of explaining the problem usually reveals the answer ( I do prefer explaining to real people though) Surround yourself with people who are interested in programming (struggled to program in my spare time when all my friends were artists, guess all I wanted to do was draw! lol ) (If working from home) Have a main area dedicated to working, e.g. If possible don't be gaming in the same room that you do work, have that 'work environment' Don't need that taking up brain space. There's probably some things I could do in terms of dietary changes but I've not really experimented with it Anything in particular work for yous?
  3. Hi, I wanna buy a gaming laptop and I have 3 options which are very similar in hardware but 1 differs in it's original price vastly than the other 2. I don't know which brands are considered better or something like that, and I wanted to get your recommendations please. The first one is Gigabyte Aorus 15G which goes 1500 after a supposedly huge discount off the alleged original 2200. This is the one with the far higher original price than the others. The second is HP OMEN 17 (2020) which goes for 1450 and it's virtually identical to the Aorus except it has 17.3" screen and it's GPU is 2070 and not the 2070 max Q - I am unaware if that makes a big difference. The third is MSI GL75 Leopard 10SFK-029 which is 1400 and is like the HP OMEN except it also has a 1 TB HDD. So my questions in order of importance are: Which do you recommend? Do you have any idea why the Aorus, which has almost identical HW (slight tradeoff - better GPU, smaller screen) goes for such a higher original price? And also, do you think I should wait for the new laptops which will have the 30xx series GPUs? I don't know when those will appear and how much I should expect them to cost, but considering the 30xx sell cheaper, maybe it's worth waiting? Bonus question - if you happen to be a programmer, would these laptops be suitable for that as well? Compile / build code fast ect...? Thanks a lot!!!
  4. This is a topic among many that I would like to make a video on for my hobbyist electronics business that I am in the process of opening up so I thought I would share my very early stage written up tutorial to the fine people of the LTT Forum. I figured I would go full master exploder with the juicy bits to blow your mind. Later on I will include hardware and software examples and possibly how this correlates to motherboard RGB headers. I will also probably be writing other tutorials as I go along. Probably more basic ones to start with after this for the less initiated lol. Sorry for the terrible quality of the writing as I can read and write better C++ then and I can read and write English (even though its my first language lol.) Probably will turn this into a mega thread with all the tutorials that I write up. Or maybe throw them up as blog posts with links idk. Depends on how receptive the community is. TODO: Remove vulgar language Add figure numbers for each image and subsequent referrals in each applicable paragraph Resize images for better formatting Any images that are not from the datasheets replace with my own Make some images related to data Write Code Create hardware designs Create Github repo Move everything into the github repo Find more issues with this post and subsequently log them here. This article is intended as high level overview on various types of RGB strips, their operation and techniques for successfully utilizing them. The LEDs being discussed are single colour 4 pin RGB strips, 3 pin addressable RGB WS2812B strips and finally 4 pin addressable RGB APA102/SK9822 LED strips. All or most of this information will also apply to bare LEDs of these types and LED matrices of these types as well. If there is any information that you believe to be incorrect please let me know. If there is any spelling mistakes, grammar or formatting issues please let me know as well. I will be more than happy to fix any issues with this article. Any comments or questions please feel free to post! Definitions for the context of this write up: RGB is Red, Green, Blue RGBW is Red, Green, Blue, White (the reason I use white and not amber is that A is typically associated with alpha channel which is what lets you set the opacity of pixels in an image so evidently that's not the right term to be using in our context because LEDs have no opacity value. ) We as humans typically use numbers in the decimal system or base 10. This means we have ten distinct digits per position ranging from 0 to 9. Exceeding 9 would now start counting in the next highest position e.g. 10. Each number position is 10 times the position to the right of it. So to compose a number such as 4682 you would break it down into thousands, hundreds, tens and ones or 4000 + 600 + 80 + 2 However computers work in a completely different numeral system. This system is known as binary meaning there are only two digits per position which are 0 and 1. Except instead of Base 10 we're now Base 2 so each number position is 2 times the value to the right of it. So to count in binary you would go from 0000 which is decimal 0. 0001 which is decimal value 1. 0010 is decimal value two. 0011 is decimal value 3. 0100 is decimal value 4..so on so forth. Individual positions in binary are commonly referred to as bits. So a 16 bit number would have 16 positions like so 0100 0010 0000 0010 0100. A Byte is a collection of 8 bits and it is the smallest unit of data that a microprocessor will use. From now on I will use () to represent individual bytes RGB colour information in computers is a numerical representation of intensities (also known as saturation) of the primary colours or channels in binary. These are typically stored as 24 bits or 3 Bytes of data for a total of 16,581,375 colours. RGBW is 32bits or 4 Bytes of data for a total of 4,228,250,625 colours. You can get more color depth and formats but this beyond the scope of what I want to write as its not applicable to what we want to do. This gives each channel or colour 8 bits of data each for the Intensity of the colour. So in order to get the 16 million colours you would multiply 255 x 255 x 255( x 255 for white). So in order for us to get full solid red colour we would have a value of 255 for the red byte, 0 for the green byte, 0 for the blue byte or in binary (1111 1111)(0000 0000)(0000 0000). . Lets now say we wanted solid purple for a colour. This would be represented by a mixture of the Red and Blue channels. To numerically represent this it would be 255 for our red byte, 0 for our green byte, and 255 for our blue byte. This in binary is (1111 1111)(0000 0000)(1111 1111). Moving onto computer memory we will look at how everything is stored within a computer. You've probably heard the terms 32bit or 64 bit processors before but what does this actually mean. What this comes down to is the number of bits that the processor can naturally process in addition to how much memory it can address. (There's way more to this but this in it self is a cluster fuck of a subject. Also note to self find a nicer way to put this ) Notice the italics on natural because this leads us into the next portion which is data Words. Words are the natural unit of data for a given processor and what this means by natural unit is that it easily matches the number of bits that our processor can work on. So if we have a 64bit processor that means the word size will be 64 bits or 8 bytes. Onto the memory addressing. A memory address is a binary number that has the same number of bits as your processor. This numbered address corresponds to a byte of data stored in memory. So if you have a 32Bit processor you can only address up to 4GB of RAM (232). If you have a 64Bit processor this is over 17 Exabytes of RAM that you can access(264). So how do you order your bytes of data into memory? Well there are 2 ways which is either Big Endian(BE) or Little Endian(LE) also known as Endianness. In a big endian system your most significant byte (the most significant digits) is stored at the smallest memory address. In little endian we have the exact opposite where the least significant bytes are stored at the smallest address. If you need help visualizing this imagine memory address as a latter. The rung at the bottom is the smallest memory address while the top rung is the biggest memory address. You either put the biggest part of the number followed by the smaller digits starting at the bottom and working your way up or you do the exact opposite where the smallest digits at the bottom working your way up to the top with the bigger digits for big endian and little endian respectively. (If you want a brain twister then try to think about doing both of these methods at the same time because they're computers that work with both.) If you're wondering what an x86 / x86_64 (Intel/AMD 32/64bit processors) use its little endian. So I've explained what binary is and how it is used to represent images and colours and now its time to explain the other side of the coin which is Electrical signals. We will start with and explanation of what Voltage is and how we use it. Voltage is known as an Electrical Potential Difference which is represented by the SI unit Volt or V. This is called a Potential Difference because its a difference of charges or energy between 2 points. This is much like gravitational potential energy where the energy lies between 2 different points or heights. Example: If an object is on the ground it has a potential energy of zero because its already at the lowest point it can be. But if an object is raised to say 10 meters it now has a 10 meter difference in potential energy because it can fall 10 meters to the ground. So now that we know what a potential difference is we can now apply it to voltage. So on a circuit you would have power source such as a battery which has a negatively charged terminal and a positively charged terminal. This now our source of potential difference because one terminal is positive and the other is negative. If this was a car battery for example it would be at 12 Volts which means the positive terminal has positive charge that is 12V higher than the negative terminal. (Though in some unique cases you can have -12V which can be really useful but beyond scope.) By default charges want to balance or cancel them selves out so how is this useful to us? Their desire to be balanced creates immense pressure that when harnessed is how you produce work. So now in a circuit if we force them through a certain path they will now do work for us to get to the other positively charged terminal. So this work that is done could be a light bulb turning on, a microprocessor operating, heating element heating up etc. Electrical Signals are the way in which represent or encode data to a voltage value. This all comes back to numerical representations of a given property. So an Analog signal is way of continuously representing electrical signals from infinity to infinity using voltages. Coming back to numerical representations you would assign a range to a dataset and a range of voltages that corresponds to that dataset. If we were to look at a temperature sensor it has (for our context) 2 properties: 1) The temperature range it is capable of measuring. 2) The voltage range it can output. So if our temperature sensor is capable of measuring 0 to 100 C° and it does this over a range of 0V to 5V then by measuring the voltage we can determine the temperature. So if we measure the voltage and its at 2.5V then we know the sensor is measuring 50C°. Pretty easy right? Lets move on. The binary numeral system that I discussed earlier is extremely useful to electrical signals because a lot of the time they're either on or they're off which is 1 and 0 respectively. This is what's known as digital because the voltage is being expressed by a series of digits. This differs from analog because analog is stateless as it maps to a range and not two different distinct states like digital does. These states are high voltage potential and low voltage potential which maps to binary 1 and binary 0. So that leaves us with only 2 possibilities for a signal which really isn't all that useful on its own. But if we add into the mix the possibility that we can change states over time then we can suddenly do a lot more with it such as represent binary numbers. Now that we know what an Analog and Digital Signal to Clock signals and no its not the thing that you stare at all day when you're in class or at work but it is related. I mentioned previously that digital signals on they're own are not all that useful because you can only do two different things with them which is either turn something on or turn something off. But I eluded to the fact that if you do that over time you can now represent data. So if you have a piece of circuitry that constantly turns on and of at a set frequency you have a clock. The time between two of the same states is a known unit of time. So if we had an awfully slow clock of 10Hz (Frequency represented by Hertz Hz is the count of how many times a specific event happens in a one second period. ) it means that the clock changes between states 10 times per second. So if we were to divide one second by the amount of times our clock pulses (10Hz) you would have 100ms (milliseconds or 0.1 seconds) between pulses. So a clock signal does two things for a circuit it keeps track of time and subsequently provides synchronicity. Lets keep the head hurting train moving and go onto PWM or Pulse Width Modulation. Simply put PWM is a way of representing or translating a digital signal to an analog one using a square wave that vary the width of. PWM has 3 components to it which are duty cycle, frequency and range. We already know what frequency is so we will skip straight to duty cycle which is a portion of time that a digital signal stays in a specific state vs an opposite state represented by a percentage. So if we had a frequency of 100Hz and we held a high signal for half of a clock pulse (or half the duration) we would have a duty cycle of 50%. If we had 5V as our source voltage and we used a PWM with a 50% duty cycle we would be left with a voltage of half of our source voltage so in this case that would be 2.5V. So by varying the duty cycle you now can see how we can represent analog signals digitally. Another thing we have to talk about regarding digital data is data transmission. There's two approaches that exist when transmitting bits one is called Serial and the other is Parallel. Parallel for the most part has been phased out but it still does exist in limited fashions and devices. Parallel data transmission works by sending multiple bits simultaneously to the target device. This can be any number of bits (There's issues with the more lines you add...but out of scope) for example you may have a parallel data connection that uses 8 data lines so that it is capable of transferring 8 bits of data or a byte at a time. This is contrasted by serial data transmission in which a single bit is transferred one by one by a single data line(There are serial protocols that utilize more than one data line). This typically includes a clock signal to synchronize the transmission of the data bit between devices. Depending on the protocol variation (or the device implementation) data may be sent or received on a rising edge or the falling edge of a clock cycle. There's also three primary categories of communication between devices. The most basic is call simplex (go figure) in which data only travels one way at all times. It works by one device sends data to another but the other device doesn't talk back. The other 2 categories allow for data communication both ways. These are called full duplex and half duplex. In half duplex the data line is shared by both devices. This much like walkie talkies where only one person can talk at a time. On the other hand full duplex has at least 2 data lines allowing for both devices to communicate at the same time. This works by one device using one data line while the other is used by the 2nd device to send data back to the first device. At their core an LED you may know as basically a high tech single colour lightbulb. (There's a few exceptions to this but they're beyond scope.) If you give it a voltage and it turns on and if you vary that voltage you change the brightness also known as the intensity. LEDs are type of diode so they typically operate on the 2V to 5V range. If one were to apply 5V to the LED it will be very bright and if we just give it 2V it will barely be on. Knowing that we can map an analog range to this. Now the gears might be turning in your head on how to do so but we just discussed it earlier. The solution is simply PWM this means we can take our 24bit data and translate it into an analog signal. But wait we have a problem LEDs are only one colour so the solution is take 1 LED from each colour that we need and feed it a PWM signal. This is where our RGB data comes in which we will feed each PWM signal (frequency would also be selected but not needed for our example.) the byte that corresponds to the LEDs color. So now if we had the colour Purple we would have the Red and the Blue LED on but not the green. If we wanted white we would turn on each LED to the same intensity (assuming we don't have a white LED channel.). So that's the most basic primitive type of RGB LED strip is where you have 4 wires that are Red channel, Blue channel, Green channel and ground. You might find your self asking why I said you need an LED for each separate channel when there is only one LED for all the colours. This is because they will combine multiple different colored LEDs onto a single package. Lets combine everything discussed and talk about how addressable LEDs work. The working principle of addressable LED's is that instead of applying a PWM signal across the entire strip we will apply it to each individual LED. The way this works is instead of our microprocessor encoding our digital signal to an analog one through PWM we will leave it up to another piece of circuitry that is an Integrated Circuit. This integrated circuit can either be integrated directly into the LED module it self or it can be a stand alone chip on a circuit board with stand alone LED's. These integrated circuits LED modules come in two flavors WS2812B and APA102. The first one we will talk about is the WS2812B as this is the most commonly available. There is a grand total of 4 pins for each module. These are as follows: Vdd (Source Voltage), Di (Data In), Do (Data Out), and Vss (Ground). These modules are at their core are a PWM Shift Register which is an electrical circuit that consists of numerous (24 on this module) storage cells. These shift registers have 2 data pins on them one is for data in and the other is for data out. When you send a data bit to the data in pin you push that data into the first cell. When you send the second data bit it pushes the first bit into the 2nd cell and the 2nd bit occupys the first cell. You do this until you have filled register. It looks a little like this: colour byte >> Shift Register (0010 0101) >> (), (0001 0010) >> (1), (0000 1001) >> (01), .....(0000 0000) >> (0010 0101) Now that you have filled your register you're probably thinking your done but how do you get data to the other LEDs? Well you keep pushing bits down the line because remember there is a Do or Data Out pin. So your register keeps pushing bits out as you push bits in allowing to move data into next led. This whole process is essentially one big pipe where you push bits in on side and they come out the other. The proper term for this is called Cascading. Do you remember endianness well... it also applies the transfer of bits from once device to another but this time there's no memory addresses to deal with but simply is it the most significant bit (MSBit) first out or is it the least significant (LSBit)? In our case with WS2812B LEDs the most significant bit is sent out first. If you look at the diagram you may also notice that the order of the colour bytes is not RGB but rather GRB. We know that Blue is the first byte to be sent. So the order of transmission is Blue LSBit -> Red LSBit -> Green LSBit -> Green MSBit. We also have to take into account that the LEDs at the end of the strip will be first bytes of data that we will send. We have now established how to send data to our LEDs and in what order but there's more to it than that with these LEDs. The reason there is more to it is because these LEDs don't take a simple High signal or low Signal from your microprocessor. If we look at the supplied timing diagram it shows both a high period and a low period for which to encode a binary 1 or a binary 0. This is because these LED's don't have a clock signal into them that allows you to synchronize the data transmission. Instead if you hold your data pin high for x amount of time and then hold the pin low for x amount of time you encode a bit. These timings can be found in the table below. So in order for us to encode a binary 0 we would have to look at T0H and T0L these correspond to high voltage time and low voltage time. So to have a binary 0 you would need to hold the data pin high for 0.4us and then hold it low for 0.85us. To encode a Binary 1 we need to look at the two remaining rows which is T1H and T1L. Which corresponds to 0.8us and 0.45us respectively. So for every bit we need to output we have to see what its binary value is so that we can hold the data pin at the voltage levels for the time needed and then move onto the next bit after that. After we have shifted all the data to the LEDs we then need to use the Reset command to lock the data in after which the LEDs will lock into the colour that we sent. To send the reset signal its as simple as holding the data pin low for 50us after we sent our last bit. One easy way we can achieve sending this data is through PWM because if you look back at the timing diagram it looks awfully like a PWM diagram. You can set your PWM frequency to that of the total bit encode time (assuming nominal) which is 1MHz ( Some microprocessors may be incapable of this.) Now if you set your PWM duty cycle to 64% you will encode a binary 1 ever cycle and if you set it to 32% you will encode binary 0. So now you just have to set duty cycle for every cycle of the PWM to encode your data. Easy Peasy. If your microprocessor is incapable of this you would need to structure your program to account for time that the bit is held high and for the time that the bit is held low and modulate the voltage level that way. Because the WS2812B's are timing based Bit Banging it leaves something to be desired for refresh rates and for the total number of LED's that you can run in total (assuming you have the RAM on the controller to hold as many LED's as you need.) If you say wanted to run these LEDs at 30Hz (30 FPS) you would only have 33ms to update your LEDs and lock them in. So the fastest (According to the data sheet) that we can encode a bit on these LEDs is 0.65us. So lets convert 33ms to microseconds. Shift the decimal place over 3 positions and we have 33000ms per frame to update LED's. We need 50us to send the reset signal so we can take that right of the top so that we have 29950us to work with. So 29950 divide by (0.65us x 24 bits) is 1919 LEDs. You want to run those LEDs at 60FPS well your left with less than half after that. Moving onto the other type of LEDs which are the APA102 LEDs. These guys are very similar to the WS2812B but they have 2 extra pins Ci and Co which are clock in and clock out. Since these have clock pins they use the pulse of the clock and the current state of the Data in pin to encode a binary 1 or binary 0. In addition our data format changes from GRB to BGR. There is also a little bit more information that we have to send at the beginning and end of each frame and with every colour value. At the start of every frame we will have to send a start frame which is 32bits of binary 0's. After this for each LED we will send 3 binary 1 bits followed by a 5 bit (32 level) global saturation modifier. This global modifier will scale the brightness of the LED while preserving the exact colour. After that you will send your data in BGR format starting with the MSbit. Once you're done sending your colour you will end the entire operation with an end frame which is simply another single 32bit group of zero's that are pushed down the line. To recap the APA102's you send a start frame at the beginning of every update to signal that you intend to write new data followed by packets consisting of 3 high bits followed by 5bit global brightness number followed by 24bits of BGR colour data. You repeat this packet for every LED in the string and then finish it off with an end frame consisting of 32bits of zeros to each LED to lock in the colour. This entire process is very similar to a serial data protocol called SPI or Serial Peripheral Interface. Its a 3 wire full duplex synchronous data transmission protocol that has 2 data lines and 1 Clock signal. The Data lines are MOSI or Master Out Slave In and MISO or Master In Slave Out while the clock signal is called SCK. Since the LED's don't communicate back to us we really only need the MOSI line and the SCK line. Many boards allow us to configure how fast we want to send data, whether that data is sent on a rising or falling clock edge and if we want LSBit or MSBit first. So already we can get off very easy by using the hardware features of many microcontrollers and processors. For the APA102 we can send data at very fast rates (10MHz+) and we need to send them on a rising clock edge. That's all you really need for basic APA102 operation. However with the APA102's the data needed in total is a little misleading because you most likely will require more data sent. This more specifically has to do with the end frame. Since these LED's require a rising clock edge to validate data the other LEDs in the line wouldn't have enough time to validate incoming data because the rising edge window is too short. So the way the APA102 designers fixed this is by delaying the data output by about half a clock cycle back so that there's enough time for the next LED to monitor the data line and read the data in. The consequence of this is that for every LED the data gets delayed by an additional half clock. So what the end frame has to do with is that its only purpose is to push the rest of the bits to the last of the LEDs with additional clock pulses. The number of clock pulses needed is half of the LED count because each LED is a half clock more behind the previous LED. So if you only used the datasheets recommend 32bits only 64 LEDs would be locking in the new data. Where as if you send half the number of your LED's as a total bit count each containing 0's you subsequently lock in the data for every LED. The end!!! Now go blow your mind!!!!!
  5. Hey guys, so what license could I use for my app that I'm going to sell? I'm hesitant of using open source licenses cause this software won't be open-source and I want to upload it to GitHub as part of my portfolio. Are there any licenses that can be used for commercial apps? Thanks in advance for the help! Kind Regards PrimeMinister
  6. Hello there, I want to buy a budget game development and 3d modeling pc. I am thinking of a 1665/1650 4 gb vram, a ryzen 3 3100, 8 gb of ram at 3000 mhz,what you thing and what you recommand me and also what keyboard should i choose, i am not a big gamer so gaming part is not important. Thanks!
  7. Budget (including currency): 1000euros max Country: Austria Games, programs or workloads that it will be used for: For honor,RDR2,Kingdome come deliverence,Assasins creed black flag,maybe vallhala.And do a bit of programming,which is not taxing Other details (existing parts lists, whether any peripherals are needed, what you're upgrading from, when you're going to buy, what resolution and refresh rate you want to play at, etc): I want a pc that will let me play at 1080p for 60 fps.My monitor is 60hz 1080p,will later upgrade to ultrawide 1440p. I just want to play singleplayer games at 60hz high settings.I dont need future proofing,i will buy a new pc if i need it in couple years again,but atm budget is pretty tight so lower the cost is,the better. I will buy pc from Agando.de,they have better prices,they make clean pcs,good cable management.Every shop is out of stock everywhere,and i save money doing this. I honestly dont have idea what to buy,so any help is great.
  8. I am planning to buy new monitor. But i am not sure should i go with 1440p ultrawide or normal 4k monitor. Purpose of this monitor will be coding and web browsing,so 60hz is enough. What do you guys recommend?
  9. I have absolutely no idea how to get started all I did was downbload Unity and the latest version. Any tips on how to get started, would really appreciate it
  10. Hi guys! I am looking for recommendations for a laptop to replace the one I use right now. It's Lenovo ideapad 700 from 2016, with Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz 2.59 GHzi7 7600HQ, more info you can find here - https://www.notebookcheck.net/Lenovo-IdeaPad-700-15ISK-80RU0009GE.167197.0.html I am looking for a solid upgrade on which to program and play games in my spare time. My budget is around 1500 EUR. Thanks for the help in advance!
  11. Hey, I've been planning for a new pc build. I'll mainly be using it for programming, i.e. in unreal or unity and in vs code, and also a bit of gaming (probably minecraft, rocket league and maybe cyberpunk). Any recommendations on what parts I should use budget of 2500$ virginia usa (NVIDIA gpu preferably)
  12. This is my C program for reading and displaying flight ticket details... Pls compile and see the errors then help me fix it.... I am blankly saying this bcoz IDK how to explain my issue.... I promise this will be easier to fix than my last code.......... There are some pointer errors that's what I need to fix... Thanks BTW #include <stdio.h> typedef struct { int ptickno; char pname[100]; char flightname[100]; char fdate[100]; char fltime[100]; char class[100]; char gate[100]; char seat[100]; char from[100]; char to[100]; }passenger; void input_output(passenger p1[100]) { int i=0; int n; int *ticket; ticket=&p1->ptickno; char *passname, *airplanename, *airdate, *airtime, *flclass, *airgate, *airseat, *flyfrom, *flyto; passname=p1->pname; airplanename=p1->flightname; airdate=p1->fdate; airtime=p1->fltime; flclass=p1->class; airgate=p1->gate; airseat=p1->seat; flyfrom=p1->from; flyto=p1->to; printf("ENTER THE NUMBER OF TICKETS YOU WANT TO ENTER : "); scanf("%d",&n); for(i=0;i<n;i++) { printf("\n********************************************"); printf("\nENTRY FOR PASSENGER %d :", i+1); printf("\n\nEnter ticket number : "); scanf("%d",&p1[i](*ticket)); printf("Enter name of passenger : "); scanf("%s",p1[i](passname)); printf("Enter name of flight : "); scanf("%s",p1[i](airplanename)); printf("Enter date of flight : "); scanf("%s",p1[i](airdate)); printf("Enter time of flight : "); scanf("%s",p1[i](airtime)); printf("Enter class : "); scanf("%s",p1[i](flclass)); printf("Enter gate : "); scanf("%s",p1[i](airgate)); printf("Enter seat : "); scanf("%s",p1[i](airseat)); printf("Enter from : "); scanf("%s",p1[i](flyfrom)); printf("Enter to : "); scanf("%s",p1[i](flyto)); printf("********************************************\n"); } for(i=0;i<n;i++) { printf("\n********************************************"); printf("\nTICKET DETAILS OF PASSENGER %d",i+1); printf("\n\nTICKET NUMBER : %d",p1[i](*ticket)); printf("\nNAME OF PASSENGER : %s",p1[i](passname)); printf("\nNAME OF FLIGHT : %s",p1[i](airplanename)); printf("\nDATE OF FLIGHT : %s",p1[i](airdate)); printf("\nTIME OF FLIGHT : %s",p1[i](airtime)); printf("\nCLASS : %s",p1[i](flclass)); printf("\nGATE : %s",p1[i](airgate)); printf("\nSEAT : %s",p1[i](airseat)); printf("\nFROM : %s",p1[i](flyfrom)); printf("\nTO : %s",p1[i](flyto)); printf("\n********************************************"); } } int main() { passenger p[100],*pptr; pptr=&p[0]; input_output(pptr); return 0; }
  13. Hello to all developers out here. Can you answer what kind of build are you running,laptop or desktop. In what languge are you primarily coding,and what software´s do you use. I am gonna build pc or buy laptop in next few months,and would like to plan my budget accordingly.
  14. Hi, so im looking to make a image scroll on hover to show a preview of a webpage. This page is a good example of this https://nycwebdev.io/ . Mine is just a popout image that needs to scroll. I will attach the HTML and CSS to this post. and here is whats currently happening with my code. https://gph.is/g/4L3YoqP I've looked around a lot and cant find a good answer. Thanks in advanced for the help. <div class="col"> <a href="http://www.sekisuiplasticsusa.com"> <div class="card"> <img id="cardimg" src="Manufacturing images\Sekisuibig.PNG" alt="Avatar" style="width:100%;"> <div class="large"> <img src="Manufacturing images\Sekisuibig.PNG" class="large-image" alt="Avatar" style="width:250px; height: 250px;"> </div> <div class="cardtext"> <h6>Sekisui Kasei USA</h6> </div> </div> </a> </div> .large { position: absolute; left: -9999px; z-index: 1000; background-repeat: no-repeat; overflow:hidden; } a:hover .large { left: 20px; top: -150px; border-radius: 4px; box-shadow: 1px 1px 3px 3px rgba(127, 127, 127, 0.15); } a:hover .large-image { transform: translate(0, -25%); } .large-image { transition: all .3s ease-out; margin-left: 0px; object-fit: none; margin-top: 0; object-position: 50% 0%; }
  15. Hi Community, I am new here, I wrote this software for different use's I may have. Any comments about the Cartoon affect on linus? Any comments, opinions, advice, and criticism is greatly appreciated. Cheers, Sean
  16. Everytime I install windows it reboots then goes back to the same install windows screen idk what’s wrong
  17. I've been struggling to find a way to do this for a while, i have a laser profiler (scanner) that I have retro fitted to a CNC router to scan surfaces to look at the undulations, I have to export these out of the proprietary software to a .csv file in order to stich multiple together (still working on this but am close) but i have then no way of viewing these images again as the software does not then allow you to import the .csv file back into it and will only open a .lhi file. I don't need it back into that software as i can use fusion 360 to open it, but i need to make it into a file format that will understand. fusion 360 allows a lot of 3d file types, and does have an option to import .csv files but it doesn't seem to work with the way the original software wrights the .csv files I have attched the .csv file for reference any ideas would be greatly appreciated, Thanks csv_file.zip
  18. Hey guys, so I want to get some feedback for this little password generator/manager app I'm currently making for PC (specifically for Windows) as well as getting some advice for the future, so here goes for the advice.. Where can I release the app exclusively for PC (for now) without paying monthly fees? Is it a good idea to make the app open-source? Would this be a good thing to add to a portfolio or should I convert the code to a more well-known language first? (It's all going to be and is coded all in Delphi Pascal, because it's the only language I know at the moment) Any other suggestions and stuff regarding the app's GUI,etc.. I'm still going to tinker and whatnot but I can't do as much as I'd like rn as I'm in my first round of final exams. And this is the pre-pre-pre-alpha version of my final idea for the app, it's only a really basic password generator at the moment. Link to the github of the app : https://github.com/Kiryu02/SimPasGen Thanks in advance for the feedback/advice! Regards Ya Boi Minister
  19. Hello, I am not a programmer by any means but I do understand the basics of making my way through programming instructions. I take a lot of photographs and I was hoping to set up a program that will automatically copy the DCIM file from an inserted SD card and create a new folder with the days date as its name and save the file into that new folder on my PC hard drive. I was then also hoping for a secondary program that will backup an individual file to an external SSD whenever that SSD is connected to my PC. I realise this is probably a lot to ask, but google and youtube haven't been helping. I have tried to use Task Scheduler in conjunction with Event Viewer and USBLogView to no avail. (likely because I am unable to code anything from scratch) Please let me know if anyone has any suggestions for this. I am willing to learn the necessary programming language to help me out here. I'm not too keen on using a software downloaded from the internet to do these tasks as my photos are 99% NDA and sensitive. Thank you, xco This is a description of the above but i have included the file name paths.
  20. I am looking to buy a laptop with the intend for programming, but would also like games to be an option. I am located in Ireland, looking to spend maximum 600-700 euro. I will mainly be using this to program when I am not home, but would also like to game, though it does not need to be for heavy games. 16gb ram preferred, and AMD is preferred.
  21. I'm curious if there is an updated set of resources to learning/advancing in Clojure since the last time that I looked for such a thing. I've been using the mid-2010s resources on it mostly (i.e. Clojure for the Brave and True and the like). Anyone have a more refreshed list on the latest and greatest in Clojure resources?
  22. So poking around the interwebs, I found this interesting little info generator for any website you pop in: https://tinywow.com/web/detect . Wonderful as it is, I find it brings up a question as to what CMS means in this instance. The closest I can think of is a Content Management System. Is that correct? What exactly is going on here? I have theories but don't wish to speculate just yet.
  23. I recently wrote a python script that scrapes local power outages from the internet and I would like to create a integration that runs this script daily and displays this data in a HomeAssistant table component type thing. How would I go about doing that ? The current output of the script is a DataFrame exported as csv and I would not be opposed to changing that to make the integration work. I would also like to make the integration publicly available for people in my area to use.
  24. Since enough people seemed interested in a status I posted some time ago that I thought, hey, it might be a good idea to do a write up. It'll be short enough that it'll actually end! The Outline This section is just to provide an outline of this series: Part 1 What is the Enigma Machine? Why did I choose to implement the Enigma machine? Before Programming Begins: Understanding the theory of the Enigma Machine Finding a programming environment Part 2 Programming the features Rotors Rotor housing Part 3 Plug Board Part 4 GUI If you'd like to look at the source code, it's uploaded on GitHub. A bit of background: What is the Enigma Machine? During World War II, everyone had their way of encrypting and decrypting messages. The Germans used a modified commercial product that did this called the Enigma Machine. It has a key for every letter (in my case, 26 for the English alphabet). Each key was electrically wired up so that when it was pressed, an electrical connection was made through it, then to a few rotors where it would come out to another key, which would light up a bulb corresponding to that key. So if you pressed A, it would get scrambled into something like D. Since it was electrically connected, you could also do something like swap letters so that the input would get swapped or the output would get swapped. From Wikipedia, here's a basic diagram of how it works (Pressing A results in a D, though it would've resulted in an S if not for the plug board connection in item 8): Though it wouldn't do much good if pressing A always resulted in a D. To solve this, every time a key is pressed, a rotor advances. In this case, the right most one. And when that makes a full revolution, it advances the next one, and so on. This makes it so that pressing the same letter always results in a different one. A key element in the Enigma machine was the reflector element (item 6). This was required due to how the machine was designed, which introduced a flaw in that a letter cannot encode to itself. To decode the message, you take the encoded message, set the rotors to same position as when the encoding started, then type in the encoded message. The machine will light up the decoded letter for each encoded one. In short, the Enigma machine is a rotating substitution cipher. Each combination of rotor positions represents a different substitution cipher that it rotates through automatically. There was also another substitution cipher in the form of the plug board, but this was manually entered and static. Why did I choose to implement the Enigma machine? I was thinking of some simple projects to do on the side. While nice complex projects can be fun, they can also be a pain and having something done feels more like a sense of an accomplishment than getting 50% there on a complicated project after dumping hours into it. The Enigma Machine came up because I figured it'd be a relatively good challenge and yet it's simple in theory. So it shouldn't be hard to debug and verify it works. And also World War II is my favorite time period, with the Enigma having interesting stories around it. Before Programming Begins Most successful programming projects, or just any real project, needs a lot of planning and research ahead of time before the work can really begin. Poorly researched aspects can cause hiccups in the future that may not make themselves apparent until a lot of work has already started. Understanding the Theory of the Enigma Machine There isn't much point in trying to program something if you don't understand how the system works in general. So step one is to understand how the Enigma Machine works. The most interesting part was the rotors, which aren't really that complex: there are input pins and output pins, and the input pins wire to an arbitrarily picked output pin. So the overall requirements for this system to work is: The pin mapping of the rotors should be randomly generated. However, this should not be uncontrolled random generation. That is, the user needs to input the RNG seed. Otherwise, the usefulness of the program is only good for that instance of the program. Each new instance would have a different randomly generated set of rotors with no way of setting it to what another instance used. For each rotor, an "input" must map to an "output" such that if you give the rotor an "input" value, it returns an "output" value. But if you give it the "output" value, it returns the "input" value. That is: If I give the rotor 1 and it returns 3, if I give the rotor 3, it returns 1. Each time a rotor is used, depending on its position, it needs to "advance". That is the next time I use the rotor, the mapping needs to be offset for the same input. For example: If the letter "A" maps to pin 1 on the rotor, the next time I feed the letter "A" into the rotor, it goes to pin 2 instead. The plug board has a similar idea, in that it's also a substitution cipher that works in the same way as the rotors, namely it needs the second requirement. However, they behave differently as far as the system is concerned so they need different sets of logic to function. These are: The plug board does not automatically advance. i.e., the mapping doesn't change automatically. The mapping can change based on the user needs. The rotors are more or less permanently wired. The plug board, as the name implies, has plugs the user can connect wires into and disconnect said wires. The user-changeable mapping presents a problem, say we have a mapping of A -> B, which means B -> A, and another mapping of C -> D, which means D -> C. What if I want to wire A -> C? The question will be answered in the section where I talk about the plug board design. Then there's the path of how a key press turns into a lit lamp: A key press goes to the plug board to be remapped. By default, the letter maps to itself. The output of the plug board goes into the input if the first rotor. The output of the first rotor goes into the input of the second pin for pin (i.e., rotor 1 outputs pin 2, so it goes into pin 2 of rotor 2) Repeat for N-rotors The output of the last rotor goes into the reflector, which spits out a value to go back into the nth rotor's "output" side, this spits out something on the "input" side. The "input" of the rotor goes into the "output" pin of the previous rotor, and repeat until the "input" of Rotor 1 is given. The returned "input" goes into the plug board to be remapped. The output of the plug board then spits out the letter. The key pressing and lamps are merely inputs and outputs. They don't affect the theory of operation of how the Enigma Machine works. Figuring out What Language/Environment to Use I wanted this to have a GUI, because eventually I would need to have that keyboard + "light" interface. And because there are components in the Enigma Machine that do independent things and there could be multiples of one of them, I felt a language that supported object-oriented design is best. So these were the requirements for the language and environment I wanted: What has good GUI framework support? What supports object-oriented design? What features of the language makes things like manipulating entries in data structures or creating multiple instances of an object easier? What environment is easy to setup? Out of what I do know: Python: Python has a few GUI libraries, but my experience with this is limited. And what experience I do have isn't quite pleasant (to be fair, it was only with Tcl). I'm aware there are frameworks to make this easier, but I didn't want to spend time looking and testing them out. C++: Similar issue as I have with Python: I'm aware GUI libraries exist, my experience with them are limited (at least from a fresh start), and I don't want to spend too much time learning this. C: While the state of each rotors can be separated and business logic can just take in the state of rotors to work with, this would be hard than I'd like. Plus the issue with finding a GUI framework, though it's likely any C code I'd write would be called from C++ GUIs. JavaScript/HTML: I could, in theory, make the Enigma with this. But I didn't consider it for no reason other than it didn't cross my mind. C#: I'm sure there's some way of writing and compiling C# in a bare bones manner, but I use Visual Studio for C# work. And having worked with Visual Studio and C# to quickly write tools for work, I decided to go with this. Yes I'm aware Visual Studio has C++ support, but I don't have much experience with it. At least for developing Windows Form apps. There's also another reason why I went with C#: I know it has a lot of data structures that make my life easier, because they come with a bunch of methods that help do what I want. And it's not just the language that has nice features that I want that's included, but setting up a C# development environment is stupid easy. It's just download and install Visual Studio. If I spent a day just setting up my tools, the project would've likely be dead in the water. I like to think of myself as a lazy developer. Not in that my code is lazily written (most of the time, anyway), but I don't want to spend all day doing something that feels like it should take 10 minutes. The tools exist to make my job easier. If the tool doesn't appear do that, it's a poor tool. With the planning phase done, the next entry will go over the programming process and how things were built. > On to part 2
  25. As a way to expand my skill set and give me something to do in my spare time on programming, I've taken up learning what is called full stack web development. In it's most high level description, that means dabbling in both the front-end (client app, web page, etc.) and back-end (server, database, etc.) of the development process. To ease going into this, because I didn't want to learn almost a half-dozen languages, I've stuck with Node.js and MongoDB, as both use ECMAscript. Essentially all that means is I have to learn JavaScript. This has been a key point in where I'm going with the title. A full web application is made up of several independent pieces Pieces like the server, the database, the client, and others. These pieces are independent form each other, yet they still need to talk to each other and perform as a cohesive unit. If one of these breaks or isn't developed well, the whole application can have a bad time. Multi-threading means asynchronicity Synchronicity in this means that everything runs in order as you might expect while reading the code. Asynchronicity means that some code can execute right away, some code will be skipped, and some code will be put to the side, only to be run later. If there is something you run into a lot of in JavaScript, it's that a lot of things are asynchronous. You have a lot of things on a web page that are waiting for user input. However, the web site can't freeze itself or force the user to do things in a specific order, because this decreases the quality of the user experience. In a server, when you do a database request, you don't want this hanging the entire server because a database request can take a while. You want the server to go right back to serving other people's requests if the current one is going to take a while and can be put off to the side. In JavaScript, these are handled by mechanisms such as callbacks and Promises. For example, here's some client code I've written, requesting to the server to get a list of groups: var getInfo = function(){ // Making an HTTP GET request $http.get('/groups/getList?index=' + $scope.startIndex) .then( function(response){ if (response.data.status === 30000){ $scope.groupList = $scope.groupList.concat(response.data.groupList); $scope.startIndex += response.data.groupList.length; } else { console.log("There was an error getting groups. Code:" + response.data.status); } }, function(response){ console.log("There was an error getting groups. Code:" + response.data.status); }); // Script resumes from here after making the HTTP GET request console.log("I made a HTTP GET request!"); }; The first part has the client make an HTTP GET request to the server to a particular URL for getting a list of groups. Since the server isn't going to respond instantaneously, the client will put this action off to the side and continue executing. What happens then is the client will execute console.log("I made a HTTP GET request!"); immediately afterwards. Essentially, for the moment since the data isn't available, it skips everything from the HTTP request function to the comment about where the script resumes. When the server sends the data back to the client, a signal is generated to let the client know to go back and execute the code that was skipped. This is a key point in multi-threaded programming. Things need to be asynchronous. The application needs to be able to put tasks that are waiting for something else to be cast to the side and signal the application when the result comes in. People may be sharing resources and you need to manage them An example is on Wikipedia. What if two people are editing a page at the same time, but adding different things to the page? How do you handle them both saving data? This is a common issue with multi-threading programming. One way of handling it the server having a token that only one person can take. If the token was taken, then nobody else can touch the page until the token is released. Another solution is if someone submits their edit, then another does, you can respond "hey, someone made changes already." Web application development gives you more control in the debugging process This part makes understanding how each bit interact with each other easier. One of the hardest things about developing and debugging multi-threaded applications is that a lot of things happen on the OS and processor level. It can be hard to poke into those to figure out what's going on. Like when you want to pause the execution of the application in the source code, you're not quite sure which thread you're on. When you're doing web application development, each instance you are accessing the web page can be thought of as a process or a thread in the entire application. In this way, you can pause one instance's execution and know exactly which one you're poking at. In another sense, you may be able to control aspects behind the scenes, such as latency and such. It's harder to see how a local application will behave with hiccups and such without clunky methods, but you can certainly add latency to your network or simulate it another way without adding debug code or whatnot. It's practical and relatively easy to setup! One of the hardest problems with learning something about software development is what to do with it. I'm finding full stack web development practical to learn because it touches upon something we all use in our daily lives. So instead of trying to figure out a local application you can run that can be multithreaded, try developing a website server and a client to go with it. The flip side is it's very visible and you can see your results. Now I say it's relatively easy to setup, but it still has a learning curve. In my case, at the barest minimum you need to learn HTML and JavaScript. CSS is highly recommended. Then again, multi-threaded programming isn't a beginner level concept either. But if you take an afternoon to study, you can certainly get a web server setup: https://www.tutorialspoint.com/nodejs/nodejs_express_framework.htm My development setup at the moment is: VirtualBox with Lubunutu Node.js with Express as the server framework. MongoDB for the database. This is a document-oriented database, as opposed to a relational database like SQL. Whatever text editor of choice you want (I use Atom).
×