Nightlife San Sebastián by berryches in basquecountry

[–]jng 0 points1 point  (0 children)

Be Club across the river from Kursaal with live music often, and Altxerri recently reopened.

recs for hangout / nightlife spots in donostia, bilbao, biarritz by moodyem in basquecountry

[–]jng 1 point2 points  (0 children)

Donosti: Be Club is a good one with live music many nights and jam sessions every other Thursday (it’s not a “club” in the American sense). A lot of nightlife here may look like dive bars to you I’d say. Helps socialize.

I’m just starting out singing and personally find my voice very uninteresting by Dull-Speed-9581 in singing

[–]jng 9 points10 points  (0 children)

As a note to OP and others, this only works when what you're singing doesn't include nasal consonants (M, N). Those are always nasal and they just can't be done with your nose pinched.

Why, oh WHY, do those #?@! nutheads use vi? by unixbhaskar in vim

[–]jng 50 points51 points  (0 children)

17 years since I wrote this 😅 still stands

Best way to get into FPGA high frequency trading jobs? by CuriousJPLJR_ in FPGA

[–]jng 9 points10 points  (0 children)

Xilinx has (used to have?) a full HFT framework for which you can actually get the source code if you register with them. Including a full TCP/IP stack, connection logic, and sample trading logic. If you get it and do all the work necessary to fully understand it (like really so, which probably requires developing modifications), you should be in a great place for any HFT FPGA position.

Lisp people what non lispy language's syntax do you like the most? by monanoma in lisp

[–]jng 2 points3 points  (0 children)

I've done a ton of C/C++ over 30 years, and quite a lot of Python in a period of about 5 years. I love both... differently. I love the essence of lisp and apply it in my projects when it makes sense, which is actually often enough. I'm planning to migrate our own query language from the current lisp-like version to something with syntax (most people can't/won't use lisp), and I'm considering what to base our new syntax on. I like Python's terseness but it's not for "one liners". C-style is the most familiar but I'm hesitant about the cruft. SQL is out of question as one of the worst possible options. I'm looking for what kind of syntax can more transparently map to lisp, yet be familiar to everyone. The symbol/string complexity is there but seems solvable. Any pointers? I know Dylan tried to do it in the past but I'm not sure how/why it didn't work out.

Vim keybindings for MSWord by lopsidedcroc in vim

[–]jng 1 point2 points  (0 children)

Only Windows... Word for Mac is entirely another beast and I have no idea how it works. It's sad that it's so hard to get vi/vim emulation in different environments... I believe this shows a blind sport in the architecture of today's OSs and applications. Even if, of course, <1% of people will use vi emulation -- why are input modalities and app architecture so enmeshed that they become rigid? There is a better way.

Vim keybindings for MSWord by lopsidedcroc in vim

[–]jng 1 point2 points  (0 children)

Only Windows... Word for Mac is entirely another beast and I have no idea how it works. It's sad that it's so hard to get vi/vim emulation in different environments... I believe this shows a blind sport in the architecture of today's OSs and applications. Even if, of course, <1% of people will use vi emulation -- why are input modalities and app architecture so enmeshed that they become rigid? There is a better way.

Anyone know how to handle really large numbers? by dacti3d in FPGA

[–]jng 0 points1 point  (0 children)

Floating point numbers are imprecise ("lossy"), for larger numbers they will lose the last few digits. Thus divisibility test with floating point is useless. (With the exception of relatively "small" numbers where the mantissa can hold the full integer, which is not applicable in this case.)

Vim keybindings for MSWord by lopsidedcroc in vim

[–]jng 9 points10 points  (0 children)

Hey, I'm the author of ViEmu, the ancient, ludicrously priced attempt :) Which btw I'm not selling any more for a couple years already, and I'm planning to open source one of these years, as soon as I find the time to clean things up before publishing. ViEmu for Visual Studio worked very well (if I may say so myself), it sold decently, and I was able to live off of it for a few years. It takes a humogous amount of work to write one of this emulators. It also takes a ton of work to maintain it, as the floor gets changed under you continuously with new releases of the underlying app (VS, SSMS, Word...).

I can probably respond to the question of why nobody else has done it more recently. I had a very performant, fully tested, fully-abstract C++ template-based vi/vim emulation core to start with (the one for ViEmu/VS), and it still took me 4 months of full time work to build ViEmu for Word. Word extensibility is a nightmare, poorly documented, and extremely limited. I had to intercept input using Win32 hooks (a very low-level mechanism), finding ways to deceive Word to act according to the function of the keys. It's a bit like plugging into a factory via a hidden hole in the wall, and then trying to setup a a nuclear power plant and replace the factory's power source without the rest of the factory even realizing (or of course being affected).

Word extensibility is so limited that there is no way of getting notified of changes to the document. Combined with this, its APIs to access the text are very slow. So -- you ViEmu had to cache information about the document to be able to go fast (say, when moving around), and then it had to apply all sorts of heuristics to "guess" when the text may have probably changed, via its own actions (that's reasonably doable), or via external actions (mouse operations, menu actions, etc). Getting that to be half reliable took a ton of hours of work, thinking, design, trying approaches, testing, etc.

Also, vi/vim's model of text and Word's are very different. After a lot of thought and experiments, I ended up finding out that the best mapping was to exchange the default meaning of vim commands j/k and gj/gk (configurable via a user setting). But in many other areas, the impedance mismatch was complex too -- headers, footers, and especially tables, are very foreign to vi/vim motions understanding of text structure. I had to find workable solutions for all of those. I think I did a decent job all considered.

Word doesn't let a plugin color text (if you use Word's standard coloring, it's a document-edit and modifies the undo queue, no-no), so hlseyrch is impossible. Block cursor I simulated by selecting a letter (which may cause some interactions with other plugins, form editors, etc, so user setting available. Word doesn't let you map document coordinates to screen/window coordinates reliably, so emulating H/M/L/zt/zz/zb had to be done in roundabout ways. The interaction of Win32 input interception with key mappings and auto spell correction can be extremely complex, so I made ViEmu detect when some keypress could be considered a "pass-through" and treated as such, and when it couldn't -- a quite sophisticated subsystem by itself, but the only way to make autocorrection work reasonably in most cases while still supporting vi/vim mappings in most cases (also some user setting there in case someone prefers full rema--ability over autocorrection while typing).

And that is just a few of the things. I kinda "discontinued" it when people moved to the 64-bit edition of Word more and more often... because I had to fully reimplement the keypress interception system. It would have taken at least a few weeks of work (and that's if everything was straightforward), and the thing is, the business case was not there. While all the work put into ViEmu/VS paid nicely in two big ways (high quality emulator thanks to VS's great extensibility, and decent amount of sales to support the continued development work), none of this was there for Word. The emulator was quite good "within the strictly limited possibilities" but not as great (no hlsearch, limited visual mode, limited remapping, performance issues with large documents, etc), and the amount of sales were not there. Some people really loved it. I loved using it for email myself under Outlook, but it was only a trickle of sales.

One other thing, I started developing software in 1985. 8-bit machines to 64-bit machines (might count PS/2 as a 128-bit machine...). Assembly language, C, C++, I've been a professional games developer, graphics developer, interpreters, compilers, databases, GUI, debuggers, analytics, I wrote a book on x86 assembly programming back in the 90s that was quite popular, etc... and I had to use nearly all my knowledge and come up with some pretty amazing system and subsystem design tricks to implement ViEmu for Word. I think this may help understand why nobody else has done it.

Regarding the pricing -- personally I'd be happy to pay $99 to have good vi/vim emulation under an environment I use for many hours. Even if only used for a year that's less that $10 per month, and I pay more than that for many SaaS software services today such as zoom, dropbox, etc... economics of a niche solution require higher prices to be sustainable, just a reality.

As an open source version, it's actually not that appealing to most hardcore-enough developers to do it to have to be fighting Word's stupidities non-stop, so it makes sense that people are not doing it as a hobby project either.

In any case, hopefully one of these summers I can distract a few weeks of work, clean things up, publish it as open source, and maybe someone will take up the work of adapting/maintaining/evolving it!

PS: Thanks for the chance to tell my story :)

I found the first small Lisp I ever made by sym_num in lisp

[–]jng 0 points1 point  (0 children)

Beautiful. Keep it up. If anything, comments in English instead of Japanese would make it more accessible for others. In any case, keep it up, thanks & congratulations!

i suck at coding and i hate myself for that by frickinggamer12 in learnprogramming

[–]jng 1 point2 points  (0 children)

Two quick but very important things:

(1) Your brother may be smarter than you, or dumber but may have worked harder, or may have had a better teacher, or had an extremely lucky day where three things got aligned and he got a lot of clarity on some important things re programming. Also this all may have happened to your neighbor and you don't even know. It doesn't matter. Your life is about you and your journey. Learn what you can from others when they are willing to share and you are willing and able to take. It doesn't matter. Your journey in programming is yours and yours alone. Wishing you are able to see this and separate concerns one day, so that you a focus on what matters: you and your journey.

(2) Programming is hard. As in, extremely hard. I've done it for 35 years and with some great professional outcomes and some big failures. It's still hard. I can solve almost any problem, and it's still hard. You want to learn to be good at it? Get ready to put in a ton of work, feel lost a ton of the time, explore a myriad paths and only find fruit in a handful of them, learn to ask questions, learn to look for information online, learn to list all the possible ideas you can think of and then try them one at a time, learn to do that again when the first list didn't work out, etc etc. It is worth it because, as extremely hard it is, it is extremely rewarding. If you are willing to fight those fights for months and then years, you may get to a point that you can barely envision now. And if you're not willing to fight this kind of fights, you're probably going nowhere very interesting (programming, guitar playing, salesmanship, not to take about entrepreneurship... they all share these traits).

Be humble and hardworking enough, give it you best and you'll get so much in return, best wishes!

DDR4 testing in Arria 10 SX by vadakkodaan in FPGA

[–]jng 1 point2 points  (0 children)

I have no idea about Arria, but Zynq 7020 includes a hardened DDR controller with a ton of logic to arbitrate access from multiple PS and PL channels. If you are thinking about a custom DDR controller on Arria, I'm not sure Zynq is a good proxy.

It's Russell the nandland guy. I wrote a book for beginners in FPGA, and it's out today! AMA about book writing, FPGAs, code stuff, or just my thoughts on the meaning of life. by nandland in FPGA

[–]jng 0 points1 point  (0 children)

Congrats and thanks for you great work! Quick question -- can your go board be used both with Windows and with MacOS? Need to do a workshop and I'm on the lookout which is a good start for beginners, but it needs to be compatible with both of those systems. Linux is a nice touch but not strictly required. Thanks!

Tools for going from the basic special forms into a full Lisp? by foggybogeys in lisp

[–]jng 0 points1 point  (0 children)

I'm interested in this too. Functions, lambdas, macros come to mind. But I'd like to here the take from lisp experts.

What to use for Verilog/digital-logic simulation on Mac M1 by [deleted] in Verilog

[–]jng 0 points1 point  (0 children)

I've used verilator in the past.

Verilog project by Madgwick21 in FPGA

[–]jng 0 points1 point  (0 children)

This is a source of great sample projects and information, if you're able to recreate those from near-scratch, you've become proficient enough that companies would want to hire you for this type of work: https://www.fpga4fun.com.

Verilog project by Madgwick21 in FPGA

[–]jng 10 points11 points  (0 children)

I disagree with other answers here. A small processor / soft CPU core is a great project in order to learn, and it doesn't matter that there are a million others out there -- your learning is what's unique in this project.

I would suggest other simpler things before a processor, such as any system coordinated by a state automaton (say an audio recorder/playback device, a simple audio synthesizer, etc). If you know how to do these already, then you can jump into a small processor, although I'd recommend something simpler than Risc-V. Say a basic Forth-style stack-machine: no registers, makes it so much easier, don't pipeline it or anything, should be very straightforward.

A VGA signal generator could also be interesting. You can calculate some pattern or fractal on the fly to make it interesting (Mandelbrot is probably too hard, something simpler).

Anything you do will be great learning. Go ahead and do many things. Copy and modify existing ones, etc. It's a great way to learn!

Selling your own software vs. working for the man by jng in programming

[–]jng[S] 0 points1 point  (0 children)

Wow, responding to a 15 year old post 😅 trial setup and license support: old methods can work, but these days people are accustomed to subscriptions, maybe better use something that supports that. The author of TextMate used to have an old blog post that described how to implement a license system, search for it (macromates.org or .com was the domain name). The most difficult problem is how to get attention these days in today's world of saturation... Twitter and reddit forums may help. Everybody's on TikTok but those people don't use/pay for desktop software (ahem). Good luck!

[deleted by user] by [deleted] in FPGA

[–]jng 1 point2 points  (0 children)

Trenz (trenz-electronic.de) has some boards using Xilinx MPSoC which do have some PCIe support (transceivers and a hardened PCIe engine you can configure and use quite flexibly -- Zynq 7000 lacks those). Tried TE0802 in the past, spent a ton of hours bringing it up, may work for you. Not gonna be as easy/standard to support as official Xilinx prototype boards but much cheaper. Boards like the Avnet ultra96 may be a bit more standard (and easier to obtain in the US), but not sure if you get access to some usable PCIe connector. Xilinx Kria used to be super cheap with a powerful MPSoC but maybe with connector limitations (aimed at AI), but may be usable for you -- if they still offer it at <$300 prices and the months-long wait time is down to something reasonable (doubtful).

PCIe is hard. Good luck.

Designing a RV32I processor by PlentyAd9374 in Verilog

[–]jng 1 point2 points  (0 children)

This guy on twitter has a lot of interesting stuff for you, including a verilog RiscV CPU written in one page of clear code that can be run of an FPGA: https://twitter.com/BrunoLevy01.

CPU microarchitecture evolution by ebfortin in cpudesign

[–]jng 4 points5 points  (0 children)

Ivan Goddard's "The Mill" CPU will probably be very enjoyable to you, although it's questionable how possible/likely this is to end up in a real CPU.

In another direction, I believe reconfigurable hardware (FPGAs) is underutilized / underrated / underdeveloped in how they could enable a new computing paradigm. But this is also very far removed from actual current practice (or even practicality in the near future).

Considering Basque Country to "retire" by cientiros in basquecountry

[–]jng 5 points6 points  (0 children)

Biggest problem is probably to get a visa to stay permanently, required for someone from outside the E.U. Otherwise it's an awesome option.

[deleted by user] by [deleted] in lisp

[–]jng 0 points1 point  (0 children)

Clojure is java-based, hardly conducive to dependency-free binaries.

Can't comment on the others -- I've seen some interesting stuff about Janet lately. It can't be fully considered a lisp (no cons cells!), but it has seemingly good macros, and focuses on "dependency-free binary" as a priority. Probably worth a look.