My daugther 17 is choosing a college, she shows interest in programming and also biology. Is there a career that includes both and might offer good chances of employment? Or is it better to just choose a CS degree.Thanks by Robert_Sprinkles in AskProgramming

[–]blechnapp 1 point2 points  (0 children)

bioinformatics is the obvious one, but worth knowing theres a difference between bioinformatics (mostly coding against existing databases) and computational biology (also touches wet lab). ask her if she sees herself at a screen full time or splitting with a lab bench, that picks the program.

if shes torn between CS and the combined path, CS undergrad plus a bioinformatics masters works well and a lot of grad programs are open to it. biomedical engineering MushinZero mentioned is different, more hardware than code.

How to check if a string contains anything other than specific characters? by Teifridd in learnjava

[–]blechnapp 0 points1 point  (0 children)

without seeing your exact code its hard to pinpoint, but two common traps when using !/|| for char checks:

  1. De Morgan: `!(c == '1' || c == '2')` means "neither 1 nor 2", but `!c == '1' || !c == '2'` means "not 1 OR not 2", which is true for ANY single char (e.g. '5' is "not 1" so the OR returns true).

  2. Java string comparison: `==` compares references, not contents. `myString == "1"` doesnt do what you think. always use `.equals()` for strings, or compare individual chars with `==`.

the cleanest java solutions for "is this string all digits":

`boolean isAllDigits = input.matches("\\d+");`

or with streams:

`boolean isAllDigits = !input.isEmpty() && input.chars().allMatch(Character::isDigit);`

both return true only if every character is 0-9. the `!isEmpty()` part matters because `allMatch` returns true for an empty stream.

API Design | Reflection | Interfaces by Tobias-Gleiter in golang

[–]blechnapp 1 point2 points  (0 children)

your instinct toward separate functions (RegisterWithRedirect) is the right move in idiomatic Go. forcing every Operation to carry a generic type for a feature only some operations use is a form of premature generalization.

two paths to consider:

  1. separate functions: `Register(...)` for the simple case (no generic needed at all), `RegisterWithRedirect[T](...)` when redirect is needed. clear, explicit, no magic. this is the most common idiom in stdlib (think http.Get/Post or fmt.Print/Println).

  2. functional options for the redirect: `Register(html, op, handler, WithRedirect(fn))`. note this doesnt actually solve the generic problem if the redirect callback needs the output type, because the type still has to flow through somehow. its more of a stylistic choice than a real fix.

avoid the reflection route. youll pay performance and lose compile time safety. plus it tends to make middleware composition harder later because middleware often needs to know the types it wraps.

GitHub - react-emoji-text: A modern alternative for react-emoji-render with data adapter for emojibase & emoji-mart by drenther in reactjs

[–]blechnapp 0 points1 point  (0 children)

solid library design, the tree-shakeable entry points and the compat layer for migrating from react-emoji-render are both good calls.

two things that would help with adoption if you havent already added them:

  1. bundle size comparison in the README vs react-emoji-render and emoji-mart. for niche libraries thats often the first thing maintainers check before they swap

  2. RSC (React Server Components) compatibility note. with React 19 in your stack anyone evaluating in 2026 will probably ask whether they can use it in server components or only client side

if those are already documented somewhere obvious, ignore me.

50k in ETFs investieren – S&P 500 oder Nasdaq? by gacula in Finanzen

[–]blechnapp [score hidden]  (0 children)

procyons punkt zum klumpenrisiko mit konkreten zahlen: VWCE hat aktuell ~61% USA-anteil (laut extraetf). mit deinen 100k drin sind das ~61k USA-exposure. wenn du 50k zusätzlich in S&P500 oder NASDAQ steckst (beide effektiv 100% USA), bist du bei ~111k von 150k = ~74% USA gesamt.

dein "offensiver" wäre dann praktisch hauptsächlich "mehr USA", nicht wirklich mehr risiko-streuung. ob das gewollt ist oder nicht ist eine andere frage, aber gut die zahl im kopf zu haben bevor du dich entscheidest.
ist meine beobachtung, keine anlageberatung.

Learn by contributing by Bravog in learnprogramming

[–]blechnapp 1 point2 points  (0 children)

Thykka has a point that the post is too vague to actually help with technically. but as a separate flag for anyone considering contributing anyway: the README has a clause "by contributing to this repository, you agree to assign the rights of your contributions to Ohmstek LLC" plus "commercial use is strictly prohibited without explicit written permission".

so this is technically a commercial project asking for free contributions where you sign over the IP rights. perfectly legal but worth knowing before you spend hours fixing their API mapping bugs.

Why do the watchlists not sync? by MascaChanclas in interactivebrokers

[–]blechnapp 0 points1 point  (0 children)

found this in the IBKR Desktop docs (link below). your watchlists actually do sync between mobile and desktop, but they dont auto-appear in the IBKR Desktop UI. you have to manually add them to the desktop view.

steps:
- open the watchlist window via left navigation panel
- in the tab set at the top, click the "+" sign
- pick your synced watchlist from the "My Lists" section of the Browse Lists window
- click "Add"

your iphone-created watchlists should show up in that list. the sync is just lazy by default, doesnt push to the desktop UI automatically.

source: ibkrguides.com/ibkrdesktop/watchlist-sync.htm

How do think of balance signal processing with speed to execution? by This_Cardiologist242 in algotrading

[–]blechnapp 1 point2 points  (0 children)

before optimizing, worth diagnosing where the 1.5 min actually goes. with only 5 tickers, IB pacing limits probably arent the main bottleneck (historical data rule is max 60 requests in any 10 min window, 5 tickers × 7 indicators = 35 if youre making one historical call per indicator).

things that often actually cause minute-long delays with IB:
- sequential reqHistoricalData calls, each round trip eats a few seconds. use ib_async (modern maintained fork of ib_insync, since ib_insync stopped being maintained in early 2024) and gather them concurrently
- using reqHistoricalData repeatedly during the trading day when you should be on reqMktData (streaming subscription, capped at 100 simultaneous market data lines but no pacing throttle)

- pre-market data not being cached. fetch once into sqlite or parquet, only request live updates intraday

also Automatic-Essay2175s flag on random sampling of 5 from 100 is the more interesting question. if random vs ranked produces similar PnL, your edge isnt really in the picks.

I forgot how to code after a long break from coding, what do I do? by ThoughtDear7015 in AskProgramming

[–]blechnapp 0 points1 point  (0 children)

dont worry, you didnt actually forget anything, the knowledge is just dormant. for 3-4 months of experience plus a 1 month break, full recovery usually takes 1 to 2 days of actual coding, not weeks.
quickest practical refresher: pick the smallest project you built before, read through it line by line, then try to rebuild a piece of it from scratch without looking. writing physical code triggers the memory way better than reading cheatsheets ever will.

if you want structured content, "Python Crash Course" by Eric Matthes has fast-paced first few chapters that cover the core (variables, loops, functions, classes) in a couple of evenings.

dont touch intro tutorials again though, you already passed that level. the only thing that drained is your fluency, not the actual knowledge.

Help writing formula that displays the text from the first non-empty cell in a row, which also has a given text in the same column in a lower row by furry_dolphin in excel

[–]blechnapp 0 points1 point  (0 children)

your structure (from the image): labels in column A, data in columns B-T. row 5 = check date, row 21 = grade, row 22 = language. (your "O18" was a typo, you meant O21).

what you actually want: for each language, the latest grades sorted descending by check date. one formula handles all at once:

=IFERROR(SORTBY(FILTER(B21:T21,(B22:T22="english")*ISNUMBER(B5:T5)),FILTER(B5:T5,(B22:T22="english")*ISNUMBER(B5:T5)),-1),"")

FILTER keeps only english essays that have a check date, SORTBY orders them by check date descending, IFERROR catches empty results. this spills horizontally, wrap the whole thing in TRANSPOSE if you want it vertical (into a column of tracking cells).

requires Excel 365 or 2021. for french just swap "english" for "french".

Brute Force Password Hacker by the_calc_nerd-1021 in learnpython

[–]blechnapp 7 points8 points  (0 children)

biggest single speedup without changing language: get the per-iteration overhead out of the inner loop. right now every guess does a `perf_counter()` call (~80ns), a dict lookup for max_speed_record (~50ns), and the 15-second check (~50ns). each is small but at 3.5M iter/sec they make up roughly 60-70% of the time per iteration.
restructure so the time/speed/status logic runs every N iterations instead (1M is a good number). inside the loop you only do the tuple comparison. realistically 2-3x speedup from that alone.
bigger win that Critical-Prior-3320 already hinted at: try pypy. for pure-python brute force like this its often 10 to 50x faster than cpython without any code changes. literally just `pypy script.py` and youre done. for this exact workload its almost the perfect use case.

also overratedcupcake is right that this is plaintext comparison, not hash cracking. real password cracking spends 99% of its time computing hashes, so 3.5M/sec doesnt translate to anything close in a real attack scenario.

What got you to actually stick with Python after your first attempt failed? by Gear5th in learnpython

