Compile times normal or my fault?

2024-08-23 Thread ITwrx
thanks! I had tried a config file previously, but i was doing it wrong. I misread the compiler guide and had it as `muh_app/config/nim.cfg` and it was just silently ignored. now i have `muh_app/muh_app.nim.cfg`, which is used by the compiler. .exe="gcc-13" --warnings: "off"

Compile times normal or my fault?

2024-08-22 Thread ITwrx
Fedora 40 has gcc13 available in the repos and i installed it, but i'm not seeing how to specify a specific binary name with compiler options in the command. I want to try gcc13 out and see if the slowness is due to my code or the compiler version.

Glaucus Linux

2024-08-22 Thread ITwrx
Glad you found this post. Feel free to take it over and bump it with new release announcements. I hope you stay safe where you are at, and good luck with glaucus. I will be watching it's dev, and hopefully able to contribute some day.

Compile times normal or my fault?

2024-08-16 Thread ITwrx
lol. It sounds like you will beat me to release then. :)

Web-application: Where to start?

2024-08-13 Thread ITwrx
i also implemented stripe checkout for that i intend to "throw over the wall" in case it's useful, assuming i ever find time for that.

Web-application: Where to start?

2024-08-12 Thread ITwrx
I asked why you needed authentication at all, so i could see if there were some other features that would depend on it which might change what nim libs you might choose. Oh well. I'm using Guildenstern and sqliteral with sqlite. Mummy is also a fine option if you don't need streaming multipart

Is this a good idea?

2024-08-12 Thread ITwrx
It would be nice if people write better forum post titles, so others can find topics in the future with a search. Titles like "help", "look at this", or "is this a good idea" make for poor searchability. Usually the OP explains what they meant in the beginning of the actual post anyways. In this

Compile times normal or my fault?

2024-08-12 Thread ITwrx
It looks like clang and gcc are only using one thread at a time while compiling. Is there a way to make the compilation process use all 12 of my threads at like 80% or something? or 10 threads at 100%? I thought i needed to just get a more powerful processor, but it seems like it's barely using

Webview style UI with Tauri

2024-08-01 Thread ITwrx
It might be interesting to look at fasthtml: Perhaps they used htmx in a smart way. When i used htmx in the past i was not happy with how it worked out once the front end got "too" dynamic. It's very possible i was not using it in the best way. It might have been back when

Compile times normal or my fault?

2024-07-27 Thread ITwrx
A web site builder/CMS type application using Guildenstern and sqliteral. I'm still in fairly early stages, as i'm building the smaller features, and the "framework" level features necessary, so i can test out some of the higher level ideas for the application, to see what ends up working out. A

Compile times normal or my fault?

2024-07-24 Thread ITwrx
`--cc:clang` builds the binary in about 1 minute, so i'll just use that for dev for now(/ever?).

Compile times normal or my fault?

2024-07-24 Thread ITwrx
thanks @araq. That's what i suspect too, since i think this started once i upgraded to fedora 40, possibly 39. what does `-c` do? when i run `nim --help` there is no `-c` option. Running without `-r`, but without `-c` does not necessarily help, but `-c` seems to work everytime, so far.

Compile times normal or my fault?

2024-07-24 Thread ITwrx
Nim Compiler Version 2.0.8 [Linux: amd64]

Compile times normal or my fault?

2024-07-24 Thread ITwrx
should have checked compiler guide. `-c, --compileOnly:on|off compile Nim files only; do not assemble or link`

Compile times normal or my fault?

2024-07-24 Thread ITwrx
Thanks! That reports `89199 lines; 29.691s; 733.02MiB peakmem`. Also, after i compile it without -r, when i compile it again with a tiny change with either -r or -c, it is done in a little over 30 seconds like it does with -c (and how it used to be). So, if i just use -r all the time it starts

Compile times normal or my fault?

