Website profiles · Technology insights · Alternatives

openresearch.wordpress.com No paid content found

Categories: Education & Learning

My daily sufferings as a PhD student at Berkeley

Visit website

Updated: 2026-10-01 17:15 Language: English (default) Access: Normal

Profile views 3 Outbound visits 0
Open Source Research | My daily sufferings as a PhD student at Berkeley Full homepage screenshot
Editorial Review

Website Review

What is Open Source Research?

Open Source Research is the personal blog of a PhD student at Berkeley, used to share working notes on programming, data science and learning. Its tagline—"My daily sufferings as a PhD student at Berkeley"—sets the tone: informal, opinionated, and written from the middle of the work rather than after it.

Typical posts are practical and text-heavy. Examples visible on the site include "15 Principles for Data Scientists," notes on learning C++11, takeaways from a Stanford talk on learning to learn, a Mandelbrot fractal written in Python, and a critique of how Coursera and Udacity congratulate themselves. The data-science post is a numbered list of personal rules: be honest with data, build and share tools, keep studying graduate-level math and statistics, learn one language deeply and others well enough to communicate, and present your work publicly even when criticism is uncomfortable.

Who it suits

  • A graduate student or early-career data scientist who wants a peer's raw notes rather than polished tutorials.
  • Someone learning a language or tool who wants to see how another person structures their own study.
  • Readers who don't mind profanity, strong opinions, and advice stated as absolutes.

Trade-offs

The value is in the directness and the range of topics; the cost is that posts are personal essays, not maintained documentation. Advice is tied to one person's experience at one point in time, so treat claims like "learn R" or judgments about specific tools as opinions to weigh, not settled guidance. Expect little structure, few updates, and no editorial filter.

If you want to use it well, pick the post closest to your current problem—say, the data-science principles list—and turn two or three of its rules into a weekly habit, then compare how they hold up against your own experience. For broader, continuously maintained material, pair it with a community resource such as Stack Overflow or GitHub.

What are the 15 principles for data scientists?

The 15 principles are a personal working creed for data scientists, published on a Berkeley PhD student's blog. The post introduces them as the rules the author follows in daily work; only the first nine are shown in the available page text, so the remaining six are not visible here.

The principles visible in the post

  1. Do not lie with data and do not bullshit. Be honest and frank about empirical evidence, and above all do not lie to yourself with data.
  2. Build everlasting tools and share them. Spend part of each day building tools that make someone else's life easier; humans are tool builders.
  3. Educate yourself continuously. Read graduate-level math and statistics, learn fundamentals rather than hallway explanations, read recent papers, attend conferences, publish and review.
  4. Sharpen your skills. Learn one language well, learn others well enough to communicate, treat SQL as essential, learn a compiled language, an interpreted language and R, and learn Unix tools such as sed and grep.
  5. Kick ass and amaze people. Do one thing every day that serves this purpose.
  6. Challenge yourself by presenting your work. Do not fear critics.
  7. Be generous with knowledge and ask questions. Do not hoard what you know.
  8. Develop your own ideas first, then listen to others. Use domain knowledge without being restricted by it.
  9. Hang out with people and talk to them. Learn how you can be useful in their projects and how their work can benefit yours.

How to use this

Treat the list as a discussion prompt rather than a standard. A new data scientist could pick one item per week — for example, "build and share one small tool" — and review it at the end of the week. A team lead could use principles 1, 6 and 7 as meeting norms: state uncertainty honestly, present unfinished work, and ask questions without penalty.

The list is opinionated and informal, with strong language and blunt judgments about tools and methods. Read it for the underlying habits — honesty, tool-building, continuous learning, communication — and decide for yourself where the specifics fit your stack and workplace. If you want the complete set, the original post is the place to look: Open Source Research.

How can I learn C++11 effectively?

Learning C++11 effectively means treating it as a modern language rather than "C with classes." The biggest practical shift is to use the standard library and move semantics from day one, not after you've already learned the old style.