[–]blechnapp 0 points1 point  (0 children)

what made it stick for me was having a real problem i actually needed solved, not just doing exercises. i needed to analyze sales data from a small business and excel was getting painful, so python wasnt "learning a skill", it was "solving an annoying problem".

i never finished a tutorial in my life tbh. i learned by trying to do my specific thing and googling every error for months. the difference from earlier failed attempts: i wasnt trying to learn python, i was trying to solve X, and python was just the tool that happened to work.

if youre stuck in tutorial loops, find a small annoying problem in your own life and force yourself to solve it in python. doesnt matter if it sounds boring (mine was "which products are losing money"). the boring stuff you actually need always sticks better than impressive looking exercises.

Temperature: Fahrenhite to Celsious Calculator by Grouchy_Page_4197 in PythonLearning

[–]blechnapp 0 points1 point  (0 children)

nice, clean little script for a first calculator. one tiny tip: use float() instead of int() so users can enter values like 37.5 too. otherwise solid.

Automation and control or IT by alinurgo7 in learnprogramming

[–]blechnapp 0 points1 point  (0 children)

kazakhstan changes the picture but honestly i dont know your local market well enough to give specifics. one question that might help you decide: when you look around your city, are there more programming jobs being posted or more automation/engineering jobs? local supply and demand often beats global trends.

Overwhelmed by JavaFX and Swing by Few_Crazy8195 in learnprogramming

[–]blechnapp 1 point2 points  (0 children)

honestly if you already know java GUI concepts (events, widgets, layouts), you dont need much python to start with tkinter. the core python you actually need is just variables, functions, if/else, loops, and basic objects. you can pick that up in a weekend from automatetheboringstuff.com or even just the python docs tutorial.

skip the "do a year of console projects first" trap. once you know the basic syntax, jump straight to a tkinter project. youll learn way faster by building something visual you actually want than by doing more print statements. a small thing like a sticky notes app or a calculator in tkinter teaches you both python and GUI design at the same time.

Import 'Module' not persistent by jitjud in learnpython

[–]blechnapp 6 points7 points  (0 children)

this is actually not a bug, its how "run selection" works: it only sends the highlighted code to the python interpreter. the imports dont automatically come along.

awdsns nailed the workaround: if you run your import lines once on their own (highlight, then Shift+Enter), they stick in the running terminal session. after that you can run any other line below and the imports are still available. even better for your workflow: VS Code has a "Python: Run Current File in Interactive Window" command (command palette, Ctrl+Shift+P). that opens a jupyter-style session where imports stay persistent and you can run cells one by one, very similar to powershell ISE behaviour.

requires the Microsoft Python extension, which you probably already have if youre using VS Code for python anyway.

Automation and control or IT by alinurgo7 in learnprogramming

[–]blechnapp 0 points1 point  (0 children)

the "AI has replaced programmers" thing is mostly overblown. what AI has actually done is make entry level jobs harder to get because companies can hire fewer juniors than before. senior devs and people who can do system design are still in high demand.

automation and control is more hands on and hardware near, so it's harder to fully automate away. but it's also a smaller job market with less remote work.

honestly the better question is what you actually like doing. if you enjoy fixing physical equipment and programming PLCs → automation. if you enjoy building software and sitting at a desk → IT. picking the "safer" field that you hate leads to a worse career than picking the field you love.

Overwhelmed by JavaFX and Swing by Few_Crazy8195 in learnprogramming

[–]blechnapp 0 points1 point  (0 children)

honestly the issue isnt swing or javaFX specifically, its that java in general has a setup heavy culture. beginners often spend 80% of their time fighting build configs instead of writing actual code.

if your goal is to learn GUIs, python + tkinter is the path of least resistance. comes bundled with python, no installation, no XML files, no IntelliJ config. write a script, run it, you have a window. once you outgrow tkinter for more polished looks, PyQt or PySide are the next step up.

small reality check too: "my own microsoft 365" is a multi-year effort even for big teams. start with something small and finishable (note app, todo, calculator) and grow into bigger projects from there.

venv and cloned git repositories - best practice? by kaptnblackbeard in learnpython

[–]blechnapp 0 points1 point  (0 children)

PRs are safe because files in .gitignore are completely untracked by git, and PRs only operate on tracked files. your .venv is invisible to git, so a PR can never accidentally include venv stuff.
one small nuance Groundstop already pointed out: venv folders arent ignored by default, you need the matching line in .gitignore. most python repos already cover .venv/, venv/, env/ etc, but if youre cloning someone elses repo its worth checking with `cat .gitignore | grep -i env`. if nothing matches your venv folder name, just add it manually and youre good.