2024-07-24 Thread ITwrx
Hi, Somewhat recently, my compile times have ballooned, and i'm not sure if it's something i'm doing, something unique to my compiler/environment, or it's normal right now for Nim. My current app used to compile in what seemed to be a few seconds (was barely noticeable and i used to wonder wha

Introducing an async library inspired by Go in Nim

2024-06-18 Thread ITwrx
If Go's implementation was the primary inspiration for this package, than to me, it's fun/nice to give them a nod. It's also a nice, shiny hook for people with Go experience to try Nim. Beyond that, I don't consider the history of the underlying feature all that important, but I don't have a dog

Introducing an async library inspired by Go in Nim

2024-06-18 Thread ITwrx
i changed who i replied to, but it used the original person anyways...

Introducing an async library inspired by Go in Nim

2024-06-17 Thread ITwrx
Cool project, but i don't love the name. It's not specific enough and IMHO, "NimGo" would be for something that implements, or interfaces/converts to/from, the whole Go lang in some way, not for a project that implements some specific Go feature, or feature set, in Nim. I think it would be best

Nim Killer Fullstack App

2024-05-29 Thread ITwrx
I guess i should clarify what i mean by `i agree...`. I think Nim still needs the right kind of web framework, alluded to by the OP. Whether it is adopted by the masses is not as important to me as it is that Nim users or potential users have the framework they need. Certain needs are already me

Nim Killer Fullstack App

2024-05-28 Thread ITwrx
I agree with your overall point and I posted something similar in this forum a while back. I too am using multi-threaded web servers with nim after trying many of the older async frameworks and servers. Mummy is pretty nice, but considers streaming large file uploads out-of-scope. It has multipa

Encountering errors while compiling the nimforum project.

2024-05-28 Thread ITwrx
It looks like it expects to be run on linux.

Nim on the go: Smartphone, termux and ... "no" docs.

2024-05-18 Thread ITwrx
IDK where, if anywhere, choosenim installs docs locally, so i downloaded some of the docs pages with commands like `wget -r -np -l 1 -p -k https://nim-lang.org/docs/lib.html`, which works, but for some reason the browser doesn't load the css file...

remove first 4 lines from string

2024-05-14 Thread ITwrx
Thanks a lot to both of you! I figured my `\n` was probably the reason for the non-matching condition, but was not sure what `\n` was supposed to be. I had searched before, but didn't find the info i needed. Spurred by your confirmations, i searched again, and my code now matches the input. It

remove first 4 lines from string

2024-05-13 Thread ITwrx
I'm trying to use strutils.removePrefix to remove the first 4 lines from a string, but i'm having trouble matching the first four lines. I'm guessing it has something to do with the newlines. How am i supposed to make this match? thanks. #my code varChunk = chunk prefix = "\n"

Glaucus Linux

2024-04-03 Thread ITwrx
new release:

Glaucus Linux

2024-03-27 Thread ITwrx
I tend to agree about some of that naming. He explains what he was trying to do in the vid, but i would probably disagree with where he drew the line on some of that. :)

Glaucus Linux

2024-03-26 Thread ITwrx
This is not my project, but i wanted to showcase it anyways, because i think it's pretty cool. :) I'll let it, and it's dev, speak for themselves. the Nim-specific part of the video is aprox: 30:47-44:55

Gedit syntax highlighting.

2024-03-26 Thread ITwrx
This is working for me too and kate is using 166MB and nimsuggest is using 153MB. Much more reasonable than 1GB+ of vscodium. Thanks for the tip.

Gedit syntax highlighting.

2024-03-26 Thread ITwrx
Thanks. I guess i could have specified that i'm only interested in FOSS editors.

Gedit syntax highlighting.

2024-03-26 Thread ITwrx
Do you have a working config for nimlangserver with kate? It evidently has built in support for nimlsp, but i just uninstalled that to possibly standardize on nimlangserver and enabled the lsp client for kate and it complains about nimlsp and it seems to ignore my (quite possibly wrong) User Se

Gedit syntax highlighting.

2024-03-26 Thread ITwrx
Thanks, I have Kate installed, and tried it prior to searching for Code. The GUI and it's defaults get on my nerves, but it's good to know about the LSP, assuming it will run without crashing. I probably need to see that i'm doing the latest incantation to give it the best shot at working. I've

Gedit syntax highlighting.

