Hacker Newsnew | past | comments | ask | show | jobs | submit | zhenjl's commentslogin

Ok, trying to write 国家栋樑. Unfortunately I only got the first two characters..国 is Fqge, 家 is ei(, but haven't figured out how to do the last two. Any idea how to get the last two?

Quick suggestion: when shift key is not down, should show lower case letters. When shift key is down, show upper case letters.


I really want to like this. Maybe what the developer can do is to build a simple app that translates a Chinese character into a series of keys. That will ease some of the frustrations on not being able to figure out how to type using this input method. For example, I am trying to type 瓦 but for the life of me I can't figure out how.

edit: removed "shift doesn't work"...does seem to work.


Ok, I figured it out...瓦 = qRre


From http://www.doudoulinux.org/web/english/about/more-about/arti...

"“Doudou” is a French word that means wubby, the teddy bear or the cloth that children carry everywhere and hug very strongly in their arms before falling asleep. In China the word 豆豆 means the same and is pronounced the same too."

Chinese it's pronounced doughdough (4th tone, if anyone cares) as someone else mentioned below.


What a coincidence. HBR just ran a blog on How to Build a Strong Relationship with a New Boss, which seem complementary.

https://hbr.org/2016/10/how-to-build-a-strong-relationship-w...


Should call it 1fs with the number 1. 1fs.io is even avail!


Thanks for letting me know. I hadn't realized that. Will have to figure out why.


I don't have any first hand experience, but it seems like grok [might not be that performant](http://ghost.frodux.in/logstash-grok-speeds/)?


Sequence seems very fast. What format do you output to? Have you fed the resulting data into anything like a database?


Thanks for the link. Do you have any info on the performance of this parser?


I'm sorry to say I do not. I've only very recently got a stable monitoring configuration in place with this as a key piece, parsing up messages and sending them to downstream programs.

I welcome the move away from regular expressions though - they are just not necessary in this particular domain. We'll see if PatternDB's coarse grained approach comes back to bite me.

I'm happy to help as I can if you decide to use PatternDB - you can find me at l.skibinski at elifesciences dot org. I have some notes for getting started quickly I really should publish ...


Try a static blog generator like hugo or octopress...


yeah, people have suggested a variety of things. i'll add those to my list of static generators to investigate, thanks :)


Author here. The message size tested is 1024 bytes.


Are you cpu bound or (net) io bound?


When I ran this I gave the server and client 2 cores each. Neither were maxing out the cores.

At about 856K MPS (sent + received) @ 1024 bytes/msg, that's less than 1 GBps. So I can't imagine it being io(net) bound either.

So inconclusive...unfortunately. Need to profile a bit more to know.

Edit: Tho this is TCP based so it's possible that it's netio bound given the protocol overhead. At this message rate, each packet is almost guaranteed to be full size. So we are doing about 600K pps, approximately.


Are you passing messages on the same host? When doing message passing between processes on the same machine, memory mapping and shared memory will be your friends. Check this architecture out for intra-host message passing: https://lmax-exchange.github.io/disruptor/

If you are doing tcp over loopback, the MTU is 64K, IIRC. You should be able to pack more messages per packet. Since you aren't CPU bound, you are probably memory bound.

Also if you on a non-kernelbypass accelerated host, wire-to-application memory takes about 10 micros, so wire-to-memory-to-wire will probably land somewhere around 20 microseconds.


lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384

Mac OS Yosemite..


> When I ran this I gave the server and client 2 cores each. Neither were maxing out the cores.

grep for GOMAXPROCS didn't turn up anything so not sure what you mean by that. This may help with core utilization.

   func init() {
       // 
       runtime.GOMAXPROCS(runtime.NumCPU())
       // …
   }


I ran with GOMAXPROCS=2 on the command line. The post showed the actual commands that I used in each case.


Ah, missed that. In any event, that sets the number of Go Processors per Go runtime. It has no bearing on the number of "cores" utilized.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: