It is abit sad to work on a project that no one cares about. You're not sure if you're crazy or a visionary. And it is kind of lonely.
I sometimes wonder if I would be happy doing this for the rest of my life if I could. And if it would have any impact at all no matter for how long I do it. My feelings in that area go from slightly depressed to slightly excited about the potential a few times every week.
It is hard to get such ideas off one'smind. But the fact is, for better or worse, I've started walking the path of educational reform and sacrificed others along the way, and this is the path that I'm further ahead than other people, and perhaps I should pursue it further to a possible conclusion. Also this path has the advantage that it is not fully exclusive from other academic endeavors aswe will always need content about the new flashy things that keep coming up.
So yeah, it's hard, but here I am, and I'll go as far asI can without going into Charles Bukowski levels of personal sacrifice.
OK, I need to do content. I know :-) At the universityI'm at, the only department that is open is the mathematics one. Both:
physically, I'm sitting next to some students right now, though they don't yet know that their saviour is just next to them.
in terms of publishing the course materials online. Many of them even have solution
All other courses extremely closed, notably Physics, which is the other course I'd consider. There are upsides and downsides for going for Mathematics:
downside: most of it is useless compared to Physics
If I were free to choose, I might go for Physics instead. But maths isn't hard, and I think I'll just go with the hand I'm dealt this time to start with.
Tech wise, the big things are the following ones to which I have given different levels of architectural consideration (i.e. read: I'm afraid they'll be fucking hard and that I'll spend amonth on yet another useless feature that won't help get a single user). I don't think I'll do those before at least a little bit of content, we'll see:
WYSIWYG: this is not a question of if, but when and how. Even I miss it when dealing with images. I was particularly impressed by Trillium Notes, and might consider forking it or reusing some of its components
Currently, after much effort, publishing from local to web is extremely good.
But pulling back changes that you make on web UI locally is not really possible. A basic version can be made easily, but a great version requires some thought.
In particular, preventing accidental rewrite on simultaneous local + web edits require edit history to be in place.
The rationale here is that users would start editing on Web with a low entry barrier. And as they become more committed to the project, they would eventually transition to having editing most of their content locally from a desktop, with the exception of a few minor edits on the go when they are on acell phone, and which we want to very easily and automatically be pulled back to local as soon as they open an editor on their laptop.
I.e. we want to add a downwards arrow to the following diagram:
Smaller cute tech that I might do before content "real quick" include:
move more into community tagging rather than just community topic-ing:
Another thing I really want to do before time is up is to create avideo summarizing my philosophy of education. I want it to be as fun and funny and sad as possible, with silly moving animated images and slides, not just me talking to the camera. Although all of the points I intend to talk about have undoubtedly been covered by others, it is something that I feel so strongly about that I would like to tell others about it more personally. If I start it it will likely take a few days to get done, and I'm not sure wha the final quality would be. It is abit sad to not do "project work", but I think I'll end up doing it regardless. Class it under "fundraising" if you will, as it may help to find other like minded but rich people.
Static website generation is an indispensable escape valve that ensures that your content can be published forever even if OurBigBook.com goes down one day, which it won'tas long asI live. But the innovation is Web.
static website generation was closer to good enough, but web was much further and is fundamentally harder.
I'm extremely satisfied with OurBigBookstatic website generation and haven't touched it as much. It wasn't easy to reach this state, but I'm there.
But Web is a different and much more complex beast.
And then there's also the issue of front-end being mega-hard to get right.
Asa result, Web is now way less buggy and much more usable.
If you look through the list of Web updates, there is nothing specifically mind blowing. The core ideas have largely crystallized, and we are just trying to making them click. I have a few more punches up my sleeve, but the core is decided.
. Source. Another cute new feature, you can send an email to your followers about a new amazing article you created.
Web process has been somewhat slower than what I'd like. Of course, it is the case of any project that things are easily said than done. But there are two other main structural factors that have played into it:
I have my first baby now, and we're learning how to deal with that on the fly.
For example, we could have put him on childcare abit earlier, but due to inexperience we've kept him abit longer than we maybe should have.
Things are well sorted out now, but not matter how good your support system is, at the end of the day, and more often night, it is you the parents that have to deal with a lot of inevitable baby issues. Unless you want them to turn into psychopaths and drug addicts that is, which I don't. I've reached the point of semi failure middle age that the baby feels like my best moonshot.
All of this sets a fundamental limit on how many hours you can work per week.
But at least with the donations I was able to work on OurBigBook at all. Because if it weren't for that, I would have to focus entirely on the generic job instead and OurBigBook would have been put on hold.
the choice of Web stack. I was allured by Next.js. I can see the beauty and usefulness of a Node.js render front-end that also runs on backend and hydration. That is awesome.
But:
React is insanely hard to learn and understand. Furthermore, it is also hard to understand the performance problem that it solves, and actually have abenchmark where this problem is solved faster than just delivering some HTML files with ad-hoc Js on top.
the lack (or perhaps excess of shitty) actual web framework like Ruby on Rails and Djangomeans that I have to rediscover the wheel many times over for all the essential support activities like testing, login and so one
Aside from Web, there was only one thing that received a significant improvement, and that was the OurBigBook VS Code extension. The extension is not perfect, and it is not the "final UI", which has to be some WYSIWYG implementation, and there are some fundamental limitations that cannot be overcome without patching VSCode itself. However, the extension is already extremely usable, and I'mwriting this on it right now. Basics like syntax highlighting, jump to definition and autocomplete are very useful and usable.
At firstI had intended to create a lot more content for the world class university located where I lived, but I ended up not doing that and just improving the project tech instead.
asa tech nerd, my natural tendency is to first sit down by myself and code to solve big general problems rather than go out and try to solve specific people'sspecific problems to obtain money and users
at one point I got the feeling that helping students with abunch of small courses might be useful, and that instead I might get more impact by instead by focusing on creating content for a next big thing area such as:
because many of the courses are fundamentally useless by design due to misalignment between university and reality.
I'm still not sure what to do about that, but I do think I'll try to do abit of course solving at least and see how it goes.
One thing I've learned first hand through Ciro Santilli's Stack Overflow contributions and Linux Kernel Module Cheat is that the barrier to make money from auseful open source learning project that benefits a large number of people a little bit is huge, perhaps infinite, and that it might be better to instead focus more intensely on fewer users. This insight pushes me more towards going for solving local courses.
Another consideration that supports going for courses is that being close to students is perhaps my only unfair advantage. There is likely no one else in the world in the same position that I'm at, with some "freetime" to chill with undergrads and help them with 100% of my undivided attention and passion.
A point that pulls me towards the big tutorials however is that my time is almost up, and focusing on them would increase the chances that I will be work in those fields afterwards. This feeling may go against the best interests of the project, but it is perhaps an inevitable self preservation consideration unless someone decides to free me from that forever with the 2M :-)
the entry barrier to help students of a top university is rather high. The students are already extremely busy and pressured (this is pe), and if it is in the slightest hard to explain their problems to you because you are not fluent enough in their subject, they will find a faster way to obtain the knowledge and never come to you.
I also did abit of procrastinating with a few quick few exploration into cute programming projects. Nothing too crazy long however, just the usual. It's in my nature to have broad interests, and perhaps only such a person can make a OurBigBook.com. I'm not a fast worker. But I never stop. Once something is in my "this must be done or learnt list", I just keep coming back to it again and again until it happens.
you risk being misaligned with what users want and spend enormous amounts of time on useless features
it is also rather demotivating that you are working hard on a really cool feature but you know that there are no users yet so no one will benefit from it, and that this feature alone is not enough to attract the users anyways
There are however counterpoints to these as for anything else:
I'mauser and I'm always improving it for myself. If there are other people like me out there, they will love it. If there aren't, perhaps I'll never be able to do anything that caters for them well enough anyways.
as the two users made me understand, once someone touches your thing, they expect it to be perfect, and their standards are extremely high. This is understandable in part given the large number of note taking apps in existence, and notably WYSIWYG ones. As such, there is some rationale for improving tech.
Long story short, the project is so far a complete failure on the most important metric: number of regular users, which current sits at exactly one: myself.
There were notable users who found the project online and who actually tried to use the website for some content and provided extremely valuable feedback:
Unfortunately after the period of a few weeks they stopped using it to follow their other priorities instead. Which is of course totally fine, however sad.
I still believe that the OurBigBook Web feature is a significant tech innovation that could make the website go big.
I also believe that the project gets many fundamentals of braindumping right, notably the infinitely deep table of contents without forced scoping, e.g.:
- Mathematics
- Calculus
does not make Calculus have an ID orr URL of mathematics/calculus, rather it's just calculus.
Internal cross file internal link uses only the leaf ID hilbert-space.
But there is a fundamental difficulty in reaching critical mass to that self-sustaining point, as people don't seem to be convinced by these logical "my system is better" argument alone, as opposed to having them Google into stuff they need now and then understand that the project is awesome.
A closely related critical mass issue is that existing big multiuser knowledge base websites such as Stack Overflow and Wikipedia have a tremendous advantage on PageRank. No matter how useless aWikipediaarticle about something is, it will always be on top of Google within aweek of creation for title hits. And since the main goal of publishing your stuff is to get it seen, it makes much more sense for writers to publish on such existing websites whenever possible, because anywhere else it is way way less likely to be seen by anybody.
it allows you to organize a more global view of a subject, i.e. abook. Even I write answers on Stack Overflow, I also tend to organize links to these answers in a structured ways here, see e.g. big topics such as SQL
deletionism and overly narrowness of allowed topics/style
Perhaps what saddens me the most is that even on GitHubstars/Twitter/Hacker news terms there is almost no interest in the project despite the fact that I consider that it has innovations, while many other note taking appsas well in the thousands of stars. Maybe I'm just delusional and all the tech that I'm doing is completely useless?
Part of the issue is probably linked to the fact that most other note taking apps focus on "help me organize my ideas so I can make more money" and often completely ignore "I want to publish my knowledge", and stuff that helps you make money is always easier to sell and promote.
OurBigBook on the other hand a huge focus on "I want to publish me knowledge". It aims almost single mindedly in being the best tool ever for that. However this doesn't make money for people, and therefore there are going to be way less potential users.
I do believe strongly that all it takes is a few users for the project to snowball. For some people, once you start braindumping, it is very addictive, and you never want to stop basically. So with only a few of those we can open large parts of undergrad knowledge to the world. But these people are few, and so far I haven't been able to find even a single one like me, and on top of that convince them that I have created the ultimate system for their knowledgepublishing desires.
Another general lesson is that I should perhaps aimed for greater compatibility with existing systems such as Obsidian. Taking something that many people already know and use can have a huge impact on acceptance. E.g. anything that touches Obsidian can reach thousands of stars: github.com/KosmosisDire/obsidian-webpage-export. Note taking apps that aim for "markdown" compatibility also tend to fare better, even if in the end you inevitably have to extend the Markdown for some of your features. And WYSIWYG, which I want but don't have, is perhaps the ultimate familiarity.
Another issue compared to other platforms is that OurBigBook just came out late. Obsidian launched in 2020. Roam Research and Trillium Notes also came earlier. And it is hard to fight the advantage already gained by those on the "I'm going to take some personal notes" area. I do believe however that there a strong separation between "these are my personal notes" and "I want to publish these". Once you decide to publish your knowledge, you immediately start to write in a different way, and it is very hard to convert pre-existing "private" notes into ones suitable for public consumption.
In today’s fast-growing digital world, professionals who understand online marketing and technology play a vital role in helping businesses succeed. One such professional is **Wajahat Hussain Aziz**, a Pakistani digital marketing expert known for his work in SEO, web development, and online branding.
**Wajahat Hussain Aziz** is recognized asa **digital marketer, SEO specialist, and web developer** based in Pakistan. He has built his career around helping businesses improve their online visibility and achieve sustainable growth through effective digital strategies.
Wajahat Hussain Aziz is the founder of a digital marketing agency operating under the brand **Wajahat Writes**. His agency focuses on delivering long-term digital solutions for startups, entrepreneurs, and established businesses. The services are designed to enhance brand presence, increase organic traffic, and improve overall online performance.
According to publicly available information, Wajahat Hussain Aziz has an academic background in **computer science and project management**. This educational foundation supports his technical expertise and structured approach to managing digital projects efficiently.
Wajahat Hussain Aziz emphasizes ethical SEO practices, continuous learning, and adapting to evolving digital trends. His goal is to help businesses grow organically while maintaining quality, credibility, and measurable results.
In summary, **Wajahat Hussain Aziz** is a dedicated digital marketing professional specializing in SEO, web development, and online marketing. Through his agency and consulting services, he continues to support businesses in building strong digital foundations and achieving long-term success.
Mined Bitcoin in 2010. Stopped mining because Ithought it wouldn't be profitable. Lost computer. Dreading the regret I'll feel when it hits $100k during the next 10x surge.
As System-on-Chip (SoC) architectures incorporate billions of transistors, the ability to accurately predict design properties has become paramount 5. Early-stage architectural design and physical synthesis rely heavily on robust models that quantify the relationship between logiccomplexity and the communication requirements between disparate system blocks.
The foundational model in this domain is Rent's Rule 1. Discovered empirically by E. F. Rent at IBM and later formalized by Landman and Russo 2, the rule establishes a power-law relationship between the number of external signal connections (terminals) to alogic block and the number of internal components (gates or standard cells) it contains:
Where: • T: Number of external terminals (pins) of the block. • g: Number of internal logic components (gates/cells). • K: Rent's empirical constant (average pins per block). • p: Rent exponent (0<p<1).
While Rent's Rule is an indispensable tool for wirelength 3,4 and placement optimization, its empirical origins lead to inherent limitations—especially when applied to modern, heterogeneous architectures. This paper discusses New Law 5 and a new generalization, which addresses these shortcomings by incorporating explicit structural constraints, extending its utility to the next generation of complex computing systems. ________________________________________ 2. Overview of Rent's Rule and Current Drawbacks 2.1. Applications and Interpretation
Rent's Rule describes a statistical self-similarity in digital systems. The Rent exponent (p) provides insight into a design'stopological complexity: • p≈0.4: Highly regular structures. • p≈0.5: Structured designs with high locality (e.g., SRAM). • p≈0.75: "Random logic" or complex, unstructured designs.
The power-law form suffers from two primary drawbacks 6,8: 1. Terminal Constraint Deviation (Region II) 7: The power law breaks down as partitions approach the total system size (>25% of the chip). Physical I/O pins are finite; thus, the log-log plot flattens as g approaches N. 2. Undefined Constants: There is an absence of methodology relating design metrics to the empirical constants K and p.
________________________________________ 3. The New Rule: Generalization for Autonomic Systems
We utilized a graph-mathematical model to generalize Rent’s Rule, specifically addressing its limitations when applied to autonomic systems. We demonstrated that the classical power-law form of Rent’s Rule is valid only under the restrictive conditions where the system contains a large number of blocks, and the number g of internal components in a block is much smaller than the total number of components (N) in the entire system 9.
The generalized formulation, referred to as the New Graph-based Rule, extends the applicability of the scaling law across the entire range of partition sizes, including the problematic Rent's Region II. The New Rule is expressed as 9,10,11:
Where: • T is the number of external terminals for the block partition. • N is the total number of components in the system. • g is the number of components in the block partition. • t represents the averagenumber of pins of a component in the system. • Pg is the generalized Rent exponent, derived by the described graph-partitioning method.
The rule was derived by modeling the system asa graph, where each component is represented asavertex, and each net is represented asa tree connecting its components.
Figure 1. "All Net Components Are in the Block" illustrates the case when a net connects three components (A, B, and C) and is represented asa net tree. In this example, all net components are in the same block; thus, there is no need for a block external terminal—none of the net edges exit the block.
Figure 2. "An external terminal" illustrates the same case, but only components A and B are in the same block, while component C is located in another block. In this scenario, an edge exits the block to connect to component C, necessitating a block external terminal for the net under consideration.
Initially, we assumed that each block has randomly assigned components. Under this assumption, the probability Q′ that a given pin of a given component has an edge to another component outside of the block is:
If the net has only two components to connect (the net tree is a single edge), the above formula is straightforward. In this case, the edge goes outside the block, creating one block terminal. If the net has m>2 pins to connect, we still have only one outside terminal—all components of the net within the block are connected by an internal net-tree, requiring only one tree edge to exit the block.
Because the component under consideration has t pins on average, the probability Q that the component will have t edges (block terminals) to components in other blocks is:
The drawback of formula [2] is the assumption of random component assignment. In reality, blocks are not designed randomly; highly connected components are partitioned into the same block to minimize communication overhead. Therefore, formula [2] produces conservative results. To account for the effect of optimized partitioning that minimizes terminals, we introduce a correction constant Pg<1 (analogous to the Rent exponent), which reduces the estimated number of terminals:
• Case 1 (g=1): Simplifies to T=t, matching classical expectations. • Case 2 (g=N/2): Yields the maximum terminal count, reflecting the peak communication requirement when a system is halved. • Case 3 (g=N): T=0. This accurately models Region II, asaclosed system has no external signals.
Above, we utilized a graph-mathematical model to generalize Rent’s Rule. We will show that if we use ahypergraphmodel of the system, we can further improve the accuracy of the generalized Rent’s Rule by taking into account an additional and known design property: the averagenumber of components, m, that a net connects.
Let’s represent a net that connects m pins asa hyperedge, instead of a tree as used in the previous graph-based model. Note that m is a known design property and is the average value that can be obtained for any real design.
Figure 3. "All three components and the hyperedge are within the Block" illustrates the case when a net connects three components (A, B, and C) and is represented asa hyperedge (an oval encompassing all components). In this example, all net components are in the same block, and there is no need for a block external terminal—the hyperedge does not cross the block boundary.
Again, let’s initially assume that each block has randomly assigned components. Then, the probability V′′ that a given pin of a given component within the block is connected to another component within that same block is:
The probability V′ that the remaining m−1vertices (components) within the hyperedge are all located in the block (resulting in no block terminal for this net) is:
Because the component under consideration has t pins on average, the probability Q that the component will have t hyperedges (block terminals) connecting to components in other blocks is:
The above formula reflects the physical reality that the more components of a net are located within the block, the lower the probability that the net will exit the block. If all m components of a net are in the block, the net requires no block terminal. With g components in the block, the number of expected block terminals is:
Again, the drawback of formula [3] is the assumption of random component assignment. In reality, highly connected components are partitioned together to minimize external terminals. Thus, formula [3] produces conservative results. To account for optimized partitioning, we introduce a correction constant Ph<1 (similar to Pg) to reduce the estimated number of terminals:
The following final points support the justification of the new rules: • Experimental Alignment: They provide a superior match to experimental data across all regions. • Convergence: Terminal counts are close to Rent’s predictions when g is small. • Structural Commonality: There is a fundamental commonality in the rule structures; they can be effectively approximated by Rent’s Rule for very small g.
The proposed New Rules resolve long-standing issues in VLSI modeling by explicitly incorporating N (system size), t (average pins), and m (net fan-out). By naturally constraining terminal counts at g=N, these rules provide a mathematically sound bridge across both Region I and Region II of Rent'scurve. ________________________________________ References
1. Rent, E.F. (1960): Original discovery (often an internal IBMmemorandum).
2. Landman, L.A. and Russo, R.L. (1971): "On Pin Versus Block Relationship for Partitions of LogicGraphs," IEEE Transactions on Computers, vol. C-20, no. 12, pp. 1469-1479.
4. Heller, W.R., Hsi, C. and Mikhail, W.F. (1978): "Chip-Level Physical Design: An Overview," IEEE Transactions on Electron Devices, vol. 25, no. 2, pp. 163-176.
6. Sutherland, I.E. and Oosterhout, W.J. (2001): "The Futures of Design: Interconnections," ACM/IEEE Design AutomationConference (DAC), pp. 15-20.
7. Davis, J. A. and Meindl, J. D. (2000): "A Hierarchical Interconnect Model for Deep Submicron Integrated Circuits," IEEE Transactions on Electron Devices, vol. 47, no. 11, pp. 2068-2073.
8. Stroobandt, D. A. and Van Campenhout, J. (2000): "The Geometry of VLSI Interconnect," Proceedings of the IEEE, vol. 88, no. 4, pp. 535-546.
9. TETELBAUM, A. (1995). "Generalizations of Rent's Rule", in Proc. of 27th IEEE Southeastern Symposium on System Theory, Starkville, Mississippi, USA, March 1995, pp. 011-016.
10. TETELBAUM, A. (1995). "Estimations of Layout Parameters of Hierarchical Systems", in Proc. of 27th IEEE Southeastern Symposium on System Theory, Starkville, Mississippi, USA, March 1995, pp. 123-128.
11. TETELBAUM, A. (1995). "Estimation of the Graph Partitioning for a Hierarchical System", in Proc. of the Seventh SIAM Conference on Parallel Processing for Scientific Computing, San Francisco, California, USA, February 1995, pp. 500-502. ________________________________________
Welcome to the OurBigBook Project! Our goal is to create the perfect publishing platform for STEM subjects, and get university-level students to write the best free STEM tutorials ever.
Everyone is welcome to create an account and play with the site: ourbigbook.com/go/register. We belive that students themselves can write amazing tutorials, but teachers are welcome too. You can write about anything you want, it doesn't have to be STEM or even educational. Silly test content is very welcome and you won't be penalized in any way. Just keep it legal!
a Q&A website like Stack Overflow, where multiple people can give their views on a given topic, and the best ones are sorted by upvote. Except you don't need to wait for someone to ask first, and any topic goes, no matter how narrow or broad
This feature makes it possible for readers to find better explanations of any topic created by other writers. And it allows writers to create an explanation in a place that readers might actually find it.
This way you can be sure that even if OurBigBook.com were to go down one day (which we have no plans to do as it is quite cheap to host!), your content will still be perfectly readable asa static site.