2024-03-25 Thread ITwrx
I just now upgraded to F39 and i notice that vscodium says it's _going to_ provide suggestions from Github's(Microsoft's) Copilot! So, i started looking again for a nim GUI editor i can live with, and i came across Elementary OS' Code[1]. Copying the two linked files above to /usr/share/gtksour

how to parse a multipart/form-data POST body string?

2024-03-23 Thread ITwrx
oh, I had already linked and read/scanned that multipart spec. Maybe i'll read it again... It didn't do much for me the first time.

how to parse a multipart/form-data POST body string?

2024-03-22 Thread ITwrx
I'm glad to hear you are dogfooding Guildenstern and Nim. I'm now fairly invested in Guildenstern as well, as i just spent the last few months porting the beginnings of my current project to Guildenstern and working on it from there. I think i prefer your philosophy for Guildenstern, even if it

how to parse a multipart/form-data POST body string?

2024-03-22 Thread ITwrx
Go has one in the std lib: Python has one that is not server/framework specific: ^ `Temporary files on disk for big uploads.` PHP has a generic one as well:

how to parse a multipart/form-data POST body string?

2024-03-20 Thread ITwrx
I opened this[1] to see what the Guildenstern dev thinks about the situation in relation to Guildenstern. 1.

how to parse a multipart/form-data POST body string?

2024-03-20 Thread ITwrx
thanks @enthusiast. in an ideal world, shouldn't the std lib[1] have a parser for this mime doc type? It looks like rust has it[2]. I think i saw one for julia too. Or there's some reason it should be implemented by each http server project, or at the web framework level above the http server?

how to parse a multipart/form-data POST body string?

2024-03-19 Thread ITwrx
Hello Nimians! I'm well into making a CMS/site builder using Guildenstern, but i'm just now getting around to needing forms that upload files. I'm trying to use Guildenstern's streamingserver[1] and the receiveInChunks() iterator in an example program just to try and get it working. The Guilden

Nim Compiling to js

2024-03-03 Thread ITwrx
I like to precompress with "gzip -9 -k asset.js" and set "gzip_static on;" in the nginx config, instead of enabling on-the-fly gzip, for security and performance reasons.

Would Nim modules or available Nim web frameworks suffice for an e-commerce back-end?

2024-03-03 Thread ITwrx
Thanks. Yes, if the difference is something on the order of 22kb vs 70kb then i totally agree. I was wondering it was more like 10x and/or didn't scale well with size of the app. I'll just have to try it out some time.

Would Nim modules or available Nim web frameworks suffice for an e-commerce back-end?

2024-03-03 Thread ITwrx
well, after sleeping i feel i was too quick to say that. That site is very small. I would just have to play with it and see how plump it got with a real application to see if it was light enough for my tastes. It might be that it's more suited for SAAS-type apps and not for websites, but this is

Would Nim modules or available Nim web frameworks suffice for an e-commerce back-end?

2024-03-02 Thread ITwrx
That's more than fine to me. Previously, I thought it was more like 700k after optimizations. It would be cool if karax or any nim to js implementation were on here:

Would Nim modules or available Nim web frameworks suffice for an e-commerce back-end?

2024-03-02 Thread ITwrx
does it compress further with "gzip -9 -k app.js"? I guess it just depends on your use case and target audience. JS frameworks like to brag about their small sizes for mobile, limited bandwidth users, initial load time, or whatever the issues are, though i see some have removed those sizes from

Would Nim modules or available Nim web frameworks suffice for an e-commerce back-end?

2024-03-02 Thread ITwrx
> Nope, it's fine. I don't know about performance, but this issue with bundle size has been brought up before, and I'm curious what your position on this criticism/point actually is. Is it because the browser will cache the js, so you don't see the size as a practical issue for a web applicati

Would Nim modules or available Nim web frameworks suffice for an e-commerce back-end?

2024-03-02 Thread ITwrx
> I have been running Jester+Httpbeast in production for a long time with heavy > load, no problems at all, and no need for restarting the services, and no > memory climbing. Just curious: do those apps have (large) user file uploads?

Would Nim modules or available Nim web frameworks suffice for an e-commerce back-end?

2024-03-02 Thread ITwrx
IME, async in Nim is to be avoided with any real web application like ecomm if you want to just use an existing framework and not have to write your own from an http server or implement/change certain parts. Maybe HappyX works, i haven't tried that one. When first starting to learn Nim, i built

FrameOS

2024-01-10 Thread ITwrx
Way to be somebody! :) I repeated your recent blog post on the fediverse via my account on my activitypub/pleroma instance at blurts.net. Feel free to create an account there if you're not already on the fediverse. Same goes for all Nimians.

Please who can help me with nim filter

2023-12-27 Thread ITwrx
It's considered a good practice to post the solution, even if you figure it out on your own, so that people finding this post later, can see how you solved it.

The secret of Nim

2023-12-27 Thread ITwrx
Yeah, that's what i sent in too. I don't understand how the winning answer is a "crown" that doesn't even match the logo and requires flipping the image upside down, while there is already an actual crown in the image that almost perfectly matches the logo. I was prepared to not be chosen in the

Nim Tooling Roadmap

2023-12-13 Thread ITwrx
I'm glad tooling is being worked on in whatever capacity the contributors see fit. It's their time/money after all. I probably should have refrained from disrupting this post with my otherwise healthy and natural reaction to Microsoft and their buggy, slow, and bloated Trapware.

Nim Tooling Roadmap

2023-12-13 Thread ITwrx
I begrudgingly use vscodium and the _official nim extension_ doesn't show up for me. I would prefer an up-to-date, fairly basic gtk editor written in nim and will eventually try to write one if nobody else beats me to it. Being expected to get official nim tooling from the **Microsoft Store** is

Package-Rot as growth hindrance

2023-12-13 Thread ITwrx
\-- Size of the package is not necessarily relevant to whether something needs updating or not. -- stuff like proprietarySaasFeature (aka GH stars) should definitely be excludable by users. -- whether the package has releases/versions at all is good to know. `--whether those versions are 1.0+ i

Memory leakage caused by the use of asyncftpclient's rter process

2023-11-15 Thread ITwrx
I don't remember the details, but maybe it's using ram for each file like asynchttpserver (and frameworks that use it) were for me when uploading files from a posted form, though i suspect it was returning the ram at some point once the files were transferred, and was not a true mem leak, but on

related_post_gen benchmark

2023-11-10 Thread ITwrx
Yes, thanks for all the responses. Consider all your posts "hearted"! :)

no simple way to import files from dir recusively?

2023-10-27 Thread ITwrx
`Importing the whole directories of code is usually a rare case` This is true and most project files don't have huge import blocks. I didn't really notice that i only have one file that has so many imports, so it's possible i could refactor, though i doubt that will make those imports go away,

no simple way to import files from dir recusively?

2023-10-27 Thread ITwrx
I just think it would be easier for both initial dev and refactoring and maintenance if the compiler just read my files and pulled in any types or procs i use anywhere. Everything is already named differently in my project, as far as i can see anyways. :) This also might sweep away the issue wit

no simple way to import files from dir recusively?

2023-10-27 Thread ITwrx
yeah, i usually like implicit over explicit, and/or convention over configuration whenever possible.

no simple way to import files from dir recusively?

2023-10-27 Thread ITwrx
I do use relative imports like that already, and you can easily see which are local or remote. I was not using the last line from your example because i never tried that for local imports. That may help clean up my local imports some. Thanks

no simple way to import files from dir recusively?

2023-10-27 Thread ITwrx
Understandable, but i'm just noticing a pain point that others might not run into as often, depending on what they are working on, and thinking why can't this be easier in a modern, well-designed lang like nim. :) I noticed it early on, and thought "it's not the end of the world", but recently i

no simple way to import files from dir recusively?

2023-10-26 Thread ITwrx
I forgot, but i was also wondering why we have to import our own project's files at all to begin with. Why not have the concept of `local imports` and `remote imports`, where for `local imports`, the compiler checks my `.nim` and `.nimf` files and imports anything i'm using, and where `remote im

no simple way to import files from dir recusively?

2023-10-26 Thread ITwrx
fair enough. thanks

no simple way to import files from dir recusively?

2023-10-26 Thread ITwrx
`And an "import whole directory" feature is not common in other languages either anyway, it's not a particularly special limitation.` It would just be a nice to have improvement for nim. Also, antiquated languages and their lack of care about DX, is one reason why i chose to invest in Nim. I do

no simple way to import files from dir recusively?

2023-10-26 Thread ITwrx
That's why i mentioned the difference between different application types. "Use fewer files" is much more reasonable with cli, server, and libraries, i'm guessing. It's not ideal with programs with lots of UI. I want to be able to know where certain code lives in a year or two without much memor

no simple way to import files from dir recusively?