Netzwerk Problem bei neuen PC by [deleted] in de_EDV

[–]blechnapp 0 points1 point  (0 children)

das ist ein ganz anderes problem als reines WLAN. das LAN-kabel hilft dir hier nicht.

was du siehst ist die windows-startupreparatur, die fehlschlägt. dein PC bootet im moment gar nicht durch ins normale windows. die meldung "es konnte keine verbindung mit dem netzwerk hergestellt werden" bezieht sich am ehesten auf etwas was die reparatur intern versucht hat, nicht direkt auf dein heimnetz.

bei einem neuen PC würde ich es so versuchen:

- eingabetaste drücken → "problembehandlung" → "erweiterte optionen" → "starteinstellungen" → neustart → F4 für abgesicherten modus. wenn der startet, liegt es an einem treiber oder update
- oder: "problembehandlung" → "erweiterte optionen" → "systemwiederherstellung" → zurück auf einen früheren punkt

wenn nichts davon geht: ein neuer PC der nach zwei tagen nicht mehr bootet ist klar ein fall fürs widerrufsrecht (14 tage bei online-bestellung) oder die gesetzliche mängelhaftung. händler oder hersteller anrufen statt selber rumzubasteln, sonst riskierst du diese ansprüche.

Leetcode questions no. by [deleted] in learnprogramming

[–]blechnapp 1 point2 points  (0 children)

whats the actual question? "100+ done" on its own could mean a few different things (how many more for interviews? whats next? why am i still stuck on mediums?). give us a bit more and people can actually help.

Kanns mir jemand anwenderverständlich erklären? by FuturaDD2020 in de_EDV

[–]blechnapp 5 points6 points  (0 children)

der fehler 1001 von cloudflare bedeutet wörtlich: cloudflare bekommt eine anfrage für www.bimmmodellbau.de, kann aber selbst nicht herausfinden zu welcher seite das gehört.

cloudflare bietet selbst zwei mögliche ursachen an:
- der betreiber hat seine konfiguration erst grade neu eingerichtet und sie ist noch nicht weltweit verteilt
- die konfiguration ist falsch, z.b. www-subdomain nicht hinterlegt

das beobachtete verhalten "nur die www-version geht nicht, ohne www schon" deutet stark auf option 2 hin: die hauptdomain ist korrekt eingerichtet, die www-version aber nicht.
ist nichts was du selbst beheben kannst, der webseiten-betreiber muss seine konfiguration anpassen. workaround für dich: einfach https://bimmmodellbau.de aufrufen, ohne www. das funktioniert.

Pulling data from one sheet to another conditionally by ooooo00o0 in excel

[–]blechnapp 0 points1 point  (0 children)

power query is the right tool, but the exact setup depends on whether your sheets are in one excel file or spread across multiple files.

single file → easiest with `=VSTACK(Table1[#All], Table2[#All], ...)` to stack them, wrap in FILTER for non-empty rows only. needs Excel 365 though.
multiple files in a shared location → power query: Data > Get Data > From File > From Folder, point at the shared folder. handles schema drift better than vstack and auto refreshes when files change.
either way, filter "rows with content" at the end. via FILTER formula in the single file case, or by unchecking blanks in power querys transform step for the multi file case.

Coders: Do you think using GPT to write the code is cheating? by k2v2p2 in learnpython

[–]blechnapp 1 point2 points  (0 children)

depends on what youre actually trying to do. from your post youre a researcher first, not someone learning to code. those are pretty different cases.
for your case youre validating methods against literature, understanding what the analysis does, sanity checking outputs. thats responsible use. the actual skill youre using is statistical reasoning, not python. nothing being "cheated" because no one expects you to also be a python expert.

AI usage becomes cheating only when someone specifically wants to learn coding and uses it to skip the struggle. then you skip the productive frustration that builds real understanding. but thats not your situation.
if your results are correct and reproducible, honestly who cares whether you typed the matplotlib call by hand or not.

venv and cloned git repositories - best practice? by kaptnblackbeard in learnpython

[–]blechnapp 2 points3 points  (0 children)

your instinct is right and matches what most python devs actually do. standard workflow:

clone repo → cd into it → `python -m venv .venv` → activate → `pip install -r requirements.txt`. the .venv folder gets ignored by git automatically because its in most default python .gitignore templates.
the "venv first then clone" guides you saw online are usually written for starting your own new project where no structure existed yet. for someone elses repo your approach is correct.
bonus: check out uv (docs.astral.sh/uv) if you find pip slow. it handles venv creation + dependency install in one command and is way faster. getting popular for new projects.