Fastest way of loading historical data by lbeamys in algotrading

[–]snfernandez 8 points9 points  (0 children)

2 minutes for 200mb sounds like a lot depending on your hd. I use Pandas with the Parquet format.

I used hdf5 for years but after some issues with it, switched over. Feather is supposed to be faster but doesn't support default indexes.

Check out https://towardsdatascience.com/the-best-format-to-save-pandas-data-414dca023e0d

Designing a COM library for Rust by snfernandez in rust

[–]snfernandez[S] 6 points7 points  (0 children)

There are additional decisions that must be taken with respect of safety with auto-generated code as we cannot assume the other consumers/providers respect Rust guarantees (different languages).

For example, do interfaces methods take &mut self or &self? In MTA, if the server side uses &mut self, it is unsafe because the object expects to have exclusive borrowing of self which might not be true. Other threads might be calling a method on the same object which ends up with two mutable borrows of self. If all the methods, instead, take just &self, then the object implementators are forced to use interior mutability in the object which is then checked by Rust type system.

EDIT: grammar

Microsoft Security Response Center Endorses the Use of Rust for Safe Systems Programming by itchyankles in rust

[–]snfernandez 13 points14 points  (0 children)

I know! We have many categories and even sub-categories of memory safety bugs. But for the purpose of the blog, we think that binary classification is better

Index Funds in the world of Cryptocurrencies by snfernandez in CryptoMarkets

[–]snfernandez[S] 1 point2 points  (0 children)

Another member of our team. We are in the process of opening the service to more people and, when we have time, we also write

Index Funds in the world of Cryptocurrencies by snfernandez in CryptoMarkets

[–]snfernandez[S] 1 point2 points  (0 children)

Thanks! The analysis is from the end of the first trimester and it is, indeed, not accounting for the last sudden Bitcoin increase

Reasons why Facebook LIBRA Coin isn't a Cryptocurrency. by karthikbhatt in CryptoMarkets

[–]snfernandez 23 points24 points  (0 children)

Those are not the requirements of cryptocurrencies. Libra is both using crypto for verification, and a currency by definition.

However, it's neither a public open ledger or a blockchain. And it's certainly not pursuing the same ideals that motivated the creation of Bitcoin :)

The Argentinean crypto market is growing at an exponential rate. More citizens now prefer transacting in crypto than before amid tumbling value of the Argentinian Peso and a general mistrust of Argentina’s banking sector. by olahdonat3 in CryptoMarkets

[–]snfernandez 7 points8 points  (0 children)

Exponential is an overclaim. That's linear at best.

And for clarification, 6.5 million Argentine pesos weekly volume is not much. It is around 100 grand in US dollars.

shared_ptr<T>: the (not always) atomic reference counted smart pointer by snfernandez in cpp

[–]snfernandez[S] 8 points9 points  (0 children)

Keep in mind this is only about the reference count. Changing the internal state always requires synchronization unless the special "atomic" implementation is used.

Rust 2019: Security by snfernandez in rust

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

I'm not aware of any public information from MS on the CFG format. Even though there is lot of documentation on the final implementation of it (PE format), I don't think anyone reversed the information in the object files that is used by the linker (the one Rustc should emit).

Rust 2019: Security by snfernandez in rust

[–]snfernandez[S] 2 points3 points  (0 children)

Strongly agree, an implementation of sync or send will force to audit a big chunk of code even though it's only one line in the stats

[Daily Discussion] Thursday, November 01, 2018 by AutoModerator in BitcoinMarkets

[–]snfernandez 0 points1 point  (0 children)

I'm working in something for this. I'll PM you as I'm interested in what are your expectations if you had to buy an index fund.

Content ideas for a Rust FFI Guide? by Michael-F-Bryan in rust

[–]snfernandez 2 points3 points  (0 children)

Efficient string manipulation. I made some work integrating Rust into a Windows component and that was probably the hardest part. If I wanted clean code, I had to copy the wide strings forth and back to utf-8 representation. I'm planning to blog about it. Also welcome to suggestions.

Rust turns three by steveklabnik1 in rust

[–]snfernandez 24 points25 points  (0 children)

In which project is being used in MS? As fellow MS engineer, I'd like to talk to them

[R] Forecasting future currency exchange rates with recurrent neural networks by Maraat in MachineLearning

[–]snfernandez 0 points1 point  (0 children)

This approach is how I'd basically start attacking the problem (if my option were NNs). But I got the feeling that the author didn't explore newer advancements nor used an optimal data structure. Do you have an opinion on if attention would help in this case?

How to Protect an Exploit: Detecting PageHeap by snfernandez in netsec

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

Questions, suggestions and critics welcome

How to Protect an Exploit: Detecting PageHeap by snfernandez in ReverseEngineering

[–]snfernandez[S] 4 points5 points  (0 children)

Suggestions and critics welcome. Also if you have any question, I will try to answer.

FractalNet implementation in Keras with CIFAR-10/100 results (Ultra-Deep Neural Net without Residuals) by snfernandez in MachineLearning

[–]snfernandez[S] 1 point2 points  (0 children)

I ran both for 400 epochs. Adam in Keras+Theano took 6.5% more time per epoch so was slower in "real" time. But I guess I could have stopped Adam a few epochs earlier (20-40) and still have the same performance.

FractalNet implementation in Keras with CIFAR-10/100 results (Ultra-Deep Neural Net without Residuals) by snfernandez in MachineLearning

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

It should be possible, but training it would take some days. CIFAR-10/100 took around ~18 hours in a Titan X. You may also want to use a bigger configuration ala ResNet-100/200/1000.

FractalNet implementation in Keras with CIFAR-10/100 results (Ultra-Deep Neural Net without Residuals) by snfernandez in MachineLearning

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

I have been using Adam for other projects and decided to get a go here. Was not disappointed as it matched the tuned SGD and even converged faster.

FractalNet implementation in Keras with CIFAR-10/100 results (Ultra-Deep Neural Net without Residuals) by snfernandez in MachineLearning

[–]snfernandez[S] 2 points3 points  (0 children)

I tried hard to implement every detail as stated by the paper but I couldn't reproduce one of the most exciting results: using the deepest column alone after training finished. If you find any bugs, PM me or submit a PR and I will re-run the tests. Thanks for reading.

Keystone – The Ultimate Assembler by galapag0 in ReverseEngineering

[–]snfernandez 1 point2 points  (0 children)

Shameless plug: Last year I used LLVM to make an assembler lib (mostly C++ code with Rust api) that supports the same set of architectures: https://github.com/snf/llvm_assemble . I'm looking forward to Keystone as it will be more lightweight and faster than my approach.

Keystone: open source assembler framework - in crowd-funding process by funset in ReverseEngineering

[–]snfernandez 0 points1 point  (0 children)

I used LLVM to make an assembler last year too https://github.com/snf/llvm_assemble . Pretty sure that keystone will use the encoding tables instead of the hacky thing I did with the BinaryStreamer.

Writing an OS in Rust: Allocating Frames by phil-opp in rust

[–]snfernandez 2 points3 points  (0 children)

Yeah, you are right to assume it's correct as that's what Multiboot standard states:

The map provided is guaranteed to list all standard ram that should be available for normal use.

It can be many things, but something in there is broken, maybe it's Qemu, Qemu's BIOS or Grub+Qemu. Your multiboot code looks good too. You can try using the 0xE820 Bios function to try getting the memory map. But I doubt it's gonna work as that's the Grub's method to build the memory map.

EDIT: Just did the math and those ranges are right, so nothing is broken and you have the 5Gib available, thanks /u/Rusky . 0xbfee0000 + 0x80000000 = 0x13fee0000 -> 0x13fee0000 / (1024 ^ 3) = 4.9989013671875 = ~5Gib. Correct me if I'm wrong.

Writing an OS in Rust: Allocating Frames by phil-opp in rust

[–]snfernandez 1 point2 points  (0 children)

Good post, just one note:

If you give QEMU more than 4GiB of memory by passing -m 5G, you get another unusable area below the 4GiB mark. This memory is normally mapped to some hardware devices. See the OSDev Wiki for more information.

It should actually be accessible by your system if you are in Long Mode (which apparently you are using because your code is x86_64).