2023-10-24 Thread ITwrx
I haven't learned about macros yet, but that's not too bad. thanks. I was wondering if nim's import had a built in way to do it that i just hadn't seen yet. Importing every file manually is not that bad for many projects, but writing a web app (cms in my case) is a little different. I've got par

no simple way to import files from dir recusively?

2023-10-20 Thread ITwrx
Is there no simple way to import all files from a directory recursively? e.g. `import "../templates/*.nimf"` It gets on my nerves to specify each path, and to look at the growing result. I saw this[1] already, but it's very old and the proposed solutions are not what i mean by simple. 1.

Why is building the community and ecosystem such a struggle?

2023-10-11 Thread ITwrx
My biggest problem with the forum is the lack of notifications. New users post a question, someone answers, and the new user never gets notified that anyone ever responded. That's pretty embarrassing and inexcusable for a forum. No notifications on user_mention, replies to a post/comment, nor a

related_post_gen benchmark

2023-10-03 Thread ITwrx
nim implementation: I'm wondering why nim did not end up in the top five, or under ~100ms. std/json too slow? something else?

The secret of Nim

2023-10-01 Thread ITwrx
The woman is also reptilian or amphibian (see the chin+mouth+snout combo) in-keeping with the egyptian theme. :)

EZ Bkup: The easiest backup program on earth!

2023-09-03 Thread ITwrx
I saw your linux-related packages before. Pretty cool! I hope to have an excuse to use them one day. :) I don't know what to think about Nimdow targeting X11 instead of Wayland. Above my pay grade, but i think X is dead, despite OpenBSD and others(?) still using it.

EZ Bkup: The easiest backup program on earth!

2023-09-03 Thread ITwrx
The GUI itself and styling was the easiest part for me. I didn't have to do much. I'm mostly just relying on the adwaita-dark theme. I only tested on fedora and ubuntu, IIRC, which both come with gnome packages. I will test other DE's eventually. I'm coming from web dev too, and i'm still learn

EZ Bkup: The easiest backup program on earth!

2023-08-27 Thread ITwrx
Great, you're welcome. I started reading the docs to flatpak, but I found them lacking, and have mixed feelings about flatpak, in general. I may revisit that later, once paid apps are a thing, but we'll see. Making my own installer was easier (and funner) than packaging using anything else, it

EZ Bkup: The easiest backup program on earth!

2023-08-27 Thread ITwrx
Thanks! hmmm, the website should probably say gtk4 is required too... In the source code, i'm just importing owlkettle and other nim deps, and calling rsync and pkexec via execCmdEx(). The Supporter Release has pre-compiled binaries for x86_64 glibc-based distros, along with desktop integration

EZ Bkup: The easiest backup program on earth!

2023-08-26 Thread ITwrx
### [EZ Bkup](https://ezbkup.app): The easiest backup program on earth! EZ Bkup is a data backup program for the desktop, striving to be as quick and easy to use, as possible. EZ Bkup is a graphical frontend for Rsync, built with [Owlkettle](https://github.com/can-lehmann/owlkettle) and GTK, wr

GuildenStern web server 6.0.0 is here

2023-08-25 Thread ITwrx
1. great! Sounds good. 3. Just to be clear: i'm not expecting anyone to code anything. Just trying to find out what Guildenstern can do in relation to my use case. Thanks for all the info.

GuildenStern web server 6.0.0 is here

2023-08-24 Thread ITwrx
Thanks for the detailed response. 1. It looks like replyStart-replyMore-replyFinish -combo uses the http server as opposed to the streaming server, so i'm guessing it would use a bunch of ram for a larger video file for instance? 2. i don't fully understand this one. Downloads would not be h

GuildenStern web server 6.0.0 is here

2023-08-23 Thread ITwrx
i see you have a streaming server example. does this mean a large file upload will get saved to disk without using ram equivalent to file size? If so, can i serve large files with the same benefit?

How to update a nimble package?

2023-08-21 Thread ITwrx
from what i've seen, you have to remove, and then install again...

GUI app with nim

2023-06-26 Thread ITwrx
idk what your specific requirements are but i haven't seen these mentioned yet.

Why does os.walkDir and consequently os.walkDirRec not use filesystem order?

2023-05-26 Thread ITwrx
> It depends on the filesystem. whoops! ext4 > I would expect to see the same order you would see if you ran ls -U at the > console. I didn't remember/realize ls and gui were sorting for me. lol. > I would recommend sorting it if you plan on then displaying it to the user as > a list. I'm tr