A workable study path

  1. Get a modern reference. A book or course that explicitly covers C++11 (auto, range-for, lambdas, smart pointers, move semantics) will save you from unlearning outdated habits. Avoid pre-2011 material as your primary source.
  2. Write small programs daily. Compile with a C++11 flag (for example, -std=c++11 on GCC/Clang) so the compiler enforces the standard you're targeting.
  3. Learn the standard library alongside the syntax. std::vector, std::string, std::unique_ptr, std::shared_ptr, and the <algorithm> header do more for real productivity than memorizing language corners.
  4. Read other people's code. Open-source C++11 projects show idiomatic use of lambdas, auto, and move semantics in context. The blog Open Source Research documents one PhD student's notes on C++11 and related data-science tooling, which can complement a structured course.
  5. Build one non-trivial project. A small tool, parser, or simulation forces you to combine classes, templates, and the standard library in a way exercises can't.

What to prioritize

Topic Why it matters Learn it
auto and range-for Cuts boilerplate, reduces type errors Early
Smart pointers Replaces manual new/delete Early
Lambdas Everywhere in modern APIs and algorithms Early
Move semantics / rvalue refs Performance and correct resource handling After basics
Templates and metaprogramming Powerful but easy to overuse Later

A concrete next step

Pick one small program you already understand — say, a CSV reader or a word counter — and rewrite it in C++11 using std::vector, std::string, a lambda in std::sort, and std::unique_ptr where ownership matters. Compile it with the C++11 flag, fix every warning, then read the standard-library documentation for each facility you touched. That single exercise teaches more than several chapters of passive reading.

If you want a structured course, compare a few options on whether they explicitly target C++11 and include graded programming assignments, since passive video-watching alone rarely builds fluency.

What are the key takeaways from the 'Learning to learn' talk?

The page itself doesn't reproduce the talk's content. Its "Learning to learn" post is titled "My notes from the 'Learning to learn' talk by Stanford's Benjamin Von Roy", and the excerpt supplied here covers a different post — the author's "15 Principles for Data Scientists." So the honest takeaway is that this site is a personal PhD blog where the talk notes sit alongside posts on C++11, Python fractals, data-science principles, and criticism of Coursera and Udacity; the talk notes would need to be read on the post page itself.

What the surrounding material does show is the author's own learning philosophy, and it's a reasonable proxy for why a "learning to learn" talk would appeal to them:

  • Fundamentals over shortcuts. The advice is to read graduate-level math and statistics rather than accept a hallway explanation of a method.
  • Depth plus breadth in tools. Learn one language well, others well enough to collaborate, and treat Unix, sed, and grep as everyday skills.
  • Build and share. Spend part of each day making tools that make someone else's work easier.
  • Teach and be questioned. Present your work, ask questions, and share knowledge rather than hoarding it.
  • Form your own view first. Develop ideas before soliciting others' domain insights.

These are the author's stated principles, not a summary of Von Roy's talk — treat them as one Berkeley PhD student's framing rather than the speaker's actual claims.

Next step: open the "Learning to learn" post directly on Open Source Research to read the notes themselves. If you want the speaker's own material, look for Benjamin Von Roy's Stanford talk page or slides, since a note-taker's summary reflects what one listener found worth writing down.

How to judge the notes when you read them: check whether they give you something actionable — a study technique, a scheduling habit, a way to test your own understanding — or only inspirational phrasing. Notes that name specific methods and when they fail are worth keeping; notes that only say "learn deeply" are not.

How do I create a Mandelbrot fractal in Python?

Use a short Python program built on NumPy and Matplotlib: iterate the map z → z² + c over a grid of complex numbers, count how many steps each point stays bounded, and render those counts as an image. The page itself includes a post titled "A Mandelbrot Fractal in Python," so it is a reasonable starting point for seeing one working approach: Open Source Research.

H3 Steps that work in practice

  1. Choose a window in the complex plane, for example real parts from -2.5 to 1 and imaginary parts from -1.25 to 1.25.
  2. Build a grid of complex values with numpy.linspace and numpy.meshgrid.
  3. Keep an array z of the same shape, initially zeros, plus an iteration-count array.
  4. Repeatedly apply z = z*z + c only where |z| is still below 2 (or 4 for the squared test), incrementing counts.
  5. Plot the counts with matplotlib.pyplot.imshow, using extent so the axes show real and imaginary coordinates.
  6. Optionally map counts through a colormap or a simple palette so the boundary structure is visible.

H3 A concrete reader scenario

A student wants one figure for a report and does not care about maximum speed. Start with a 1000×1000 grid and 100 iterations. If it takes too long, cut to 500×500 and 50 iterations; if the edges look coarse, raise iterations before raising resolution. If you later need animation or zooming, move the inner loop to a compiled extension or use vectorised NumPy operations rather than pure Python loops.

H3 Trade-offs to decide early

Choice Benefit Cost
NumPy vectorisation Simple, fast enough for still images Memory grows with grid size
Pure Python loops Easiest to read and debug Slow for large grids
High iteration cap Sharper detail near the boundary Longer runtime
Smooth coloring Avoids banding Slightly more code

If you want a broader data-science context around tool-building and Python practice, the site's "15 Principles for Data Scientists" post is the relevant companion: Open Source Research.

Next step: write the grid and iteration loop first, print the shape and a few counts, then add plotting. That separates a maths bug from a rendering bug.

What are the main criticisms of Coursera and Udacity mentioned on this site?

The site's main criticism of Coursera and Udacity appears in a post titled "Dear Coursera and Udacity! Don't congratulate yourself too much." The author—a PhD student writing about their daily work and study habits—objects to the platforms' self-congratulatory tone and argues that they overstate their own importance. The implied criticism is that MOOCs are not as revolutionary or as universally beneficial as their marketing suggests, and that celebrating themselves too much is unwarranted.

That is the extent of the criticism visible in the page evidence: the heading itself carries the argument, while the excerpt shows the author's broader style of blunt, opinionated commentary on learning and data science rather than a detailed critique of either platform.

If you want the full argument, open the post directly at Open Source Research and read the comments as well—the author's reply to readers often carries more of the substance than the headline. As a practical check, compare the post's date with the platforms' current course catalogs; a critique written years ago may target a different product than the one you would sign up for today.

Related questions

More questions →
What Are Open-Source UI Element Libraries and How Do They Differ From UI Frameworks?

An open-source UI element library is a collection of individual, ready-made interface pieces—buttons, cards, inputs, toggles, loaders—that you copy into your own project and adapt. A UI framework, by contrast, is a structured system of components, conventions, and often a theming layer that governs how your whole interface is built. The practical difference: an element library gives you a snippet; a framework gives you a way of working. If you need a polished button in ten minutes, reach for the element library. If you're building a 40-screen product with a team, you probably want the framework.

What "open-source UI element library" actually means

The term gets used loosely, so it helps to separate the parts:

  • Open-source: the code is publicly available, and the license tells you what you may do with it—copy, modify, redistribute, or use commercially.
  • UI element: a single, self-contained piece of interface, usually small enough to read in one sitting. A button with hover states, a pricing card, a search field.
  • Library: a browsable, searchable collection of those elements, typically contributed by many different people.

On a site like Uiverse, elements are shared by a community and written in plain CSS or Tailwind. You find one you like, copy the markup and styles, paste them into your project, and adjust colors, spacing, and text to fit. There's no package to install and no build step required—which is exactly the appeal, and also the source of most of the confusion.

Element library vs. UI framework: the core differences

Dimension Open-source UI element library UI framework / design system
Unit of reuse A single snippet you copy A component you import or call
Installation None; paste into your code Package install, config, sometimes a provider
Consistency Depends on you; each element may look different Enforced by shared tokens and APIs
Theming Manual edits per element Central theme/config file
Updates You own the copy; no upstream updates Version bumps bring fixes and changes
Accessibility Varies per contributor; must be checked Usually tested and documented
Best for Prototypes, landing pages, small sites, one-off needs Multi-page apps, teams, long-lived products
Learning curve Low—read the CSS Higher—learn the API and conventions

The table isn't a verdict. It's a map of trade-offs. Element libraries win on speed and freedom; frameworks win on consistency and maintenance.

Licensing and attribution: what to check before you paste

This is where people get into trouble, and it's worth slowing down for.

  1. Find the license. Every element or collection should state one. Common open-source licenses include MIT, Apache-2.0, and BSD. Some projects use copyleft licenses like GPL, which can impose obligations if you redistribute your code.
  2. Understand what the license permits. MIT and Apache-2.0 are permissive: you can typically use the code in commercial and closed-source projects. Copyleft licenses may require you to release derivative source under the same terms.
  3. Check attribution requirements. Permissive licenses usually require you to keep the copyright notice and license text somewhere in your project. That's a real obligation, not a formality.
  4. Look for per-element terms. On community sites, the site's overall terms and the individual contributor's stated wishes may differ. If a contributor asks for credit, honor it.
  5. When in doubt, ask or avoid. If a snippet has no license at all, you don't have clear permission to reuse it. Treat "no license" as "not open source," even if the code is publicly visible.

This article is general information, not legal advice. For commercial products with real exposure, have someone qualified review the licenses you're relying on.

How to use a community element in your project: a practical workflow

Here's a repeatable process that avoids most of the usual mess.

1. Start from a real need, not a browsing session

Decide what you need first—"a compact primary button with a loading state"—then search. Browsing aimlessly produces a pile of pretty snippets that don't fit together.

2. Copy the smallest version that works

Take the markup and the styles. Strip anything you don't need: demo wrappers, extra animations, decorative layers. Less code means fewer surprises.

3. Convert it to your conventions

If your project uses design tokens or CSS variables, replace hard-coded values:

/* Before: hard-coded */
.button { background: #4f46e5; border-radius: 8px; }

/* After: token-based */
.button { background: var(--color-primary); border-radius: var(--radius-md); }

This one step is what keeps a copied element from looking like a foreign object in your UI.

4. Check accessibility before you ship

Community elements vary widely here. Verify at minimum:

  • Keyboard focus is visible and the element is reachable by Tab.
  • Color contrast meets WCAG AA (4.5:1 for normal text).
  • Interactive elements use semantic HTML (<button>, not a clickable <div>).
  • Form inputs have associated labels.
  • Motion respects prefers-reduced-motion.

5. Test in context

Paste it into a real page with real content. Long labels, small screens, and dark mode break more copied elements than anything else.

6. Note where it came from

Keep a short comment or an internal credits file: source, license, date. Future you—and your legal reviewer—will be grateful.

Where element libraries genuinely shine

  • Prototypes and demos: you need something clickable today, not a design system.
  • Landing pages and marketing sites: a handful of distinctive elements, each custom.
  • Filling gaps: your framework lacks one specific component, and you don't want to build it from scratch.
  • Learning: reading well-made CSS is one of the fastest ways to improve.
  • Small projects: a personal site doesn't need a theming architecture.

Where they fall short

  • Consistency at scale: ten elements from ten contributors rarely look like one product.
  • Maintenance: you own every copy. When your design changes, you edit each one.
  • Accessibility debt: you inherit whatever the contributor did or didn't do.
  • No upstream fixes: a bug fixed in the original won't reach your copy.
  • Integration friction: different naming conventions, different units, different assumptions about resets.

When to choose which

Choose an element library when the scope is small, the timeline is short, or you need a few distinctive pieces rather than a whole system.

Choose a framework or design system when multiple people build multiple screens over months, when consistency is a product requirement, or when accessibility and theming need to be guaranteed rather than checked.

A hybrid works well for many teams: adopt a framework for the structural components—forms, navigation, layout—and borrow individual elements for the places where you want personality. Just route every borrowed element through the same token and accessibility checks, so it lands as part of your system rather than beside it.

The short version: open-source UI element libraries are a fast, flexible way to get good-looking interface pieces into a project. They are not a substitute for a design system, and the license and accessibility details are the part worth reading carefully.

Website Overview

An established domain and managed infrastructure suggest continuity of operations and may support dependable delivery, although neither guarantees service quality. Several search or sharing settings need attention. Together they may make snippets, preview images or preferred URLs less consistent across platforms.

Domain and Registration

Registered in 2000, this domain has about 26 years of history. That suggests continuity, although ownership and purpose may have changed. The registrar, MarkMonitor Inc., specializes in corporate domain and brand management, suggesting attention to domain asset protection. Transfer-protection status is present, helping reduce the risk of unauthorized domain transfers. The domain uses the common .com extension, which is not an independent safety signal.

DNS and Email

The lowest TTL is 12 seconds, supporting rapid record changes at the cost of more frequent lookups. Nameservers are provided by wordpress.com, indicating managed DNS hosting. MX records point to the automattic.com email service. CAA records restrict which certificate authorities are authorized to issue certificates. SPF and DMARC are configured. DKIM status is unknown.

TLS and Certificates

The public key uses EC with 256 bits. The server supplied a complete certificate chain. No organization name is present in the certificate; the available fields are consistent with domain validation. The certificate was issued by Let's Encrypt, commonly associated with automated certificate services. The certificate's total validity is about 89 days, consistent with a short renewal cycle.

HTTP and Browser Security

The response lacks these common security headers: CSP, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, clickjacking protection. No X-Powered-By header was found, reducing one common source of backend fingerprinting information. No obvious internal addresses or debug information were found in the headers. The Server header identifies nginx without an exact version. No explicit CDN or WAF marker was found in the response headers.

Technology Stack Analysis

The public page identifies WordPress.com, WordPress, nginx without precise versions, leaving fewer clues for version-specific scanning.

Search and Social Sharing

The title has 71 characters and may be truncated in search results. The Generator tag identifies WordPress.com, making the publishing system easier to fingerprint. No viewport meta tag was detected, which may affect mobile layout behavior. No homepage canonical URL was detected. If duplicate URLs exist, consolidation may be less explicit. A meta description is present, with 48 characters.

Hosting and Email

DNSwordpress.com
Hostingwordpress.com
Emailautomattic.com
Location United States flagSan Francisco, California, United States 192.0.78.12

User reviews (0)

  • No reviews yet.

Pages, Search and Sharing

Meta descriptionMy daily sufferings as a PhD student at Berkeley
Canonical URLNot detected
LanguageEnglish (default)
Twitter CardNot detected
All bots 1 allowed · 10 disallowed
  • Allow/wp-admin/admin-ajax.php
  • Disallow/wp-admin/
  • Disallow/wp-login.php
  • Disallow/wp-signup.php
  • Disallow/press-this.php
  • Disallow/remote-login.php
  • Disallow/activate/
  • Disallow/cgi-bin/
  • Disallow/mshots/v1/
  • Disallow/next/
  • Disallow/public.api/

Registration details RDAP / WHOIS

RegistrarMarkMonitor Inc.
Registered2000-03-03
Expires2033-03-03
Domain statusclient delete prohibited、client transfer prohibited、client update prohibited、server delete prohibited、server transfer prohibited、server update prohibited
Nameserversns1.wordpress.com、ns2.wordpress.com、ns3.wordpress.com、ns4.wordpress.com
DNSSECunsigned

DNS records

TypeNameValueTTLPriority
Alb.wordpress.com192.0.78.12300—
Alb.wordpress.com192.0.78.13300—
MXwordpress.commx-ams.automattic.com360010
MXwordpress.commx-dfw.automattic.com360010
NSwordpress.comns1.wordpress.com4913—
NSwordpress.comns2.wordpress.com4913—
NSwordpress.comns3.wordpress.com4913—
NSwordpress.comns4.wordpress.com4913—
TXTwordpress.comgoogle-site-verification=CW2JYOoHSXW8x6QyQO_a0edu0gNOKsLIHcO49QquLdU3600—
TXTwordpress.comopenai-domain-verification=dv-AKnzAsfVXHG2wucO1Bcx2JC73600—
TXTwordpress.comv=spf1 include:_spf.automattic.com include:servers.mcsv.net include:_spf-wwd.automattic.com include:mail.zendesk.com include:sendgrid.net include:145630858.spf04.hubspotemail.net include:amazonses.com -all3600—
TXTwordpress.comyahoo-verification-key=GqtxTvPQ+tFgwrCg9xNl6srlPSpDkTIj6q9YzADxxdE=3600—
CNAMEopenresearch.wordpress.comlb.wordpress.com14400—
CAAwordpress.com0 iodef "mailto:[email protected]"300—
CAAwordpress.com0 issue "letsencrypt.org;validationmethods=dns-01;accounturi=https://acme-v02.api.letsencrypt.org/acme/acct/36334489"300—
CAAwordpress.com0 issuewild "letsencrypt.org;validationmethods=dns-01;accounturi=https://acme-v02.api.letsencrypt.org/acme/acct/36334489"300—
DMARC_dmarc.wordpress.comv=DMARC1; p=reject; pct=100; rua=mailto:[email protected]; ruf=mailto:[email protected];12—

TLS and certificates

AssessmentNormal configuration
Supported protocolsTLSv1.2、TLSv1.3
Negotiated protocolTLSv1.3
Certificate subjectwordpress.com
IssuerLet's Encrypt
Valid until2026-12-03T19:45 · Remaining when checked: 63 days
Verification detailsCertificate trust: Passed · Hostname match: Passed

HTTP response headers

HeaderValue
content-typetext/html; charset=UTF-8
servernginx
strict-transport-securitymax-age=31536000

Identified technologies

WordPress.comWordPressnginx