Why does os.walkDir and consequently os.walkDirRec not use filesystem order?

2023-05-26 Thread ITwrx
My dev env is fedora. walkDirRec walks dirs in seemingly random order. I assumed it would traverse dirs and files in the order that the OS filesystem uses. Why does it not do that? Where is this randomness/order coming from? thanks

why does Nim source code filter add a newline at the end of the last line?

2023-05-20 Thread ITwrx
Ok, after your last post, i looked back at the docs page, and it's much more obvious than it was to me this morn... Sorry for the trouble. Thanks

why does Nim source code filter add a newline at the end of the last line?

2023-05-20 Thread ITwrx
I probably should have put "having to" in quotes, as it was meant as a casual reporting of what i was doing, as opposed to a big, serious complaint, but i'd rather not look at, or add boilerplate to remove, unnecessary newlines or whitespace i didn't purposely add in html i am generating myself.

Error: expression has no type (or is ambiguous)

2023-05-20 Thread ITwrx
Thank a lot! Yes, it is from strutils. The following code works. var returnString = genImageLink(link, title, imageFilename, altText) let strippedString = returnString.dup(strutils.stripLineEnd) return strippedString Run

why does Nim source code filter add a newline at the end of the last line?

2023-05-20 Thread ITwrx
from: Example: The filter transforms this into: "\n") Run why should that last newline be added automatically? Now, i'm having to ([try](https://forum.nim-lang.org/t/5371)) and strip it (when returning html other t

Error: expression has no type (or is ambiguous)

2023-05-20 Thread ITwrx
my proc has a return type specified, yet i still get the same error. Error: expression 'stripLineEnd(returnString)' has no type (or is ambiguous) Run #calling code. var returnString = genImageLink(link, title, imageFilename, altText) let strippedString

Clearer copyright license for Nim logos and assets

2023-05-19 Thread ITwrx
i like CC-by-SA:

Design discussion for KommandKit - async, multithreaded, ORC-ready web framework

2023-04-28 Thread ITwrx
@termer I like the sound of the goals for your framework. IDK if it's on purpose or not, but your gitea instance has issues enabled, but registration disabled.

Writing a wrapper for ML libraries how-to

2023-04-28 Thread ITwrx
@StrDev IDK exactly how relevant this is, as i'm fairly ignorant of this field, but in case it's useful:

Official Fediverse (e.g. Mastodon) account?

2023-01-08 Thread ITwrx
i don't actively use twitter, under any regime so far, but do use the fediverse and host blurts.net which is a pleroma instance. I think an official nim fediverse account would be in nim's interest, especially over time, even if it's just to repeat tweets right now. I don't think it makes sense

How to make Nim more popular

2021-06-06 Thread ITwrx
thanks, that's pretty cool and i hadn't seen it, but i mean each library should have it's own little wiki/knowledgebase like many other (library) foss projects do (or are starting to do). Github (i wish foss code would use a freedom and privacy-respecting repo web gui so users don't have to be d

How to make Nim more popular

2021-06-05 Thread ITwrx
@ingo that is too funny. i came here to post something very similar. i wanted to say that the nim ecosystem should seriously consider adopting a voluntary (but advocated and preferably assisted/cooperative.) documentation standard and effort. The docs for many of these libraries are not what som

Karax steps forward

2021-05-29 Thread ITwrx
I haven't used a lot of js (just sprinkled here and there) and i've never used a full fledged js framework in production, but from my somewhat exhaustive (albeit high level) investigations over the years, what i _think_ i want, is sapper/sveltekit (SSR) but in all nim, where the backend, routing

ANN: NimDBX, a super-fast persistent key-value store

2020-11-18 Thread ITwrx
For some reason this forum didn't notify me of your reply. That's great! I hope you'll consider documenting install and usage with us poor souls coming from high level languages, frameworks and ORMs in mind. :) I, for one, like the Arch wiki style: short code examples that show all the necessar

ANN: NimDBX, a super-fast persistent key-value store

2020-11-15 Thread ITwrx
This is great. I was trying to use nim-lmdb, but couldn't figure out how to use the cursor. I'm looking forward to using this to remove the db query caching code and db server dependency required with my current web stack, as well as having the performance improvement. These types of "building b